Programming Reference for VirtualLab Fusion  2025.1
Loading...
Searching...
No Matches
OrientedPlane Class Reference

This class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for objects that describe planes with a right-hand orientation. Data are stored in parametrized form, i.e. as one point and two vectors. The third base vector gives the orientated normal vector. More...

Inheritance diagram for OrientedPlane:

Public Member Functions

VectorD CalculateGradient ()
 public support method to calculate the x,y - gradient of the given plane
 
override object Clone ()
 Clones the current object.
 
override bool Equals (object otherObject, EqualityIntent equalityIntent)
 Determines whether the specified Object is equal to this instance.
 
void ImplicitRepresentation (out double A, out double B, out double C, out double D, bool hessNormalForm=false)
 Gives the implicite representation of the plane Ax + By + Cz = D. As the normal vector (BaseVectors.ZAxis) is already normalized (|BaseVectors.ZAxis| = 1), the resulting parameters are equal to those of HESS's normal form, except for the sign.
 
 OrientedPlane (CartesianCoordinateSystem coordinateSystemToGetPlaneFrom, CoordinatePlane plane)
 Constructor that gets a CartesianCoordinateSystem from which one plane is extracted.
 
 OrientedPlane (CoordinateSystemBaseVectors baseVectors, Position pos)
 Constructor with CoordinateSystemBaseVectors and a separate Position which define the plane.
 
 OrientedPlane (OrientedPlane orientedPLane)
 Copy constructor.
 
 OrientedPlane (Position point1, Position point2, Position point3)
 Construct an OrientedPlane from three non-collinear points defined in same (reference) coordinate system The reference coordinate system is defined via point1.ReferenceCoordinateSystem and point2.ReferenceCoordinateSystem and point3.ReferenceCoordinateSystem, respectively. The first point will be the origin.
 
 OrientedPlane (Position pointInPlane, Vector3D normalVector)
 Constructor to create the plane from one point and the normal vector of the plane. IMPORTANT: The parameters DO NOT define certain directions of the base vectors! These will be somewhat arbitrary. So, please use this constructor only if the zeta-Rotation of this plane doesn't matter!
 
 OrientedPlane (Position pointInPlane, Vector3D xAxis, Vector3D yAxis)
 Constructor to create the plane from one point and two vectors in the plane.
 
void SetPositioningReference (IProvidesPositioningReferences referenceProvider, string key)
 Method to set the PositioningReferenceProvider and the key for the coordinate system that serves as positioning reference.
 

Properties

CoordinateSystemBaseVectors BaseVectors [get, set]
 The two vectors that span the plane (XAxis and YAxis), and the orientated normal vector (ZAxis).
 
CartesianCoordinateSystem GetPositioningReference [get]
 Property to get the coordinate system that serves as reference for this object.
 
bool IsDefinedAbsolutely [get]
 Are the plane position and orientation defined absolutely?
 
Vector3D NormalVector [get]
 Get the normalized normal vector of the plane.
 
CartesianCoordinateSystem PlaneAsCoordinateSystem [get]
 Get this plane as a coordinate system (x-y-plane, with normal vector z)
 
Position Position [get, set]
 One point that lies in the plane.
 

Detailed Description

This class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for objects that describe planes with a right-hand orientation. Data are stored in parametrized form, i.e. as one point and two vectors. The third base vector gives the orientated normal vector.

Constructor & Destructor Documentation

◆ OrientedPlane() [1/6]

Constructor with CoordinateSystemBaseVectors and a separate Position which define the plane.

Parameters
baseVectorsThe two vectors that span the plane (XAxis and YAxis), and the orientated normal vector (ZAxis).
posOne point that lies in the plane.

◆ OrientedPlane() [2/6]

OrientedPlane ( CartesianCoordinateSystem  coordinateSystemToGetPlaneFrom,
CoordinatePlane  plane 
)

Constructor that gets a CartesianCoordinateSystem from which one plane is extracted.

Parameters
coordinateSystemToGetPlaneFromCartesianCoordinateSystem to extract the plane from.
planeWhich plane shall be extracted?

◆ OrientedPlane() [3/6]

OrientedPlane ( Position  point1,
Position  point2,
Position  point3 
)

Construct an OrientedPlane from three non-collinear points defined in same (reference) coordinate system The reference coordinate system is defined via point1.ReferenceCoordinateSystem and point2.ReferenceCoordinateSystem and point3.ReferenceCoordinateSystem, respectively. The first point will be the origin.

Parameters
point1Point #1
point2Point #2
point3Point #2

◆ OrientedPlane() [4/6]

OrientedPlane ( OrientedPlane  orientedPLane)

Copy constructor.

Parameters
orientedPLaneOriented plane to be copied.

◆ OrientedPlane() [5/6]

OrientedPlane ( Position  pointInPlane,
Vector3D  xAxis,
Vector3D  yAxis 
)

Constructor to create the plane from one point and two vectors in the plane.

Parameters
pointInPlaneThe point in the plane.
xAxisx-Axis of the coordinate system whose x-y-plane is the OrientedPlane.
yAxisy-Axis of the coordinate system whose x-y-plane is the OrientedPlane.

◆ OrientedPlane() [6/6]

OrientedPlane ( Position  pointInPlane,
Vector3D  normalVector 
)

Constructor to create the plane from one point and the normal vector of the plane. IMPORTANT: The parameters DO NOT define certain directions of the base vectors! These will be somewhat arbitrary. So, please use this constructor only if the zeta-Rotation of this plane doesn't matter!

Parameters
pointInPlaneThe point in the plane.
normalVectorThe normal vector of the plane, relative to the reference CS of the parameter pointInPlane.

Member Function Documentation

◆ CalculateGradient()

VectorD CalculateGradient ( )

public support method to calculate the x,y - gradient of the given plane

Returns
the x,y - gradient

◆ Clone()

override object Clone ( )

Clones the current object.

Returns
Deep copy of this object.

◆ Equals()

override bool Equals ( object  otherObject,
EqualityIntent  equalityIntent 
)

Determines whether the specified Object is equal to this instance.

Parameters
otherObjectThe Object to compare with this instance.
equalityIntentDefines what kind of equality you want to check when comparing two objects, for example all values or just physical equality.
Returns
true if the specified Object is equal to this instance; otherwise, false.

◆ ImplicitRepresentation()

void ImplicitRepresentation ( out double  A,
out double  B,
out double  C,
out double  D,
bool  hessNormalForm = false 
)

Gives the implicite representation of the plane Ax + By + Cz = D. As the normal vector (BaseVectors.ZAxis) is already normalized (|BaseVectors.ZAxis| = 1), the resulting parameters are equal to those of HESS's normal form, except for the sign.

Parameters
AReturns the parameter A.
BReturns the parameter B.
CReturns the parameter C.
DReturns the parameter D.
hessNormalFormIf set to true, the signs are corrected so that the parameters give the HESS's normal form. Optional parameter, false by default.

◆ SetPositioningReference()

void SetPositioningReference ( IProvidesPositioningReferences  referenceProvider,
string  key 
)

Method to set the PositioningReferenceProvider and the key for the coordinate system that serves as positioning reference.

Parameters
referenceProviderObject which provides the coordinate system that serves as reference for this position.
keyKey for the coordinate system (contained by PositioningReferenceProvider) which shall serve as reference for this position