Public Member Functions | Static Public Member Functions

zeus::TPlane Class Reference

#include <Plane.h>

Inheritance diagram for zeus::TPlane:
zeus::IPlane zeus::IGeometricObject3D

List of all members.

Public Member Functions

 TPlane (const IVector3D &rVecInitial, const IVector3D &rVecDirection1, const IVector3D &rVecDirection2, bool bConstructionByPointDirectionForm_Or_By3Points)
 Construction by the point direction form, or by just giving 3 points.
 TPlane (const Float &a, const Float &b, const Float &c, const Float &d)
 Construction by the coordinate form.
 TPlane (const IVector3D &rVecNormal, const IVector3D &rVecKnownPoint)
 Construction by normal vector and one known point.
 TPlane ()
 Default constructor, initializing as xy-plane.
 TPlane (const TPlane &rPlane)
 Copy constructor: Constructor taking class type object.
 TPlane (const IPlane &rPlane)
 Constructor taking interface type object.
virtual ~TPlane ()
 Virtual destructor.
virtual const IVector3D &MQUALIFIER getInitialVector () const
virtual const IVector3D &MQUALIFIER getDirectionVector1 () const
virtual const IVector3D &MQUALIFIER getDirectionVector2 () const
virtual void MQUALIFIER setInitialVector (const IVector3D &rVecInitial)
virtual void MQUALIFIER setDirectionVector1 (const IVector3D &rVecDirection1)
virtual void MQUALIFIER setDirectionVector2 (const IVector3D &rVecDirection2)
virtual const Float &MQUALIFIER getCoordFormA () const
virtual const Float &MQUALIFIER getCoordFormB () const
virtual const Float &MQUALIFIER getCoordFormC () const
virtual const Float &MQUALIFIER getCoordFormD () const
virtual const Float *MQUALIFIER getCoordForm () const
virtual void MQUALIFIER setCoordFormA (const Float &a)
virtual void MQUALIFIER setCoordFormB (const Float &b)
virtual void MQUALIFIER setCoordFormC (const Float &c)
virtual void MQUALIFIER setCoordFormD (const Float &d)
virtual void MQUALIFIER assign (const IPlane &rPlane)
virtual void MQUALIFIER calcNormalVector (IVector3D &rVecNormal) const
virtual bool MQUALIFIER isValid () const
virtual void MQUALIFIER initAsPlaneXY ()
virtual void MQUALIFIER initAsPlaneXZ ()
virtual void MQUALIFIER initAsPlaneYZ ()
virtual bool MQUALIFIER isPlaneXY () const
virtual bool MQUALIFIER isPlaneXZ () const
virtual bool MQUALIFIER isPlaneYZ () const
virtual void MQUALIFIER calcPointFromParameters (const Float &fParameter1, const Float &fParameter2, IVector3D &rVecPoint) const
virtual bool MQUALIFIER calcParametersFromPoint (const IVector3D &rVecPoint, Float &fParameter1, Float &fParameter2) const
virtual bool MQUALIFIER isParallel (const IPlane &rPlane) const
virtual bool MQUALIFIER isEqual (const IPlane &rPlane) const
virtual bool MQUALIFIER arePointsOnSameSide (const IVector3D &rVecPoint1, const IVector3D &rVecPoint2) const
virtual Float MQUALIFIER calcDistanceTo (const IVector3D &rVecPoint) const
virtual bool MQUALIFIER calcIntersectionPointWithStraightLine3D (const IStraightLine3D &rStraightLine3D, IVector3D &rVecIntersectionPoint) const
virtual bool MQUALIFIER calcIntersectionPointWith2Planes (const IPlane &rPlane1, const IPlane &rPlane2, IVector3D &rVecIntersectionPoint) const
virtual bool MQUALIFIER calcIntersectionLine (const IPlane &rPlane, IStraightLine3D &rIntersectionLine) const
virtual void MQUALIFIER calcAngleTo (const IPlane &rPlane, IAngle &rAngle) const
virtual bool MQUALIFIER containsPoint (const IVector3D &rVecPoint) const
virtual bool MQUALIFIER containsStraightLine3D (const IStraightLine3D &rStraightLine3D) const
TVector3D getNormalVector () const
 Calculate the normal vector by value.
const TPlaneoperator= (const IPlane &rPlane)
const TPlaneoperator= (const TPlane &rPlane)
bool operator|| (const IPlane &rPlane) const
bool operator== (const IPlane &rPlane) const
bool operator!= (const IPlane &rPlane) const
 Inequal to another plane?

Static Public Member Functions

static const TPlanegetPlaneXY ()
 Returns the XY plane.
static const TPlanegetPlaneXZ ()
 Returns the XZ plane.
static const TPlanegetPlaneYZ ()
 Returns the YZ plane.

Detailed Description

TPlane encapsulates a three dimensional floating point plane for vector geometry calculations.

TPlane objects are stack objects.


Constructor & Destructor Documentation

zeus::TPlane::TPlane ( const IVector3D rVecInitial,
const IVector3D rVecDirection1,
const IVector3D rVecDirection2,
bool  bConstructionByPointDirectionForm_Or_By3Points 
)

Construction by the point direction form, or by just giving 3 points.

Construction by the point direction form, or by just giving 3 points.

Point direction form: r = r0 + s * u + t * v

Parameters:
rVecInitial[IN]: Initial vector , or vector to point 1.
rVecDirection1[IN]: Direction vector 1, or vector to point 2.
rVecDirection2[IN]: Direction vector 2, or vector to point 3.
bConstructionByPointDirectionForm_Or_By3Points[IN]: Defines whether the 3 given vectors define the point direction form or 3 points.
Note:
THIS CONSTRUCTOR CODE MUST NOT LEAD TO A CALL TO STATIC MEMBERS OF TVector3D, BECAUSE THEY MAY NOT HAVE BEEN CONSTRUCTED YET.
zeus::TPlane::TPlane ( const Float &  a,
const Float &  b,
const Float &  c,
const Float &  d 
)

Construction by the coordinate form.

Construction by the coordinate form:

ax + by + cz + d = 0

Parameters:
a[IN]: Coefficient of the coordinate form as noted above.
b[IN]: Coefficient of the coordinate form as noted above.
c[IN]: Coefficient of the coordinate form as noted above.
d[IN]: Coefficient of the coordinate form as noted above.
zeus::TPlane::TPlane ( const IVector3D rVecNormal,
const IVector3D rVecKnownPoint 
)

Construction by normal vector and one known point.

Construction by normal vector and one known point.

Parameters:
rVecNormal[IN]: The normal vector.
rVecKnownPoint[IN]: Vector to the known point.
zeus::TPlane::TPlane (  ) [inline]

Default constructor, initializing as xy-plane.

zeus::TPlane::TPlane ( const TPlane rPlane ) [inline]

Copy constructor: Constructor taking class type object.

zeus::TPlane::TPlane ( const IPlane rPlane ) [inline]

Constructor taking interface type object.

virtual zeus::TPlane::~TPlane (  ) [inline, virtual]

Virtual destructor.


Member Function Documentation

bool MQUALIFIER zeus::TPlane::arePointsOnSameSide ( const IVector3D rVecPoint1,
const IVector3D rVecPoint2 
) const [virtual]
virtual void MQUALIFIER zeus::TPlane::assign ( const IPlane rPlane ) [inline, virtual]

Assignment.

Parameters:
rPlane[IN]: Plane to be assigned to this plane.

Implements zeus::IPlane.

void MQUALIFIER zeus::TPlane::calcAngleTo ( const IPlane rPlane,
IAngle rAngle 
) const [virtual]
See also:
IPlane::calcAngleTo

Implements zeus::IPlane.

Float MQUALIFIER zeus::TPlane::calcDistanceTo ( const IVector3D rVecPoint ) const [virtual]
See also:
IPlane::calcDistanceTo

Implements zeus::IPlane.

bool MQUALIFIER zeus::TPlane::calcIntersectionLine ( const IPlane rPlane,
IStraightLine3D rIntersectionLine 
) const [virtual]
bool MQUALIFIER zeus::TPlane::calcIntersectionPointWith2Planes ( const IPlane rPlane1,
const IPlane rPlane2,
IVector3D rVecIntersectionPoint 
) const [virtual]
bool MQUALIFIER zeus::TPlane::calcIntersectionPointWithStraightLine3D ( const IStraightLine3D rStraightLine3D,
IVector3D rVecIntersectionPoint 
) const [virtual]
virtual void MQUALIFIER zeus::TPlane::calcNormalVector ( IVector3D rVecNormal ) const [inline, virtual]

Calculate the normal vector of the plane.

Parameters:
rVecNormal[OUT]: Normal vector.

Implements zeus::IPlane.

bool MQUALIFIER zeus::TPlane::calcParametersFromPoint ( const IVector3D rVecPoint,
Float &  fParameter1,
Float &  fParameter2 
) const [virtual]
void MQUALIFIER zeus::TPlane::calcPointFromParameters ( const Float &  fParameter1,
const Float &  fParameter2,
IVector3D rVecPoint 
) const [virtual]
bool MQUALIFIER zeus::TPlane::containsPoint ( const IVector3D rVecPoint ) const [virtual]
See also:
IPlane::containsPoint

Implements zeus::IPlane.

bool MQUALIFIER zeus::TPlane::containsStraightLine3D ( const IStraightLine3D rStraightLine3D ) const [virtual]
virtual const Float* MQUALIFIER zeus::TPlane::getCoordForm (  ) const [inline, virtual]

Read all coeffiecients the coordinate form ax + by + cz + d = 0 as an array of floats.

Returns:
: const pointer to float array of coefficients.

Implements zeus::IPlane.

virtual const Float& MQUALIFIER zeus::TPlane::getCoordFormA (  ) const [inline, virtual]

Read the coeffiecient a of the coordinate form ax + by + cz + d = 0.

Returns:
: a.

Implements zeus::IPlane.

virtual const Float& MQUALIFIER zeus::TPlane::getCoordFormB (  ) const [inline, virtual]

Read the coeffiecient b of the coordinate form ax + by + cz + d = 0.

Returns:
: b.

Implements zeus::IPlane.

virtual const Float& MQUALIFIER zeus::TPlane::getCoordFormC (  ) const [inline, virtual]

Read the coeffiecient c of the coordinate form ax + by + cz + d = 0.

Returns:
: c.

Implements zeus::IPlane.

virtual const Float& MQUALIFIER zeus::TPlane::getCoordFormD (  ) const [inline, virtual]

Read the coeffiecient d of the coordinate form ax + by + cz + d = 0.

Returns:
: d.

Implements zeus::IPlane.

virtual const IVector3D& MQUALIFIER zeus::TPlane::getDirectionVector1 (  ) const [inline, virtual]

Read direction vector 1 of the point direction form r = r0 + s * u + t * v

Returns:
: First direction vector.

Implements zeus::IPlane.

virtual const IVector3D& MQUALIFIER zeus::TPlane::getDirectionVector2 (  ) const [inline, virtual]

Read direction vector 2 of the point direction form r = r0 + s * u + t * v

Returns:
: Second direction vector.

Implements zeus::IPlane.

virtual const IVector3D& MQUALIFIER zeus::TPlane::getInitialVector (  ) const [inline, virtual]

Read the initial vector of the point direction form r = r0 + s * u + t * v

Returns:
: Initial vector.

Implements zeus::IPlane.

TVector3D zeus::TPlane::getNormalVector (  ) const [inline]

Calculate the normal vector by value.

static const TPlane& zeus::TPlane::getPlaneXY (  ) [inline, static]

Returns the XY plane.

static const TPlane& zeus::TPlane::getPlaneXZ (  ) [inline, static]

Returns the XZ plane.

static const TPlane& zeus::TPlane::getPlaneYZ (  ) [inline, static]

Returns the YZ plane.

virtual void MQUALIFIER zeus::TPlane::initAsPlaneXY (  ) [inline, virtual]

Initialize as xy-plane.

Implements zeus::IPlane.

virtual void MQUALIFIER zeus::TPlane::initAsPlaneXZ (  ) [inline, virtual]

Initialize as xz-plane.

Implements zeus::IPlane.

virtual void MQUALIFIER zeus::TPlane::initAsPlaneYZ (  ) [inline, virtual]

Initialize as yz-plane.

Implements zeus::IPlane.

virtual bool MQUALIFIER zeus::TPlane::isEqual ( const IPlane rPlane ) const [inline, virtual]

Equal to another plane?

Parameters:
rPlane[IN]: The other plane.
Returns:
: Equal.

Implements zeus::IPlane.

virtual bool MQUALIFIER zeus::TPlane::isParallel ( const IPlane rPlane ) const [inline, virtual]

Comparisons.

Parallel to another plane?

Parameters:
rPlane[IN]: The other plane.
Returns:
: Parallel.

Implements zeus::IPlane.

bool MQUALIFIER zeus::TPlane::isPlaneXY (  ) const [virtual]
See also:
IPlane::isPlaneXY

Implements zeus::IPlane.

bool MQUALIFIER zeus::TPlane::isPlaneXZ (  ) const [virtual]
See also:
IPlane::isPlaneXZ

Implements zeus::IPlane.

bool MQUALIFIER zeus::TPlane::isPlaneYZ (  ) const [virtual]
See also:
IPlane::isPlaneYZ

Implements zeus::IPlane.

virtual bool MQUALIFIER zeus::TPlane::isValid (  ) const [inline, virtual]

Checking the validity.

Returns:
: Valid.

Implements zeus::IPlane.

bool zeus::TPlane::operator!= ( const IPlane rPlane ) const [inline]

Inequal to another plane?

const TPlane & zeus::TPlane::operator= ( const IPlane rPlane )

Assignment of interface type object.

Parameters:
rPlane[IN]: Plane to be assigned to this plane.
Returns:
const reference to this plane after the assignment.
const TPlane & zeus::TPlane::operator= ( const TPlane rPlane )

Assignment of class type object.

Parameters:
rPlane[IN]: Plane to be assigned to this plane.
Returns:
const reference to this plane after the assignment.
bool zeus::TPlane::operator== ( const IPlane rPlane ) const

Equal to another plane?

Parameters:
rPlane[IN]: The other plane.
Return values:
true: planes are equal.
false,:planes are not equal
bool zeus::TPlane::operator|| ( const IPlane rPlane ) const

Parallel to another plane?

Parameters:
rPlane[IN]: The other plane.
Return values:
true: planes are parallel.
false: planes are not parallel
virtual void MQUALIFIER zeus::TPlane::setCoordFormA ( const Float &  a ) [inline, virtual]

Write the coeffiecient a of the coordinate form ax + by + cz + d = 0.

Parameters:
a[IN]: a.

Implements zeus::IPlane.

virtual void MQUALIFIER zeus::TPlane::setCoordFormB ( const Float &  b ) [inline, virtual]

Write the coeffiecient b of the coordinate form ax + by + cz + d = 0.

Parameters:
b[IN]: b.

Implements zeus::IPlane.

virtual void MQUALIFIER zeus::TPlane::setCoordFormC ( const Float &  c ) [inline, virtual]

Write the coeffiecient c of the coordinate form ax + by + cz + d = 0.

Parameters:
c[IN]: c.

Implements zeus::IPlane.

virtual void MQUALIFIER zeus::TPlane::setCoordFormD ( const Float &  d ) [inline, virtual]

Write the coeffiecient d of the coordinate form ax + by + cz + d = 0.

Parameters:
d[IN]: d.

Implements zeus::IPlane.

virtual void MQUALIFIER zeus::TPlane::setDirectionVector1 ( const IVector3D rVecDirection1 ) [inline, virtual]

Set direction vector 1 of the point direction form r = r0 + s * u + t * v

Parameters:
rVecDirection1[IN]: First direction vector.

Implements zeus::IPlane.

virtual void MQUALIFIER zeus::TPlane::setDirectionVector2 ( const IVector3D rVecDirection2 ) [inline, virtual]

Set direction vector 2 of the point direction form r = r0 + s * u + t * v

Parameters:
rVecDirection2[IN]: Second direction vector.

Implements zeus::IPlane.

virtual void MQUALIFIER zeus::TPlane::setInitialVector ( const IVector3D rVecInitial ) [inline, virtual]

Set the initial vector of the point direction form r = r0 + s * u + t * v

Parameters:
rVecInitial[IN]: Initial vector.

Implements zeus::IPlane.


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


Written by Benjamin Hadorn http://www.xatlantis.ch.
Last change made on Sun Jan 22 2012 15:32:26