MCPcopy Create free account
hub / github.com/MeshInspector/MeshLib / cloneSelectedPart

Method cloneSelectedPart

source/MRViewer/MRRibbonMenu.cpp:1147–1175  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1145}
1146
1147void RibbonMenu::cloneSelectedPart( const std::shared_ptr<Object>& object )
1148{
1149 SCOPED_HISTORY( _t( "Clone Selection" ) );
1150 std::shared_ptr<VisualObject> newObj;
1151 std::string name;
1152 if ( auto selectedMesh = std::dynamic_pointer_cast< ObjectMesh >( object ) )
1153 {
1154 if ( !selectedMesh->mesh() )
1155 return;
1156 newObj = cloneRegion( selectedMesh, selectedMesh->getSelectedFaces() );
1157 name = "ObjectMesh";
1158 }
1159 else if ( auto selectedPoints = std::dynamic_pointer_cast< ObjectPoints >( object ) )
1160 {
1161 if ( !selectedPoints->pointCloud() )
1162 return;
1163 newObj = cloneRegion( selectedPoints, selectedPoints->getSelectedPoints() );
1164 name = "ObjectPoints";
1165 }
1166
1167 AppendHistory<ChangeObjectSelectedAction>( "unselect original", object, false );
1168 AppendHistory<ChangeObjectVisibilityAction>( "hide original", object, ViewportMask() );
1169
1170 newObj->setName( object->name() + " Partial" );
1171 newObj->setXf( object->xf() );
1172 newObj->select( true );
1173 AppendHistory<ChangeSceneAction>( "Selection to New object: add " + name, newObj, ChangeSceneAction::Type::AddObject );
1174 object->parent()->addChild( newObj );
1175}
1176
1177bool RibbonMenu::drawCloneButton( const std::vector<std::shared_ptr<Object>>& selected )
1178{

Callers

nothing calls this directly

Calls 8

addChildMethod · 0.80
cloneRegionFunction · 0.50
ViewportMaskClass · 0.50
nameMethod · 0.45
setXfMethod · 0.45
xfMethod · 0.45
selectMethod · 0.45
parentMethod · 0.45

Tested by

no test coverage detected