SoFCMeshFaceSet.cpp File Reference

#include "PreCompiled.h"
#include <GL/gl.h>
#include <Inventor/SbBox.h>
#include <Inventor/SoOutput.h>
#include <Inventor/SoPrimitiveVertex.h>
#include <Inventor/actions/SoCallbackAction.h>
#include <Inventor/actions/SoGLRenderAction.h>
#include <Inventor/actions/SoGetBoundingBoxAction.h>
#include <Inventor/actions/SoGetPrimitiveCountAction.h>
#include <Inventor/actions/SoPickAction.h>
#include <Inventor/actions/SoRayPickAction.h>
#include <Inventor/actions/SoWriteAction.h>
#include <Inventor/bundles/SoMaterialBundle.h>
#include <Inventor/bundles/SoTextureCoordinateBundle.h>
#include <Inventor/caches/SoBoundingBoxCache.h>
#include <Inventor/details/SoFaceDetail.h>
#include <Inventor/details/SoLineDetail.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 <Inventor/errors/SoReadError.h>
#include <Base/Console.h>
#include <Base/Exception.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 "SoFCMeshFaceSet.h"
#include "SoFCMeshVertex.h"

Go to the source code of this file.

Defines

#define READ_VAL(val)

Functions

void glNormal (float *n)
void glNormal (const Base::Vector3f &_n)
void glVertex (const MeshCore::MeshPoint &_v)
 class SoFCMeshFaceSet
SbVec3f sbvec3f (const Base::Vector3f &_v)
 SO_ELEMENT_SOURCE (SoFCMeshFacetElement)
 SO_NODE_SOURCE (SoFCMeshOpenEdgeSet)
 SO_NODE_SOURCE (SoFCMeshFaceSet)
 SO_NODE_SOURCE (SoFCMeshFacet)

Variables

SoType
SoSFMeshFacetArray::classTypeId 
STATIC_SOTYPE_INIT

Define Documentation

#define READ_VAL ( val   ) 
Value:
if (!in->read(val)) { \
    SoReadError::post(in, "Premature end of file"); \
    return FALSE; \
  }

Function Documentation

void glNormal ( float *  n  )  [inline]

Definition at line 412 of file SoFCMeshFaceSet.cpp.

void glNormal ( const Base::Vector3f _n  )  [inline]
void glVertex ( const MeshCore::MeshPoint _v  )  [inline]

class SoFCMeshFaceSet

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 100.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.

Author:
Werner Mayer

Definition at line 396 of file SoFCMeshFaceSet.cpp.

References Base::Vector3< _Precision >::x, Base::Vector3< _Precision >::y, and Base::Vector3< _Precision >::z.

SbVec3f sbvec3f ( const Base::Vector3f _v  )  [inline]
SO_ELEMENT_SOURCE ( SoFCMeshFacetElement   ) 
SO_NODE_SOURCE ( SoFCMeshOpenEdgeSet   ) 
SO_NODE_SOURCE ( SoFCMeshFaceSet   ) 
SO_NODE_SOURCE ( SoFCMeshFacet   ) 

Variable Documentation

SoType SoSFMeshFacetArray ::classTypeId STATIC_SOTYPE_INIT

Definition at line 75 of file SoFCMeshFaceSet.cpp.


Generated on Wed Nov 23 19:01:21 2011 for FreeCAD by  doxygen 1.6.1