Skip to content

Commit

Permalink
fixup! VisualiserTool : Use std::variant
Browse files Browse the repository at this point in the history
  • Loading branch information
ericmehl committed Jan 27, 2025
1 parent 1159e79 commit 33621af
Showing 1 changed file with 23 additions and 21 deletions.
44 changes: 23 additions & 21 deletions src/GafferSceneUI/VisualiserTool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1724,30 +1724,32 @@ RunTimeTypedPtr VisualiserTool::dragBegin( const DragDropEvent &event )
m_initiatedDrag = true;
view()->viewportGadget()->renderRequestSignal()( view()->viewportGadget() );
auto result = std::visit(
[]( auto &&value ) -> DataPtr
{
using T = std::decay_t<decltype( value )>;
if constexpr(
std::is_same_v<T, int> ||
std::is_same_v<T, float> ||
std::is_same_v<T, V2f> ||
std::is_same_v<T, V3f> ||
std::is_same_v<T, Color3f>
)
{
return new TypedData<T>( value );
}
return nullptr;
},
m_valueAtButtonPress
);
Pointer::setCurrent( "values" );
assert( result != nullptr );
DataPtr result;
Pointer::setCurrent( "values" );
if( std::holds_alternative<int>( m_valueAtButtonPress ) )
{
return new IntData( std::get<int>( m_valueAtButtonPress ) );
}
if( std::holds_alternative<float>( m_valueAtButtonPress ) )
{
return new FloatData( std::get<float>( m_valueAtButtonPress ) );
}
if( std::holds_alternative<V2f>( m_valueAtButtonPress ) )
{
return new V2fData( std::get<V2f>( m_valueAtButtonPress ) );
}
if( std::holds_alternative<V3f>( m_valueAtButtonPress ) )
{
return new V3fData( std::get<V3f>( m_valueAtButtonPress ) );
}
if( std::holds_alternative<Color3f>( m_valueAtButtonPress ) )
{
return new Color3fData( std::get<Color3f>( m_valueAtButtonPress ) );
}
return result;
return RunTimeTypedPtr();
}
bool VisualiserTool::dragEnd( const DragDropEvent &event )
Expand Down

0 comments on commit 33621af

Please sign in to comment.