Coin Logo Coin3D is Free Software,
published under the BSD 3-clause license.
https://bitbucket.org/Coin3D/
http://www.kongsberg.com/kogt/
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
SoLODExtrusion Class Reference

Extrusion node with auto level of detail per spine segment. More...

#include <SoLODExtrusion.h>

Inherits SoShape.

Public Member Functions

 SoLODExtrusion (void)
 
virtual void GLRender (SoGLRenderAction *action)
 
virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)
 
virtual void computeBBox (SoAction *action, SbBox3f &bbox, SbVec3f &center)
 
virtual void rayPick (SoRayPickAction *action)
 
- Public Member Functions inherited from SoShape
virtual SoType getTypeId (void) const
 
virtual SbBool affectsState (void) const
 
virtual void getBoundingBox (SoGetBoundingBoxAction *action)
 
virtual void callback (SoCallbackAction *action)
 
const SoBoundingBoxCachegetBoundingBoxCache (void) const
 
- Public Member Functions inherited from SoNode
void setOverride (const SbBool state)
 
SbBool isOverride (void) const
 
void setNodeType (const NodeType type)
 
NodeType getNodeType (void) const
 
virtual SoNodecopy (SbBool copyconnections=FALSE) const
 
virtual void doAction (SoAction *action)
 
virtual void GLRenderBelowPath (SoGLRenderAction *action)
 
virtual void GLRenderInPath (SoGLRenderAction *action)
 
virtual void GLRenderOffPath (SoGLRenderAction *action)
 
virtual void getMatrix (SoGetMatrixAction *action)
 
virtual void handleEvent (SoHandleEventAction *action)
 
virtual void pick (SoPickAction *action)
 
virtual void search (SoSearchAction *action)
 
virtual void write (SoWriteAction *action)
 
virtual void audioRender (SoAudioRenderAction *action)
 
virtual void grabEventsSetup (void)
 
virtual void grabEventsCleanup (void)
 
virtual void startNotify (void)
 
SbUniqueId getNodeId (void) const
 
virtual SoChildListgetChildren (void) const
 
virtual void writeInstance (SoOutput *out)
 
virtual SoNodeaddToCopyDict (void) const
 
virtual void copyContents (const SoFieldContainer *from, SbBool copyconnections)
 
virtual SoFieldContainercopyThroughConnection (void) const
 
- Public Member Functions inherited from SoFieldContainer
void setToDefaults (void)
 
SbBool hasDefaultValues (void) const
 
SbBool fieldsAreEqual (const SoFieldContainer *container) const
 
void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)
 
SbBool set (const char *const fielddata)
 
void get (SbString &fielddata)
 
virtual int getFields (SoFieldList &l) const
 
virtual int getAllFields (SoFieldList &l) const
 
virtual SoFieldgetField (const SbName &name) const
 
virtual SoFieldgetEventIn (const SbName &name) const
 
virtual SoFieldgetEventOut (const SbName &name) const
 
SbBool getFieldName (const SoField *const field, SbName &name) const
 
SbBool enableNotify (const SbBool flag)
 
SbBool isNotifyEnabled (void) const
 
SbBool set (const char *fielddata, SoInput *input)
 
void get (SbString &fielddata, SoOutput *out)
 
virtual SbBool validateNewFieldValue (SoField *field, void *newval)
 
virtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE)
 
SbBool getIsBuiltIn (void) const
 
virtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) const
 
void setUserData (void *userdata) const
 
void * getUserData (void) const
 
- Public Member Functions inherited from SoBase
void ref (void) const
 
void unref (void) const
 
void unrefNoDelete (void) const
 
int32_t getRefCount (void) const
 
void touch (void)
 
SbBool isOfType (SoType type) const
 
virtual SbName getName (void) const
 
virtual void setName (const SbName &newname)
 
void addAuditor (void *const auditor, const SoNotRec::Type type)
 
void removeAuditor (void *const auditor, const SoNotRec::Type type)
 
const SoAuditorListgetAuditors (void) const
 
SbBool shouldWrite (void)
 
void assertAlive (void) const
 

Static Public Member Functions

static void initClass (void)
 
- Static Public Member Functions inherited from SoShape
static void getScreenSize (SoState *const state, const SbBox3f &boundingbox, SbVec2s &rectsize)
 
static float getDecimatedComplexity (SoState *state, float complexity)
 
- Static Public Member Functions inherited from SoNode
static uint32_t getCompatibilityTypes (const SoType &nodetype)
 
static SoNodegetByName (const SbName &name)
 
static int getByName (const SbName &name, SoNodeList &l)
 
static void initClasses (void)
 
static SbUniqueId getNextNodeId (void)
 
static int getActionMethodIndex (const SoType type)
 
static void getBoundingBoxS (SoAction *action, SoNode *node)
 
static void GLRenderS (SoAction *action, SoNode *node)
 
static void callbackS (SoAction *action, SoNode *node)
 
static void getMatrixS (SoAction *action, SoNode *node)
 
static void handleEventS (SoAction *action, SoNode *node)
 
static void pickS (SoAction *action, SoNode *node)
 
static void rayPickS (SoAction *action, SoNode *node)
 
static void searchS (SoAction *action, SoNode *node)
 
static void writeS (SoAction *action, SoNode *node)
 
static void audioRenderS (SoAction *action, SoNode *node)
 
static void getPrimitiveCountS (SoAction *action, SoNode *node)
 
- Static Public Member Functions inherited from SoFieldContainer
static void initCopyDict (void)
 
static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy)
 
static SoFieldContainercheckCopy (const SoFieldContainer *orig)
 
static SoFieldContainerfindCopy (const SoFieldContainer *orig, const SbBool copyconnections)
 
static void copyDone (void)
 
- Static Public Member Functions inherited from SoBase
static void initClass (void)
 
static SoType getClassTypeId (void)
 
static void addName (SoBase *const base, const char *const name)
 
static void removeName (SoBase *const base, const char *const name)
 
static void incrementCurrentWriteCounter (void)
 
static void decrementCurrentWriteCounter (void)
 
static SoBasegetNamedBase (const SbName &name, SoType type)
 
static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type)
 
static SbBool read (SoInput *input, SoBase *&base, SoType expectedtype)
 
static void setInstancePrefix (const SbString &c)
 
static void setTraceRefs (SbBool trace)
 
static SbBool getTraceRefs (void)
 
static SbBool connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname)
 
static SbBool readRoute (SoInput *input)
 

Public Attributes

SoSFBool antiSquish
 
SoSFBool ccw
 
SoSFFloat creaseAngle
 
SoMFVec2f crossSection
 
SoMFVec3f spine
 
SoSFFloat radius
 
SoSFInt32 circleSegmentCount
 
SoSFFloat lodDistance1
 
SoSFFloat lodDistance2
 
SoSFVec3f zAxis
 
SoMFColor color
 
SoSFBool pickLines
 
SoSFColor alternateColor
 
SoSFBool doAlternateColor
 
- Public Attributes inherited from SoNode
 INVENTOR
 
 VRML1
 
 VRML2
 
 INVENTOR_1
 
 INVENTOR_2_0
 
 INVENTOR_2_1
 
 INVENTOR_2_5
 
 INVENTOR_2_6
 
 COIN_1_0
 
 COIN_2_0
 
 EXTENSION
 

Protected Member Functions

virtual ~SoLODExtrusion ()
 
virtual void notify (SoNotList *list)
 
virtual void generatePrimitives (SoAction *action)
 
virtual SoDetailcreateTriangleDetail (SoRayPickAction *action, const SoPrimitiveVertex *v1, const SoPrimitiveVertex *v2, const SoPrimitiveVertex *v3, SoPickedPoint *pp)
 
- Protected Member Functions inherited from SoShape
virtual const SoFieldDatagetFieldData (void) const
 
 SoShape (void)
 
virtual ~SoShape ()
 
float getComplexityValue (SoAction *action)
 
virtual SbBool shouldGLRender (SoGLRenderAction *action)
 
void beginSolidShape (SoGLRenderAction *action)
 
void endSolidShape (SoGLRenderAction *action)
 
void GLRenderBoundingBox (SoGLRenderAction *action)
 
SbBool shouldPrimitiveCount (SoGetPrimitiveCountAction *action)
 
SbBool shouldRayPick (SoRayPickAction *const action)
 
void computeObjectSpaceRay (SoRayPickAction *const action)
 
void computeObjectSpaceRay (SoRayPickAction *const action, const SbMatrix &matrix)
 
virtual SoDetailcreateLineSegmentDetail (SoRayPickAction *action, const SoPrimitiveVertex *v1, const SoPrimitiveVertex *v2, SoPickedPoint *pp)
 
virtual SoDetailcreatePointDetail (SoRayPickAction *action, const SoPrimitiveVertex *v, SoPickedPoint *pp)
 
void invokeTriangleCallbacks (SoAction *const action, const SoPrimitiveVertex *const v1, const SoPrimitiveVertex *const v2, const SoPrimitiveVertex *const v3)
 
void invokeLineSegmentCallbacks (SoAction *const action, const SoPrimitiveVertex *const v1, const SoPrimitiveVertex *const v2)
 
void invokePointCallbacks (SoAction *const action, const SoPrimitiveVertex *const v)
 
void beginShape (SoAction *const action, const TriangleShape shapetype, SoDetail *const detail=NULL)
 
void shapeVertex (const SoPrimitiveVertex *const v)
 
void endShape (void)
 
void generateVertex (SoPrimitiveVertex *const pv, const SbVec3f &point, const SbBool useTexFunc, const SoMultiTextureCoordinateElement *const tce, const float s, const float t, const SbVec3f &normal)
 
void generateVertex (SoPrimitiveVertex *const pv, const SbVec3f &point, const SbBool useTexFunc, const SoMultiTextureCoordinateElement *const tce, const float s, const float t, const float r, const SbVec3f &normal)
 
SbBool startVertexArray (SoGLRenderAction *action, const SoCoordinateElement *coords, const SbVec3f *pervertexnormals, const SbBool texpervertex, const SbBool colorpervertex)
 
void finishVertexArray (SoGLRenderAction *action, const SbBool vbo, const SbBool normpervertex, const SbBool texpervertex, const SbBool colorpervertex)
 
- Protected Member Functions inherited from SoNode
 SoNode (void)
 
virtual ~SoNode ()
 
virtual SbBool readInstance (SoInput *in, unsigned short flags)
 
- Protected Member Functions inherited from SoFieldContainer
 SoFieldContainer (void)
 
virtual ~SoFieldContainer ()
 
- Protected Member Functions inherited from SoBase
 SoBase (void)
 
virtual ~SoBase ()
 
virtual void destroy (void)
 
SbBool hasMultipleWriteRefs (void) const
 
SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const
 
void writeFooter (SoOutput *out) const
 
virtual const char * getFileFormatName (void) const
 

Additional Inherited Members

- Public Types inherited from SoShape
enum  TriangleShape
 
- Public Types inherited from SoNode
enum  NodeType
 
- Protected Types inherited from SoBase
enum  BaseFlags
 
- Static Protected Member Functions inherited from SoNode
static const SoFieldData ** getFieldDataPtr (void)
 
static void setNextActionMethodIndex (int index)
 
static int getNextActionMethodIndex (void)
 
static void incNextActionMethodIndex (void)
 
static void setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask)
 
- Static Protected Member Functions inherited from SoBase
static uint32_t getCurrentWriteCounter (void)
 
- Protected Attributes inherited from SoNode
SbUniqueId uniqueId
 
- Protected Attributes inherited from SoFieldContainer
SbBool isBuiltIn
 
- Static Protected Attributes inherited from SoNode
static SbUniqueId nextUniqueId
 
static int nextActionMethodIndex
 

Detailed Description

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.

See also
SoVRMLExtrusion

Constructor & Destructor Documentation

◆ SoLODExtrusion()

SoLODExtrusion::SoLODExtrusion ( void  )

◆ ~SoLODExtrusion()

SoLODExtrusion::~SoLODExtrusion ( )
protectedvirtual

Member Function Documentation

◆ computeBBox()

void SoLODExtrusion::computeBBox ( SoAction action,
SbBox3f bbox,
SbVec3f center 
)
virtual

Implements SoShape.

◆ createTriangleDetail()

SoDetail * SoLODExtrusion::createTriangleDetail ( SoRayPickAction action,
const SoPrimitiveVertex v1,
const SoPrimitiveVertex v2,
const SoPrimitiveVertex v3,
SoPickedPoint pp 
)
protectedvirtual

Reimplemented from SoShape.

◆ generatePrimitives()

void SoLODExtrusion::generatePrimitives ( SoAction action)
protectedvirtual

Implements SoShape.

◆ getPrimitiveCount()

void SoLODExtrusion::getPrimitiveCount ( SoGetPrimitiveCountAction action)
virtual

Reimplemented from SoShape.

◆ GLRender()

void SoLODExtrusion::GLRender ( SoGLRenderAction action)
virtual

Reimplemented from SoShape.

◆ initClass()

void SoLODExtrusion::initClass ( void  )
static

◆ notify()

void SoLODExtrusion::notify ( SoNotList list)
protectedvirtual

Overloaded to disable geometry cache.

Reimplemented from SoShape.

◆ rayPick()

void SoLODExtrusion::rayPick ( SoRayPickAction action)
virtual

Reimplemented from SoShape.

Member Data Documentation

◆ alternateColor

SoSFColor SoLODExtrusion::alternateColor

◆ antiSquish

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.

◆ ccw

SoSFBool SoLODExtrusion::ccw

Whether or not crossSection vertices are ordered counter-clockwise or not.

◆ circleSegmentCount

SoSFInt32 SoLODExtrusion::circleSegmentCount

How many line segments will be used to represent a circular cross section. Relevant only when radius is greater than zero.

◆ color

SoMFVec3f SoLODExtrusion::color

If color.getNum() == spine.getNum(), the extrusion is colored per spine point.

◆ creaseAngle

SoSFFloat SoLODExtrusion::creaseAngle

Crease angle for normal vector calculation.

◆ crossSection

SoMFVec2f SoLODExtrusion::crossSection

Cross section of the extrusion, given as a list of 2D vertices.

◆ doAlternateColor

SoSFBool SoLODExtrusion::doAlternateColor

◆ lodDistance1

SoSFFloat SoLODExtrusion::lodDistance1

The distance from camera where extrusion rendering is replaced by line rendering.

◆ lodDistance2

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.

◆ pickLines

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.

◆ radius

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.

◆ spine

SoMFVec3f SoLODExtrusion::spine

The central spine of the extrusion, given as a list of 3D vertices.

◆ zAxis

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 accout for this. Default value is (0, 0, 0), which means that the Z-axis is not locked.


The documentation for this class was generated from the following files: