| 2277 | } |
| 2278 | |
| 2279 | bool ImGuiMenu::drawDrawOptionsColors( const std::vector<std::shared_ptr<VisualObject>>& selectedVisualObjs ) |
| 2280 | { |
| 2281 | bool someChanges = false; |
| 2282 | const auto& selectedMeshObjs = SceneCache::getAllObjects<ObjectMeshHolder, ObjectSelectivityType::Selected>(); |
| 2283 | const auto& selectedPointsObjs = SceneCache::getAllObjects<ObjectPointsHolder, ObjectSelectivityType::Selected>(); |
| 2284 | const auto& selectedLabelObjs = SceneCache::getAllObjects<ObjectLabel, ObjectSelectivityType::Selected>(); |
| 2285 | const auto& selectedFeatureObjs = SceneCache::getAllObjects<FeatureObject, ObjectSelectivityType::Selected>(); |
| 2286 | if ( selectedVisualObjs.empty() ) |
| 2287 | return someChanges; |
| 2288 | |
| 2289 | if ( getViewerInstance().viewport_list.size() > 1 ) |
| 2290 | { |
| 2291 | ImGui::SetNextItemWidth( 75.0f * UI::scale() ); |
| 2292 | |
| 2293 | if (ImGui::BeginCombo( _tr( "Viewport Id" ), |
| 2294 | selectedViewport_.value() == 0 ? _tr( "Default" ) : |
| 2295 | std::to_string( selectedViewport_.value() ).c_str() ) ) |
| 2296 | { |
| 2297 | if ( ImGui::Selectable( _tr( "Default" ) ) ) |
| 2298 | selectedViewport_ = ViewportId{ 0 }; |
| 2299 | |
| 2300 | for ( const auto& viewport : getViewerInstance().viewport_list ) |
| 2301 | { |
| 2302 | if ( ImGui::Selectable( std::to_string( viewport.id.value() ).c_str() ) ) |
| 2303 | selectedViewport_ = viewport.id; |
| 2304 | } |
| 2305 | |
| 2306 | ImGui::EndCombo(); |
| 2307 | } |
| 2308 | } |
| 2309 | |
| 2310 | make_color_selector<VisualObject>( selectedVisualObjs, (s_tr( "Selected color" ) + "##" + std::to_string(selectedViewport_.value())).c_str(), [&] ( const VisualObject* data ) |
| 2311 | { |
| 2312 | return Vector4f( data->getFrontColor(true, selectedViewport_ ) ); |
| 2313 | }, [&] ( VisualObject* data, const Vector4f& color ) |
| 2314 | { |
| 2315 | data->setFrontColor( Color( color ), true, selectedViewport_ ); |
| 2316 | } ); |
| 2317 | make_color_selector<VisualObject>( selectedVisualObjs, _tr( "Unselected color" ), [&] ( const VisualObject* data ) |
| 2318 | { |
| 2319 | return Vector4f( data->getFrontColor( false, selectedViewport_ ) ); |
| 2320 | }, [&] ( VisualObject* data, const Vector4f& color ) |
| 2321 | { |
| 2322 | data->setFrontColor( Color( color ), false, selectedViewport_ ); |
| 2323 | } ); |
| 2324 | make_color_selector<VisualObject>( selectedVisualObjs, _tr( "Back Triangles color" ), [&] ( const VisualObject* data ) |
| 2325 | { |
| 2326 | return Vector4f( data->getBackColor( selectedViewport_ ) ); |
| 2327 | }, [&] ( VisualObject* data, const Vector4f& color ) |
| 2328 | { |
| 2329 | data->setBackColor( Color( color ), selectedViewport_ ); |
| 2330 | } ); |
| 2331 | |
| 2332 | if ( !selectedMeshObjs.empty() ) |
| 2333 | { |
| 2334 | make_color_selector<ObjectMeshHolder>( selectedMeshObjs, _tr( "Edges color" ), [&] ( const ObjectMeshHolder* data ) |
| 2335 | { |
| 2336 | return Vector4f( data->getEdgesColor( selectedViewport_ ) ); |
no test coverage detected