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

Method drawDrawOptionsCheckboxes

source/MRViewer/ImGuiMenu.cpp:2148–2277  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2146}
2147
2148bool ImGuiMenu::drawDrawOptionsCheckboxes( const std::vector<std::shared_ptr<VisualObject>>& selectedVisualObjs, SelectedTypesMask selectedMask )
2149{
2150 bool someChanges = false;
2151 if ( selectedVisualObjs.empty() )
2152 return someChanges;
2153
2154 bool allIsObjMesh =
2155 selectedMask == SelectedTypesMask::ObjectMeshBit ||
2156 selectedMask == SelectedTypesMask::ObjectMeshHolderBit ||
2157 selectedMask == ( SelectedTypesMask::ObjectMeshBit | SelectedTypesMask::ObjectMeshHolderBit );
2158 bool allIsObjLines = selectedMask == SelectedTypesMask::ObjectLinesHolderBit;
2159 bool allIsObjPoints = selectedMask == SelectedTypesMask::ObjectPointsHolderBit;
2160 bool allIsObjLabels = selectedMask == SelectedTypesMask::ObjectLabelBit;
2161 bool allIsFeatureObj = selectedMask == SelectedTypesMask::ObjectFeatureBit;
2162
2163 const auto& viewportid = viewer->viewport().id;
2164
2165 if ( allIsObjMesh )
2166 {
2167 someChanges |= make_visualize_checkbox( selectedVisualObjs, _tr( "Shading" ), MeshVisualizePropertyType::EnableShading, viewportid );
2168 someChanges |= make_visualize_checkbox( selectedVisualObjs, _tr( "Flat Shading" ), MeshVisualizePropertyType::FlatShading, viewportid );
2169 someChanges |= make_visualize_checkbox( selectedVisualObjs, _tr( "Edges" ), MeshVisualizePropertyType::Edges, viewportid );
2170 someChanges |= make_visualize_checkbox( selectedVisualObjs, _tr( "Points" ), MeshVisualizePropertyType::Points, viewportid );
2171 someChanges |= make_visualize_checkbox( selectedVisualObjs, _tr( "Selected Edges" ), MeshVisualizePropertyType::SelectedEdges, viewportid );
2172 someChanges |= make_visualize_checkbox( selectedVisualObjs, _tr( "Selected Tri-s" ), MeshVisualizePropertyType::SelectedFaces, viewportid );
2173 someChanges |= make_visualize_checkbox( selectedVisualObjs, _tr( "Borders" ), MeshVisualizePropertyType::BordersHighlight, viewportid );
2174 someChanges |= make_visualize_checkbox( selectedVisualObjs, _tr( "Triangles" ), MeshVisualizePropertyType::Faces, viewportid );
2175 someChanges |= make_visualize_checkbox( selectedVisualObjs, _tr( "Transparency" ), MeshVisualizePropertyType::OnlyOddFragments, viewportid );
2176 bool allHaveTexture = true;
2177 for ( const auto& visObj : selectedVisualObjs )
2178 {
2179 auto meshObj = visObj->asType<ObjectMeshHolder>();
2180 assert( meshObj );
2181 allHaveTexture = allHaveTexture &&
2182 ( !meshObj->getTexture().pixels.empty() && !meshObj->getUVCoords().empty() );
2183 if ( !allHaveTexture )
2184 break;
2185 }
2186 if ( allHaveTexture )
2187 someChanges |= make_visualize_checkbox( selectedVisualObjs, _tr( "Texture" ), MeshVisualizePropertyType::Texture, viewportid );
2188 }
2189 if ( allIsObjLines )
2190 {
2191 someChanges |= make_visualize_checkbox( selectedVisualObjs, _tr( "Points" ), LinesVisualizePropertyType::Points, viewportid );
2192 someChanges |= make_visualize_checkbox( selectedVisualObjs, _tr( "Smooth corners" ), LinesVisualizePropertyType::Smooth, viewportid );
2193 someChanges |= make_visualize_checkbox( selectedVisualObjs, _tr( "Dashed" ), LinesVisualizePropertyType::Dashed, viewportid );
2194 make_width<ObjectLinesHolder, float>( selectedVisualObjs, _tr( "Line width" ), [&] ( const ObjectLinesHolder* objLines )
2195 {
2196 return objLines->getLineWidth();
2197 }, [&] ( ObjectLinesHolder* objLines, float value )
2198 {
2199 objLines->setLineWidth( value );
2200 } );
2201 make_width<ObjectLinesHolder, float>( selectedVisualObjs, _tr( "Point size" ), [&] ( const ObjectLinesHolder* objLines )
2202 {
2203 return objLines->getPointSize();
2204 }, [&] ( ObjectLinesHolder* objLines, float value )
2205 {

Callers 1

drawSceneContextMenu_Method · 0.80

Calls 8

toStringFunction · 0.70
emptyMethod · 0.45
getLineWidthMethod · 0.45
setLineWidthMethod · 0.45
getPointSizeMethod · 0.45
setPointSizeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected