SoCone(3IV)

NAME
SoCone — cone shape node

INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoShape > SoCone

SYNOPSIS
#include <Inventor/nodes/SoCone.h>

enum Part {
SoCone::SIDES
The conical part
SoCone::BOTTOM
The bottom circular face
SoCone::ALL
All parts
}

Fields from class SoCone:

SoSFBitMask
parts
SoSFFloat
bottomRadius
SoSFFloat
height

Methods from class SoCone:

SoCone()
void
addPart(SoCone::Part part)
void
removePart(SoCone::Part part)
SbBool
hasPart(SoCone::Part part) const
static SoType
getClassTypeId()

Methods from class SoNode:

void
setOverride(SbBool state)
SbBool
isOverride() const
SoNode *
copy(SbBool copyConnections = FALSE) const
virtual SbBool
affectsState() const
static SoNode *
getByName(const SbName &name)
static int
getByName(const SbName &name, SoNodeList &list)

Methods from class SoFieldContainer:

void
setToDefaults()
SbBool
hasDefaultValues() const
SbBool
fieldsAreEqual(const SoFieldContainer *fc) const
void
copyFieldValues(const SoFieldContainer *fc, SbBool copyConnections = FALSE)
SbBool
set(const char *fieldDataString)
void
get(SbString &fieldDataString)
virtual int
getFields(SoFieldList &resultList) const
virtual SoField *
getField(const SbName &fieldName) const
SbBool
getFieldName(const SoField *field, SbName &fieldName) const
SbBool
isNotifyEnabled() const
SbBool
enableNotify(SbBool flag)

Methods from class SoBase:

void
ref()
void
unref() const
void
unrefNoDelete() const
void
touch()
virtual SoType
getTypeId() const
SbBool
isOfType(SoType type) const
virtual void
setName(const SbName &name)
virtual SbName
getName() const

DESCRIPTION
This node represents a simple cone whose central axis is aligned with the y-axis. By default, the cone is centered at (0,0,0) and has a size of -1 to +1 in all three directions. The cone has a radius of 1 at the bottom and a height of 2, with its apex at 1. The cone has two parts: the sides and the bottom.

The cone is transformed by the current cumulative transformation and is drawn with the current lighting model, drawing style, material, and geometric complexity.

If the current material binding is PER_PART or PER_PART_INDEXED, the first current material is used for the sides of the cone, and the second is used for the bottom. Otherwise, the first material is used for the entire cone.

When a texture is applied to a cone, it is applied differently to the sides and bottom. On the sides, the texture wraps counterclockwise (from above) starting at the back of the cone. The texture has a vertical seam at the back, intersecting the yz-plane. For the bottom, a circle is cut out of the texture square and applied to the cone's base circle. The texture appears right side up when the top of the cone is tilted away from the camera.

FIELDS
SoSFBitMask
parts
Visible parts of cone.

SoSFFloat
bottomRadius
SoSFFloat
height
These define the cone's height and the radius of the base circle; values must be greater than 0.0.

METHODS

SoCone()
Creates a cone node with default settings.

void
addPart(SoCone::Part part)
void
removePart(SoCone::Part part)
These are convenience functions that make it easy to turn on or off a part of the cone.

SbBool
hasPart(SoCone::Part part) const
This convenience function returns whether a given part is on or off.

static SoType
getClassTypeId()
Returns type identifier for this class.

ACTION BEHAVIOR
SoGLRenderAction
Draws cone based on the current coordinates, materials, drawing style, and so on.

SoRayPickAction
Intersects the ray with the cone. The part of the cone that was picked is available from the SoConeDetail.

SoGetBoundingBoxAction
Computes the bounding box that encloses the cone.

SoCallbackAction
If any triangle callbacks are registered with the action, they will be invoked for each successive triangle that approximates the cone.

FILE FORMAT/DEFAULTS
Cone {
parts	ALL
bottomRadius	1
height	2
}

SEE ALSO
SoConeDetail, SoCube, SoCylinder, SoSphere