chrono::modal::ChModalVisualSystemIrrlicht< ScalarType > Class Template Reference

Description

template<typename ScalarType>
class chrono::modal::ChModalVisualSystemIrrlicht< ScalarType >

Customized Chrono Irrlicht visualization for modal analaysis.

#include <ChModalVisualSystemIrrlicht.h>

Collaboration diagram for chrono::modal::ChModalVisualSystemIrrlicht< ScalarType >:

Public Member Functions

virtual void Initialize () override
 Initialize the visualization system.
 
virtual void BeginScene (bool backBuffer, bool zBuffer) override
 
virtual void Render () override
 Render the Irrlicht scene and additional visual elements.
 
void SetMode (int mode)
 Set the mode to be visualized. More...
 
void ResetTimer ()
 Reset the timer used to generate the mode shape animation.
 
void SetAmplitude (double amplitude)
 Set the amplitude of the mode shape animation. More...
 
void SetSpeedFactor (double speed_factor)
 Set the speed factor of the mode shape animation. More...
 
void SetFixedFrequency (bool val)
 Fix the frequency of the mode shape animation. More...
 
void ResetInitialState ()
 Reset the initial state by retrieving the current state of the assembly.
 
void AttachAssembly (const ChAssembly &assembly, const ChMatrixDynamic< ScalarType > &eigvects, const ChVectorDynamic< double > &freq)
 Attach the assembly to be visualized. More...
 
void UpdateModes (const ChMatrixDynamic< ScalarType > &eigvects, const ChVectorDynamic< double > &freq)
 Update the eigenvectors and frequencies.
 
template<typename U = ScalarType>
std::enable_if< std::is_same< U, std::complex< double > >::value, void >::type UpdateModes (const ChMatrixDynamic< ScalarType > &eigvects, const ChVectorDynamic< double > &freq, const ChVectorDynamic< double > &damping_ratios)
 Update the eigenvectors, frequencies, and damping ratios.
 

Protected Member Functions

template<typename U = ScalarType>
std::enable_if< std::is_same< U, double >::value, ChVectorDynamic< double > >::type GetModeShape (const ChVectorDynamic< double > &eigv, double angle)
 Get the mode shape at a specified angle from an eigenvector (real eigvect).
 
template<typename U = ScalarType>
std::enable_if< std::is_same< U, std::complex< double > >::value, ChVectorDynamic< double > >::type GetModeShape (const ChVectorDynamic< std::complex< double >> &eigv, double angle)
 Get the mode shape at a specified angle from an eigenvector (complex eigvect).
 

Protected Attributes

ChAssemblym_assembly = nullptr
 
const ChMatrixDynamic< ScalarType > * m_eigvects = nullptr
 
const ChVectorDynamic< double > * m_freq = nullptr
 
const ChVectorDynamic< double > * m_damping_ratios = nullptr
 
int m_selected_mode = 0
 currently selected mode
 
ChTimer m_timer
 timer for mode shape animation
 
ChState m_assembly_initial_state
 initial state of the assembly
 
double m_amplitude = 1.0
 amplitude scaling of the mode shape animation
 
double m_speed_factor = 1.0
 speed factor of the mode shape animation
 
bool m_fixed_frequency = false
 fix the frequency of the animation
 
irr::gui::IGUIScrollBar * g_selected_mode
 
irr::gui::IGUIStaticText * g_selected_mode_info
 
irr::gui::IGUIEditBox * g_amplitude
 
irr::gui::IGUIEditBox * g_speed_factor
 
irr::gui::IGUICheckBox * g_fixed_frequency
 
ChModalEventReceiver< ScalarType > * m_receiver
 

The documentation for this class was generated from the following file:
  • /builds/uwsbel/chrono/src/chrono_modal/ChModalVisualSystemIrrlicht.h