MeshKit  1.0
AF2PlaneProjection Class Reference

#include <AF2PlaneProjection.hpp>

Inheritance diagram for AF2PlaneProjection:

List of all members.

Public Member Functions

 AF2PlaneProjection (iGeom *iGeomPtrArg, iGeom::EntityHandle srfcHandle, MeshKit::Vector< 3 > const &planeOrigin, MeshKit::Vector< 3 > const &planeNormal, MeshKit::Vector< 3 > const &planeXDir, double scaleFactor)
 Constructor.
AF2Point2DtransformFromSurface (AF2Point3D const &srfcPnt, bool &legal) const
 Transform from a 3-dimensional point on the surface to a point in a 2-dimensional space.
AF2Point3DtransformToSurface (AF2Point2D const &planePnt, unsigned long const &pntId) const
 Transform from a point in the 2-dimensional space of this transformation to a 3-dimensional point on the surface.

Private Attributes

iGeomiGeomPtr
iGeom::EntityHandle surface
MeshKit::Vector< 3 > pOrigin
MeshKit::Vector< 3 > pNormal
MeshKit::Vector< 3 > pXDir
MeshKit::Vector< 3 > pYDir
double scale

Detailed Description

Definition at line 24 of file AF2PlaneProjection.hpp.


Constructor & Destructor Documentation

AF2PlaneProjection ( iGeom iGeomPtrArg,
iGeom::EntityHandle  srfcHandle,
MeshKit::Vector< 3 > const &  planeOrigin,
MeshKit::Vector< 3 > const &  planeNormal,
MeshKit::Vector< 3 > const &  planeXDir,
double  scaleFactor 
)

Constructor.

It is the responsibility of the context that constructs/uses an AF2PlaneProjection to ensure that the pointer to the iGeom instance and the handle to the geometric surface remain valid as long as the AF2PlaneProjection is in use.

The normal vector must have length bounded away from zero. Ideally it would have length one, but the constructor will normalize it to have length one if it does not.

The x-direction vector must also have length bounded away from zero. Ideally it would have length one, but the constructor will normalize it to have length one if it does not. The x-direction vector must be orthogonal to the normal vector.

The y-direction of the transformation will be defined such that the right hand rule is followed. In other words, the normal vector to the plane will be the standard right-handed cross product of the (normalized) x-direction vector and the y-direction.

After projecting three-dimensional points into the plane, the coordinates will be multiplied by the inverse of the scaling factor. When used for the advancing front algorithm implementation, the scale should be given as the approximate distance between two adjacent points on the front near the baseline edge, since this will produce points that are nearly unit distance apart after the transformation is applied and the advancing front rules are defined relative to a unit length baseline edge.

Parameters:
iGeomPtrArga pointer to an iGeom instance
srfcHandlea handle to a 2-dimensional surface embedded in 3-dimensional space that is a valid handle to access the surface through the iGeom instance referenced by iGeomPtrArg
planeOrigina point within the plane onto which this transformation will project points
planeNormala direction vector that is normal to the plane onto which this transformation will project points
planeXDira direction vector (parallel to the plane onto which this transformation will project points) that defines the direction that will be the first coordinate of the 2-dimensional space
scaleFactora positive scaling factor that approximates the distance between adjacent points on the advancing front

Definition at line 17 of file AF2PlaneProjection.cpp.


Member Function Documentation

AF2Point2D * transformFromSurface ( AF2Point3D const &  srfcPnt,
bool &  legal 
) const [virtual]

Transform from a 3-dimensional point on the surface to a point in a 2-dimensional space.

The returned point is returned by pointer. It is allocated on the heap by this method using new, and it is the responsibility of the calling context to deallocate it with a call to delete.

Parameters:
srfcPntthe input 3-dimensional point on the surface
legalan editable flag that the AF2LocalTransform may set to false to indicate that the 3-dimensional point does not lie in the local patch of the surface for which this transform provides a bijection, so the 2-dimensional point returned by the method should not be used except, possibly, as an endpoint of an edge if the other endpoint of the edge is legal
Returns:
a 2-dimensional point

Implements AF2LocalTransform.

Definition at line 88 of file AF2PlaneProjection.cpp.

AF2Point3D * transformToSurface ( AF2Point2D const &  planePnt,
unsigned long const &  pntId 
) const [virtual]

Transform from a point in the 2-dimensional space of this transformation to a 3-dimensional point on the surface.

The returned point is returned by pointer. It is allocated on the heap by this method using new, and it is the responsibility of the calling context to deallocate it with a call to delete.

Parameters:
planePntthe input 2-dimensional point
pntIdthe local point identifier that should be assigned to the new three-dimensional point
Returns:
a 3-dimensional point on the surface

Implements AF2LocalTransform.

Definition at line 133 of file AF2PlaneProjection.cpp.


Member Data Documentation

iGeom* iGeomPtr [private]

Definition at line 28 of file AF2PlaneProjection.hpp.

MeshKit::Vector<3> pNormal [private]

Definition at line 31 of file AF2PlaneProjection.hpp.

MeshKit::Vector<3> pOrigin [private]

Definition at line 30 of file AF2PlaneProjection.hpp.

MeshKit::Vector<3> pXDir [private]

Definition at line 32 of file AF2PlaneProjection.hpp.

MeshKit::Vector<3> pYDir [private]

Definition at line 33 of file AF2PlaneProjection.hpp.

double scale [private]

Definition at line 34 of file AF2PlaneProjection.hpp.

Definition at line 29 of file AF2PlaneProjection.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines