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.