| 2146 | } |
| 2147 | |
| 2148 | bool 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 | { |
no test coverage detected