Description
OpenGL-based Chrono run-time visualization system.
#include <ChVisualSystemOpenGL.h>
Public Member Functions | |
void | SetWindowSize (unsigned int width, unsigned int height) |
Set the window size (default 640x480). More... | |
void | SetWindowTitle (const std::string &win_title) |
Set the window title (default ""). More... | |
void | SetCameraVertical (CameraVerticalDir vert) |
Set camera vertical direction (default CameraVerticalDir::Z). | |
void | SetCameraVertical (const ChVector<> &up) |
Set camera vertical direction (default (0,0,1)). | |
void | SetCameraProperties (float scale=0.5f, float near_clip_dist=0.1f, float far_clip_dist=1000.0f) |
Set camera scale and clip distances. More... | |
void | SetRenderMode (RenderMode mode) |
Set render mode for solid objects (default: SOLID) | |
void | SetParticleRenderMode (float radius, RenderMode mode) |
Set render mode for particle systems (default: POINTS) | |
virtual void | AttachSystem (ChSystem *sys) override |
Attach a Chrono system to the run-time visualization system. More... | |
void | AttachStatsRenderer (std::shared_ptr< ChOpenGLStats > renderer) |
Attach a user-defined text renderer for stats overlay. More... | |
void | EnableStats (bool state) |
Enable/disable stats overlay display (default: true). | |
virtual void | Initialize () |
Initialize the visualization system. More... | |
void | SetCameraPosition (const ChVector<> &pos, ChVector<> targ=VNULL) |
Set camera position and look-at point. More... | |
void | AddUserEventReceiver (ChOpenGLEventCB *receiver) |
Attach a custom event receiver to the application. | |
void | AttachParticleSelector (std::shared_ptr< ChOpenGLParticleCB > selector) |
Attach a custom particle rendering selector. | |
virtual void | BindAll () override |
Process all visual assets in the associated ChSystem. More... | |
virtual void | BindItem (std::shared_ptr< ChPhysicsItem > item) override |
Process the visual assets for the spcified physics item. More... | |
bool | Run () |
Run the Irrlicht device. More... | |
virtual void | BeginScene (bool backBuffer=true, bool zBuffer=true, ChColor color=ChColor(0, 0, 0)) |
Clean the canvas at the beginning of each animation frame. | |
virtual void | Render () |
Draw all 3D shapes and GUI elements at the current frame. More... | |
virtual void | EndScene () |
End the scene draw at the end of each animation frame. | |
virtual void | WriteImageToFile (const std::string &filename) override |
Create a snapshot of the last rendered frame and save it to the provided file. More... | |
Public Member Functions inherited from chrono::ChVisualSystem | |
virtual void | EnableModalAnalysis (bool val) |
Enable modal analysis visualization. More... | |
virtual void | SetModalModeNumber (int val) |
Set the mode to be shown (only if some ChModalAssembly is found). | |
virtual void | SetModalAmplitude (double val) |
Set the amplitude of the shown mode (only if some ChModalAssembly is found). | |
virtual void | SetModalSpeed (double val) |
Set the speed of the shown mode (only if some ChModalAssembly is found). | |
std::vector< ChSystem * > | GetSystems () const |
Get the list of associated Chrono systems. | |
ChSystem & | GetSystem (int i) const |
Get the specified associated Chrono system. | |
Static Public Member Functions | |
static void | WrapRenderStep (void *stepFunction) |
Callback wrapper for steps of the render loop. Works with Emscripten. | |
Friends | |
class | ChOpenGLViewer |
Additional Inherited Members | |
Protected Attributes inherited from chrono::ChVisualSystem | |
std::vector< ChSystem * > | m_systems |
associated Chrono system(s) | |
Member Function Documentation
◆ AttachStatsRenderer()
void chrono::opengl::ChVisualSystemOpenGL::AttachStatsRenderer | ( | std::shared_ptr< ChOpenGLStats > | renderer | ) |
Attach a user-defined text renderer for stats overlay.
This overwrites the default stats overlay renderer.
◆ AttachSystem()
|
overridevirtual |
Attach a Chrono system to the run-time visualization system.
ChVisualSystemOpenGL allows simultaneous rendering of multiple Chrono systems.
Reimplemented from chrono::ChVisualSystem.
◆ BindAll()
|
overridevirtual |
Process all visual assets in the associated ChSystem.
This function is called by default by Initialize(), but can also be called later if further modifications to visualization assets occur.
Reimplemented from chrono::ChVisualSystem.
◆ BindItem()
|
overridevirtual |
Process the visual assets for the spcified physics item.
This function must be called if a new physics item is added to the system or if changes to its visual model occur after the call to Initialize().
Reimplemented from chrono::ChVisualSystem.
◆ Initialize()
|
virtual |
Initialize the visualization system.
This creates the Irrlicht device using the current values for the optional device parameters.
◆ Render()
|
virtual |
Draw all 3D shapes and GUI elements at the current frame.
This function is typically called inside a loop such as
while(vis->Run()) {...}
◆ Run()
bool chrono::opengl::ChVisualSystemOpenGL::Run | ( | ) |
Run the Irrlicht device.
Returns false
if the device wants to be deleted.
◆ SetCameraPosition()
void chrono::opengl::ChVisualSystemOpenGL::SetCameraPosition | ( | const ChVector<> & | pos, |
ChVector<> | targ = VNULL |
||
) |
Set camera position and look-at point.
The camera rotation/pan is controlled by mouse left and right buttons, the zoom is controlled by mouse wheel or rmb+lmb+mouse, the position can be changed also with keyboard up/down/left/right arrows, the height can be changed with keyboard 'PgUp' and 'PgDn' keys. Optional parameters are position and target.
◆ SetCameraProperties()
void chrono::opengl::ChVisualSystemOpenGL::SetCameraProperties | ( | float | scale = 0.5f , |
float | near_clip_dist = 0.1f , |
||
float | far_clip_dist = 1000.0f |
||
) |
Set camera scale and clip distances.
- Parameters
-
scale zoom level (default 0.5) near_clip_dist near clipping distance (default 0.1) far_clip_dist far clipping distance (default 1000)
◆ SetWindowSize()
void chrono::opengl::ChVisualSystemOpenGL::SetWindowSize | ( | unsigned int | width, |
unsigned int | height | ||
) |
Set the window size (default 640x480).
Must be called before Initialize().
◆ SetWindowTitle()
void chrono::opengl::ChVisualSystemOpenGL::SetWindowTitle | ( | const std::string & | win_title | ) |
Set the window title (default "").
Must be called before Initialize().
◆ WriteImageToFile()
|
overridevirtual |
Create a snapshot of the last rendered frame and save it to the provided file.
The file extension determines the image format.
Reimplemented from chrono::ChVisualSystem.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_opengl/ChVisualSystemOpenGL.h
- /builds/uwsbel/chrono/src/chrono_opengl/ChVisualSystemOpenGL.cpp