SmallChange
1.0.0
A collection of extensions to Coin3D
|
Extrusion node with auto level of detail per spine segment. More...
#include <SoLODExtrusion.h>
Public Member Functions | |
virtual void | computeBBox (SoAction *action, SbBox3f &bbox, SbVec3f ¢er) |
virtual void | getPrimitiveCount (SoGetPrimitiveCountAction *action) |
virtual void | GLRender (SoGLRenderAction *action) |
virtual void | rayPick (SoRayPickAction *action) |
Static Public Member Functions | |
static void | initClass (void) |
Public Attributes | |
SoSFColor | alternateColor |
SoSFBool | antiSquish |
SoSFBool | ccw |
SoSFInt32 | circleSegmentCount |
SoMFColor | color |
SoSFFloat | creaseAngle |
SoMFVec2f | crossSection |
SoSFBool | doAlternateColor |
SoSFFloat | lodDistance1 |
SoSFFloat | lodDistance2 |
SoSFBool | pickLines |
SoSFFloat | radius |
SoMFVec3f | spine |
SoSFVec3f | zAxis |
Protected Member Functions | |
virtual SoDetail * | createTriangleDetail (SoRayPickAction *action, const SoPrimitiveVertex *v1, const SoPrimitiveVertex *v2, const SoPrimitiveVertex *v3, SoPickedPoint *pp) |
virtual void | generatePrimitives (SoAction *action) |
virtual void | notify (SoNotList *list) |
Extrusion node with auto level of detail per spine segment.
Renders an extrusion of crossSection along spine, for all spine segments closer to camera than lodDistance1. Between lodDistance1 and lodDistance2 , spine segments are rendered as simple lines. Beyond lodDistance2 nothing is rendered. To render lines to infinity, set lodDistance2 to less than zero. (the default value for lodDistance2 is -1.0).
The node currently renders the extrusion with per vertex normal vectors. Per (spine) vertex material is not yet supported, nor are texture coordinates.
Overloaded to disable geometry cache.
SoSFBool SoLODExtrusion::antiSquish |
Will antisquish the cross sections, based on the current model matrix scale factor. This works in the same way as the SoAntiSquish node, but on each spine segment, such that spine segment positions are affected by scale, but not the geometry.
SoSFBool SoLODExtrusion::ccw |
Whether or not crossSection vertices are ordered counterclockwise or not.
SoSFInt32 SoLODExtrusion::circleSegmentCount |
How many line segments will be used to represent a circular cross section. Relevant only when radius is greater than zero.
SoMFVec3f SoLODExtrusion::color |
If color.getNum() == spine.getNum(), the extrusion is colored per spine point.
SoSFFloat SoLODExtrusion::creaseAngle |
Crease angle for normal vector calculation.
SoMFVec2f SoLODExtrusion::crossSection |
Cross section of the extrusion, given as a list of 2D vertices.
SoSFFloat SoLODExtrusion::lodDistance1 |
The distance from camera where extrusion rendering is replaced by line rendering.
SoSFFloat SoLODExtrusion::lodDistance2 |
The distance from camera where line rendering will be replaced by nothing, if lodDistance2 is greater than zero. If lodDistance2 is less than zero, lines will be rendered to infinity (or to the end of the spine, or to the far clipping plane, whichever is closer to camera). Default value for lodDistance2 is -1.0.
SoSFBool SoLODExtrusion::pickLines |
If pickLines is TRUE, picking is enabled for the parts of the geometry rendered as lines. Picking is always enabled for the parts rendered as extrusions. Default value for pickLines is FALSE.
SoSFFloat SoLODExtrusion::radius |
If radius is set to a value greater than zero, crossSection will be set to represent a circle of radius radius. Any other setting of crossSection is ignored as long as radius is greater than zero. Default value for radius is -1.0.
SoMFVec3f SoLODExtrusion::spine |
The central spine of the extrusion, given as a list of 3D vertices.
SoSFVec3f SoLODExtrusion::zAxis |
Makes it possible to lock the extrusion Z-axis to always have this value. The extrusion coordinate system will need to be orthonormal, of course, so the Z-axis will be transformed to account for this. Default value is (0, 0, 0), which means that the Z-axis is not locked.