AlSurfacePoint
 
 
 

Interface to Alias Surface points.

Synposis

#include <AlSurfacePoint.h>
class AlSurfacePoint : public AlPoint
AlSurfacePoint();
~AlSurfacePoint();
virtual AlObject *	copyWrapper() const;
virtual AlObjectType	type() const;
statusCode	create(const AlSurface *, double, double);
statusCode	setParameter(double, double);
statusCode	parameter(double &, double &) const;
virtual statusCode	worldPosition(double &, double &, double &) const;
statusCode	uTangent(double &, double &, double &) const;
statusCode	vTangent(double &, double &, double &) const;
statusCode	normal(double &, double &, double &) const;
statusCode	meanRadius(double &) const;
statusCode	gaussianRadius(double &) const;
statusCode	principalMinimumRadius(double &) const;
statusCode	principalMaximumRadius(double &) const;
statusCode	uArcLength(double &) const;
statusCode	vArcLength(double &) const;
AlSurfaceNode *	attachedTo();

Description

A point can be created in the parametric space of any AlSurface. This point can be queried for the surface normal, tangents, position in world coordinate system, arc lengths, and curvatures. This class contains methods for creating, and moving the surface point. If the AlSurface is deleted, the surface point created on it is deleted.

AlSurfacePoint::AlSurfacePoint(void)

Description

Constructs an AlSurfacePoint wrapper object.

AlSurfacePoint::~AlSurfacePoint()

Description

Deletes an AlSurfacePoint wrapper object.

AlObject *AlSurfacePoint::copyWrapper() const

Description

Returns an exact copy of the AlSurfacePoint wrapper.

AlObjectType AlSurfacePoint::type() const

Description

Returns the class identifier kSurfacePointType.

statusCode AlSurfacePoint::create(const AlSurface *surface, double u, double v)

Description

Creates a point on the given surface

Arguments

< surface - the surface on which the point is created.

< u - surface parameter at which point is created

< v - surface parameter at which point is created

Return Codes

sSuccess - the point was successfully created

sAlreadyCreated - object has already been created

sFailure - failed to create a point

sInvalidArgument - the surface was not valid

statusCode AlSurfacePoint::setParameter(double u, double v)

Description

Move the point created on a surface.

Arguments:

< u, v - the parameters of the surface where the point has to be moved

Return Codes

sSuccess - the point was moved

sInvalidObject - the point is not valid

statusCode AlSurfacePoint::parameter(double &u, double &v) const

Description

Find the surface parameters at where the surface point is located

Arguments

> u, v - the U and V parameters of the surface.

Return Codes

sSuccess - the parameters were found

sInvalidObject - the point is not valid

statusCode AlSurfacePoint::worldPosition(double &x, double &y, double &z) const

Description

Find the world coordinates of the surface point

Arguments

> x, y, z - the world coordinates of the surface point

Return Codes

sSuccess - the coordinates were found.

sInvalidObject - the point is not valid

statusCode AlSurfacePoint::uTangent(double &x, double &y, double &z) const

Description

Find the tangent to the surface at the point in the U direction.

Arguments

> x, y, z - the X, Y, Z components of the normalized tangent

Return Codes

sSuccess - the tangent was found.

sInvalidObject - the point is not valid

statusCode AlSurfacePoint::vTangent(double &x, double &y, double &z) const

Description

Find the tangent to the surface at the point in the V direction.

Arguments

> x, y, z - the X, Y, Z components of the normalized tangent

Return Codes

sSuccess - the tangent was found.

sInvalidObject - the point is not valid

statusCode AlSurfacePoint::normal(double &x, double &y, double &z) const

Description

Find the normal to the surface at the point.

Arguments

> x, y, z - the X, Y, Z components of the normalized normal

Return Codes

sSuccess - the normal was found.

sInvalidObject - the point is not valid

statusCode AlSurfacePoint::meanRadius(double &meanRad) const

Description

Find the mean of the principal radii of the surface at the point.

Arguments

> meanRad - The mean radius of the surface

Return Codes

sSuccess - the mean radius was found.

sInvalidObject - the point is not valid

statusCode AlSurfacePoint::gaussianRadius(double &gausRad) const

Description

Find the product of the principal radii of the surface at the point.

Arguments

> gausRad - The gaussian radius of the surface at the point

Return Codes

sSuccess - the gaussian radius was found.

sInvalidObject - the point is not valid

statusCode AlSurfacePoint::principalMinimumRadius(double &pminRad) const

Description

Find the minimum radius of the curves on the surface, which pass through the point.

Arguments

> pminRad - The principal minimum radius of the surface

Return Codes

sSuccess - the radius was found.

sInvalidObject - the point is not valid

statusCode AlSurfacePoint::principalMaximumRadius(double &pmaxRad) const

Description

Find the maximum radius of the curves on the surface, which pass through the point.

Arguments

> pmaxRad - The principal maximum radius of the surface

Return Codes

sSuccess - the radius was found.

sInvalidObject - the point is not valid

statusCode AlSurfacePoint::uArcLength(double &uarcLen) const

Description

Find the arc length along U tangent at the point on the surface.

Arguments

> uarcLen - The arc length along U tangent

Return Codes

sSuccess - the arc length was found.

sInvalidObject - the point is not valid

statusCode AlSurfacePoint::vArcLength(double &varcLen) const

Description

Find the arc length along V tangent at the point on the surface.

Arguments

> varcLen - The arc length along V tangent

Return Codes

sSuccess - the arc length was found.

sInvalidObject - the point is not valid

AlSurfaceNode * AlSurfacePoint::attachedTo()

Description

Returns the surface node that this point is associated with. NULL is returned if this method fails.