Table of Contents

Class OrientedPlane

Namespace
VirtualLabAPI.Core.Numerics
Assembly
VirtualLabAPI.dll

Class describing 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.

public class OrientedPlane : ObjectBase, IEquatable<IObjectBase>, ICloneable
Inheritance
ObjectBase
OrientedPlane
Implements
IEquatable<IObjectBase>
Inherited Members

Constructors

OrientedPlane(CartesianCoordinateSystem, CoordinatePlane)

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

public OrientedPlane(CartesianCoordinateSystem coordinateSystemToGetPlaneFrom, CoordinatePlane plane)

Parameters

coordinateSystemToGetPlaneFrom CartesianCoordinateSystem

CartesianCoordinateSystem to extract the plane from.

plane CoordinatePlane

Which plane shall be extracted?

OrientedPlane(CoordinateSystemBaseVectors, Position)

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

public OrientedPlane(CoordinateSystemBaseVectors baseVectors, Position pos)

Parameters

baseVectors CoordinateSystemBaseVectors

The two vectors that span the plane (XAxis and YAxis), and the orientated normal vector (ZAxis).

pos Position

One point that lies in the plane.

OrientedPlane(OrientedPlane)

Copy constructor.

public OrientedPlane(OrientedPlane orientedPLane)

Parameters

orientedPLane OrientedPlane

Oriented plane to be copied.

OrientedPlane(Position, Position, Position)

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.

public OrientedPlane(Position point1, Position point2, Position point3)

Parameters

point1 Position

Point #1

point2 Position

Point #2

point3 Position

Point #2

OrientedPlane(Position, Vector3D)

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!

public OrientedPlane(Position pointInPlane, Vector3D normalVector)

Parameters

pointInPlane Position

The point in the plane.

normalVector Vector3D

The normal vector of the plane, relative to the reference CS of the parameter pointInPlane.

OrientedPlane(Position, Vector3D, Vector3D)

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

public OrientedPlane(Position pointInPlane, Vector3D xAxis, Vector3D yAxis)

Parameters

pointInPlane Position

The point in the plane.

xAxis Vector3D

x-Axis of the coordinate system whose x-y-plane is the OrientedPlane.

yAxis Vector3D

y-Axis of the coordinate system whose x-y-plane is the OrientedPlane.

Properties

BaseVectors

The two vectors that span the plane (XAxis and YAxis), and the orientated normal vector (ZAxis).

public CoordinateSystemBaseVectors BaseVectors { get; set; }

Property Value

CoordinateSystemBaseVectors

GetPositioningReference

Property to get the coordinate system that serves as reference for this object

public CartesianCoordinateSystem GetPositioningReference { get; }

Property Value

CartesianCoordinateSystem

IsDefinedAbsolutely

Are the plane position and orientation defined absolutely?

public bool IsDefinedAbsolutely { get; }

Property Value

bool

NormalVector

Get the normalized normal vector of the plane

public Vector3D NormalVector { get; }

Property Value

Vector3D

PlaneAsCoordinateSystem

Get this plane as a coordinate system (x-y-plane, with normal vector z)

public CartesianCoordinateSystem PlaneAsCoordinateSystem { get; }

Property Value

CartesianCoordinateSystem

Position

One point that lies in the plane.

public Position Position { get; set; }

Property Value

Position

Methods

Clone()

Clones the current object.

public override object Clone()

Returns

object

Deep copy of this object.

Equals(object, EqualityIntent)

Determines whether the specified object is equal to this instance.

public override bool Equals(object otherObject, EqualityIntent equalityIntent)

Parameters

otherObject object

The object to compare with this instance.

equalityIntent EqualityIntent

Defines what kind of equality you want to check when comparing two objects, for example all values or just physical equality.

Returns

bool

true if the specified object is equal to this instance; otherwise, false.

ImplicitRepresentation(out double, out double, out double, out double, bool)

Gives the implicit 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

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

Parameters

A double

Returns the parameter A.

B double

Returns the parameter B.

C double

Returns the parameter C.

D double

Returns the parameter D.

hessNormalForm bool

If set to true, the signs are corrected so that the parameters give the HESS's normal form. Optional parameter, false by default.

SetPositioningReference(IProvidesPositioningReferences, string)

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

public void SetPositioningReference(IProvidesPositioningReferences referenceProvider, string key)

Parameters

referenceProvider IProvidesPositioningReferences

Object which provides the coordinate system that serves as reference for this position.

key string

Key for the coordinate system (contained by PositioningReferenceProvider) which shall serve as reference for this position