SoBaseExtrusion Class Reference
[Shapes]

Abstract base class for all extrusion-based shape nodes. More...

#include <Inventor/nodes/SoBaseExtrusion.h>

Inheritance diagram for SoBaseExtrusion:
SoShape SoNode SoFieldContainer SoBase SoRefCounter SoTypedObject SoCircularExtrusion SoExtrusion

List of all members.

Public Types

enum  ScaleMode {
  DEFAULT,
  SPINE_ONLY,
  SECTION_ONLY,
  NONE
}
enum  ExtrusionMode {
  SMOOTH = 0,
  BASIC = 1,
  SMOOTH_WITHOUT_SELF_INTERSECTIONS = 2
}

Public Member Functions

virtual SoType getTypeId () const

Static Public Member Functions

static SoType getClassTypeId ()

Public Attributes

SoSFBool beginCap
SoSFBool endCap
SoMFVec3f spine
SoSFEnum scaleMode
SoSFEnum extrusionMode

Friends

class SoExtrusionImpl

Detailed Description

Abstract base class for all extrusion-based shape nodes.

This node is the abstract base class for all extrusion-based shape (geometry) nodes. It is used as a repository for convenience functions for subclasses and to provide a type identifier to make it easy to determine whether a shape is extrusion-based.

All extrusion-based shapes are created by extruding a 2D shape along a 3D spine. The user can determine which caps are created using the fields beginCap and endCap.

The scaleMode field is used to select the points that will be scaled by the scaleFactor in the current transformation (for example SoTransform), if any. Translation and rotation are applied in all cases.

The extrusionMode field is used to select the extrusion algorithm.

FILE FORMAT/DEFAULT

SEE ALSO

SoExtrusion, SoCircularExtrusion


Member Enumeration Documentation

Enumerator:
SMOOTH 

Default extrusion algorithm.

The algorithm uses constant section parts cut at spine points in a way similar to what a framer would do to build a frame. This provides a better continuity of the shape and avoids cracks.

This algorithm determines the piecewise extrusion directions as a vector between consecutive spine points. This means that zero or really small distances between consecutive points can produce odd extrusion directions and result in wrong geometry. It is up to the application to filter spine points to avoid these cases. The algorithm can produce odd geometries when spines points are overlapping or zigzags.

BASIC 

Old extrusion algorithm.

It does not guarantee that extrusion portions have constant section and shapes could be more twisted.

SMOOTH_WITHOUT_SELF_INTERSECTIONS 

Smooth but avoids self intersections caused by large curvature radius of the spine.

When the spine has curves with a large curvature radius compared to the radius of the extrusion section, SMOOTH generation might produce self intersections. Use this mode to avoid self intersections at the cost of some localized violation of the extrusion smoothness. (Section parts at spine joints may not be constant where self intersections were present.) This mode is useful to avoid artifacts in boolean results when SoBaseExtrusion derived objects are used as operands for CSG operations.

Enumerator:
DEFAULT 

Default scaling.

Every point in the generated geometry is scaled.

SPINE_ONLY 

Only the spine points are scaled.

The cross section points are not scaled, so the cross section shape is undistorted even is scaling is non-uniform.

SECTION_ONLY 

Only the cross section points are scaled.

Not currently implemented.

NONE 

Ignores the scaling state.

Not currently implemented.


Member Function Documentation

static SoType SoBaseExtrusion::getClassTypeId (  )  [static]

Returns the type identifier for this class.

Reimplemented from SoShape.

Reimplemented in SoCircularExtrusion, and SoExtrusion.

virtual SoType SoBaseExtrusion::getTypeId (  )  const [virtual]

Returns the type identifier for this specific instance.

Reimplemented from SoShape.

Reimplemented in SoCircularExtrusion, and SoExtrusion.


Friends And Related Function Documentation

friend class SoExtrusionImpl [friend]

Member Data Documentation

If TRUE, begin planar cap surfaces generated.

Default is TRUE.

If TRUE, end planar cap surfaces generated.

Default is TRUE.

Construction behavior of the extrusion.

Use enum ExtrusionMode. Default is SMOOTH.

Scaling behavior of the extrusion.

Use enum ScaleMode. Default is DEFAULT.

Spine points.

Default is [0 0 0, 0 1 0].


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

Open Inventor Toolkit reference manual, generated on 12 Feb 2024
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/