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.