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

Method pickObjects_

source/MRCommonPlugins/Basic/MRMoveObjectByMouse.cpp:110–138  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

108}
109
110ObjAndPick MoveObjectByMouse::MoveObjectByMouseWithSelected::pickObjects_( std::vector<std::shared_ptr<Object>>& objects, int modifiers ) const
111{
112 Viewer& viewerRef = getViewerInstance();
113 Viewport& viewport = viewerRef.viewport( viewerRef.getHoveredViewportId() );
114 // Pick a single object under cursor
115 ObjAndPick res = viewport.pickRenderObject();
116 auto& [obj, pick] = res;
117 if ( obj && obj->isAncillary() )
118 obj = nullptr;
119
120 if ( int( modXfTarget ) == int( XfTarget::Selected ) || ( modifiers & GLFW_MOD_SHIFT ) == GLFW_MOD_SHIFT )
121 {
122 // Move selected objects regardless of pick
123 objects = getAllObjectsInTree<Object>( SceneRoot::get(), ObjectSelectivityType::Selected );
124 if ( std::find( objects.begin(), objects.end(), obj ) == objects.end() )
125 obj = nullptr; // Use picked object only if it is selected
126 }
127 else
128 {
129 // Move picked object
130 if ( !obj )
131 {
132 objects = {};
133 return res;
134 }
135 objects = { obj };
136 }
137 return res;
138}
139
140MoveObjectByMouseImpl::TransformMode MoveObjectByMouse::MoveObjectByMouseWithSelected::modeFromPickModifiers_( int modifiers ) const
141{

Callers

nothing calls this directly

Calls 6

getHoveredViewportIdMethod · 0.80
pickRenderObjectMethod · 0.80
getFunction · 0.50
findFunction · 0.50
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected