AlSurfaceNode
 
 
 

Dag node class for NURBS surfaces.

Synopsis

#include <AlSurfaceNode.h>
class AlSurfaceNode : public AlDagNode
AlSurfaceNode();
virtual	~AlSurfaceNode();
virtual AlObject*	copyWrapper() const;
statusCode	create( AlSurface * );
virtual AlObjectType	type() const;
AlSurface*	surface() const;
AlSurface*	surface(AlTM&) const;
int	curvePrecision() const;
statusCode	setCurvePrecision( int precision );
int	patchPrecision() const;
statusCode	setPatchPrecision( int precision );

Description

AlSurfaceNode is the class used to access and manipulate surfaces within the DAG. This class behaves like other DAG nodes (see AlDagNode for a description of the usage and purpose of DAG nodes) and in addition allows users to add curves on surfaces and access the geometry of the surface via the surface() method. The surface() method returns a pointer to an AlSurface object, which provides the user with the methods used to modify the geometry of the surface. Surfaces can be created from scratch by calling the AlSurfaceNode::create() method, or read in from a wire file (see AlUniverse documentation).

AlSurfaceNode::AlSurfaceNode()

Description

Constructs an AlSurfaceNode wrapper object.

AlSurfaceNode::~AlSurfaceNode()

Description

Deletes an AlSurfaceNode wrapper object.

AlObject* AlSurfaceNode::copyWrapper() const

Description

Returns an exact duplicate of this AlSurfaceNode wrapper.

statusCode AlSurfaceNode::create( AlSurface *newSurface )

Description

Allocates the DAG node and geometry required for this object. This method must be called once and only once before any other method and only if the surface has been allocated by the user (that is, not read in from a wire file). It is an error to call this method twice or if the object has been read in from a wire file.

Arguments

< newSurface - the surface to create this surface node for

Return Codes

sSuccess - the surface node was created

sInvalidArgument - ’newSurface’ was NULL or invalid

sFailure - the surface node was not created

AlObjectType AlSurfaceNode::type() const

Description

Returns the class identifier kSurfaceNodeType.

AlSurface* AlSurfaceNode::surface() const

Description

Returns a pointer to the surface data structure which can be used to access the geometry of the surface.

AlSurface* AlSurfaceNode::surface(AlTM& tm) const

Description

Returns a pointer to the surface data structure that can be used to access the geometry of the surface. The AlTM will be updated with the groupNode’s TM if a childNode exists.

Arguments

< tm - the AlTM to update with the group node’s TM

int AlSurfaceNode::curvePrecision() const

Description

Obtains the curve precision for the surface. -1 is returned if the surface is invalid.

statusCode AlSurfaceNode::setCurvePrecision( int precision )

Description

Sets the curve precision for the surface.

Arguments

< precision - the new curve precision (range is 1-129)

Return code

sSuccess - the curve precision was set

sInvalidArgument - value for curve precision was invalid

sInvalidObject - the surface node was invalid

int AlSurfaceNode::patchPrecision() const

Description

Obtains the patch precision for the surface. -1 is returned if the surface is invalid.

statusCode AlSurfaceNode::setPatchPrecision( int precision )

Description

Sets the patch precision for the surface.

Arguments

< precision - the new patch precision (range is 2-64)

Return code

sSuccess - the patch precision was set

sInvalidArgument - value for patch precision was invalid

sInvalidObject - the surface node was invalid