SmallChange  1.0.0
A collection of extensions to Coin3D
Loading...
Searching...
No Matches
SoLODExtrusion Class Reference

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

#include <SoLODExtrusion.h>

Inheritance diagram for SoLODExtrusion:
SoShape

Public Member Functions

virtual void computeBBox (SoAction *action, SbBox3f &bbox, SbVec3f &center)
 
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 SoDetailcreateTriangleDetail (SoRayPickAction *action, const SoPrimitiveVertex *v1, const SoPrimitiveVertex *v2, const SoPrimitiveVertex *v3, SoPickedPoint *pp)
 
virtual void generatePrimitives (SoAction *action)
 
virtual void notify (SoNotList *list)
 

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

Member Function Documentation

◆ notify()

void SoLODExtrusion::notify ( SoNotList * list)
protectedvirtual

Overloaded to disable geometry cache.

Member Data Documentation

◆ 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 counterclockwise 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.

◆ 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 account 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: