#include "PreCompiled.h"
#include <GL/gl.h>
#include <Inventor/SbBox.h>
#include <Inventor/SoOutput.h>
#include <Inventor/SoPrimitiveVertex.h>
#include <Inventor/actions/SoGLRenderAction.h>
#include <Inventor/actions/SoGetPrimitiveCountAction.h>
#include <Inventor/actions/SoWriteAction.h>
#include <Inventor/bundles/SoMaterialBundle.h>
#include <Inventor/bundles/SoTextureCoordinateBundle.h>
#include <Inventor/details/SoFaceDetail.h>
#include <Inventor/details/SoPointDetail.h>
#include <Inventor/elements/SoGLCacheContextElement.h>
#include <Inventor/elements/SoLazyElement.h>
#include <Inventor/elements/SoLightModelElement.h>
#include <Inventor/misc/SoState.h>
#include <Gui/SoFCInteractiveElement.h>
#include <Mod/Mesh/App/Core/Elements.h>
#include <Mod/Mesh/App/Core/Grid.h>
#include <Mod/Mesh/App/Core/Algorithm.h>
#include <Mod/Mesh/App/Core/MeshIO.h>
#include <Mod/Mesh/App/Mesh.h>
#include "SoFCMeshNode.h"
Go to the source code of this file.
Functions | |
void | glNormal (float *n) |
void | glNormal (const Base::Vector3f &_n) |
void | glVertex (const MeshCore::MeshPoint &_v) |
class SoFCMeshNode | |
SbVec3f | sbvec3f (const Base::Vector3f &_v) |
SO_NODE_SOURCE (SoFCMeshOpenEdge) | |
SO_NODE_SOURCE (SoFCMeshNode) |
void glNormal | ( | float * | n | ) | [inline] |
Definition at line 95 of file SoFCMeshNode.cpp.
void glNormal | ( | const Base::Vector3f & | _n | ) | [inline] |
Definition at line 87 of file SoFCMeshNode.cpp.
References Base::Vector3< _Precision >::x, Base::Vector3< _Precision >::y, and Base::Vector3< _Precision >::z.
void glVertex | ( | const MeshCore::MeshPoint & | _v | ) | [inline] |
class SoFCMeshNode
The SoFCMeshNode class is designed to render huge meshes.
The SoFCMeshNode is an Inventor shape node that is designed to render huge meshes. If the mesh exceeds a certain number of triangles and the user does some intersections (e.g. moving, rotating, zooming, spinning, etc.) with the mesh then the GLRender() method renders only the gravity points of a subset of the triangles. If there is no user interaction with the mesh then all triangles are rendered. The limit of maximum allowed triangles can be specified in MaximumTriangles, the default value is set to 500.000.
The GLRender() method checks the status of the SoFCInteractiveElement to decide to be in interactive mode or not. To take advantage of this facility the client programmer must set the status of the SoFCInteractiveElement to true if there is a user interation and set the status to false if not. This can be done e.g. in the actualRedraw() method of the viewer.
Definition at line 79 of file SoFCMeshNode.cpp.
References Base::Vector3< _Precision >::x, Base::Vector3< _Precision >::y, and Base::Vector3< _Precision >::z.
SbVec3f sbvec3f | ( | const Base::Vector3f & | _v | ) | [inline] |
Definition at line 101 of file SoFCMeshNode.cpp.
References Base::Vector3< _Precision >::x, Base::Vector3< _Precision >::y, and Base::Vector3< _Precision >::z.
SO_NODE_SOURCE | ( | SoFCMeshOpenEdge | ) |
SO_NODE_SOURCE | ( | SoFCMeshNode | ) |