The open source CFD toolbox
plane Class Reference

Geometric class that creates a 3D plane and can return the intersection point between a line and the plane. More...

Inheritance diagram for plane:
[legend]

## Classes

class  ray
A reference point and direction. More...

## Public Types

enum  side { FRONT = 1, BACK = -1, NORMAL = 1, FLIP = -1 }
Side of the plane. More...

## Public Member Functions

plane ()
Construct zero-initialised. More...

plane (const vector &normalVector)
Construct from normal vector through the origin. More...

plane (const point &originPoint, const vector &normalVector, const bool doNormalise=true)
Construct from normal vector and point in plane. More...

plane (const point &point1, const point &point2, const point &point3)
Construct from three points in plane. More...

plane (const scalarList &coeffs)

plane (const FixedList< scalar, 4 > &coeffs)

plane (const dictionary &dict)
Construct from dictionary. More...

plane (Istream &is)
Construct from Istream. Assumes (normal) (origin) input. More...

const vectornormal () const
The plane unit normal. More...

const pointorigin () const
The plane base point. More...

pointorigin ()
The plane base point, for modification. More...

const pointrefPoint () const
The plane base point (same as origin) More...

void flip ()
Flip the plane by reversing the normal. More...

FixedList< scalar, 4 > planeCoeffs () const

point nearestPoint (const point &p) const
Return nearest point in the plane for the given point. More...

scalar distance (const point &p) const
Return distance (magnitude) from the given point to the plane. More...

scalar signedDistance (const point &p) const
Return distance from the given point to the plane. More...

scalar normalIntersect (const point &pnt0, const vector &dir) const

scalar normalIntersect (const ray &r) const
Return cut coefficient for plane and ray. More...

template<class Point , class PointRef >
scalar lineIntersect (const line< Point, PointRef > &l) const
Return the cutting point between the plane and. More...

ray planeIntersect (const plane &plane2) const
Return the cutting line between this plane and another. More...

point planePlaneIntersect (const plane &plane2, const plane &plane3) const
Return the cutting point between this plane and two other planes. More...

point somePointInPlane (const scalar dist=1e-3) const
Return a point somewhere on the plane, a distance from the base. More...

side sideOfPlane (const point &p) const
Return the side of the plane that the point is on. More...

int sign (const point &p, const scalar tol=SMALL) const
The sign for the side of the plane that the point is on. More...

point mirror (const point &p) const
Mirror the supplied point in the plane. Return the mirrored point. More...

void writeDict (Ostream &os) const
Write to dictionary. More...

## Detailed Description

Geometric class that creates a 3D plane and can return the intersection point between a line and the plane.

Construction from a dictionary is driven by the planeType

For planeType as pointAndNormal :

pointAndNormalDict
{
point   <point>;   // or basePoint
normal  <vector>;  // or normalVector
}


For planeType as embeddedPoints :

embeddedPointsDict
{
point1  <point>;
point2  <point>;
point3  <point>;
}


For planeType with planeEquation coefficients $$ax + by + cz + d = 0$$ :

planeEquationDict
{
a   <scalar>;
b   <scalar>;
c   <scalar>;
d   <scalar>;
}

Source files

Definition at line 89 of file plane.H.

## ◆ side

 enum side

Side of the plane.

Enumerator
FRONT

The front (positive normal) side of the plane.

BACK

The back (negative normal) side of the plane.

NORMAL

Same as FRONT.

FLIP

Same as BACK.

Definition at line 94 of file plane.H.

## ◆ plane() [1/8]

 plane ( )
inline

Construct zero-initialised.

Definition at line 30 of file planeI.H.

## ◆ plane() [2/8]

 plane ( const vector & normalVector )
explicit

Construct from normal vector through the origin.

The vector is normalised to a unit vector on input.

Definition at line 121 of file plane.C.

References FUNCTION_NAME.

## ◆ plane() [3/8]

 plane ( const point & originPoint, const vector & normalVector, const bool doNormalise = true )

Construct from normal vector and point in plane.

By default, the vector is normalised to a unit vector on input.

Definition at line 131 of file plane.C.

References FUNCTION_NAME.

## ◆ plane() [4/8]

 plane ( const point & point1, const point & point2, const point & point3 )

Construct from three points in plane.

Definition at line 170 of file plane.C.

## ◆ plane() [5/8]

 plane ( const scalarList & coeffs )
explicit

Construct from coefficients for the plane equation: ax + by + cz + d = 0

Definition at line 144 of file plane.C.

References FUNCTION_NAME.

## ◆ plane() [6/8]

 plane ( const FixedList< scalar, 4 > & coeffs )
explicit

Construct from coefficients for the plane equation: ax + by + cz + d = 0

Definition at line 157 of file plane.C.

References FUNCTION_NAME.

## ◆ plane() [7/8]

 plane ( const dictionary & dict )
explicit

Construct from dictionary.

Definition at line 176 of file plane.C.

Here is the call graph for this function:

## ◆ plane() [8/8]

 plane ( Istream & is )
explicit

Construct from Istream. Assumes (normal) (origin) input.

Definition at line 228 of file plane.C.

References FUNCTION_NAME.

## ◆ normal()

 const Foam::vector & normal ( ) const
inline

The plane unit normal.

Definition at line 39 of file planeI.H.

Here is the caller graph for this function:

## ◆ origin() [1/2]

 const Foam::point & origin ( ) const
inline

The plane base point.

Definition at line 45 of file planeI.H.

Here is the caller graph for this function:

## ◆ origin() [2/2]

 Foam::point & origin ( )
inline

The plane base point, for modification.

Definition at line 51 of file planeI.H.

## ◆ refPoint()

 const Foam::point & refPoint ( ) const
inline

The plane base point (same as origin)

Definition at line 57 of file planeI.H.

## ◆ flip()

 void flip ( )
inline

Flip the plane by reversing the normal.

Definition at line 63 of file planeI.H.

## ◆ planeCoeffs()

 Foam::FixedList< Foam::scalar, 4 > planeCoeffs ( ) const

Return coefficients for the plane equation: ax + by + cz + d = 0

Definition at line 239 of file plane.C.

References Foam::mag().

Referenced by plane::planePlaneIntersect().

Here is the call graph for this function:
Here is the caller graph for this function:

## ◆ nearestPoint()

 Foam::point nearestPoint ( const point & p ) const
inline

Return nearest point in the plane for the given point.

Definition at line 69 of file planeI.H.

References p.

## ◆ distance()

 Foam::scalar distance ( const point & p ) const
inline

Return distance (magnitude) from the given point to the plane.

Definition at line 75 of file planeI.H.

References Foam::mag(), and p.

Referenced by geomCellLooper::cut().

Here is the call graph for this function:
Here is the caller graph for this function:

## ◆ signedDistance()

 Foam::scalar signedDistance ( const point & p ) const
inline

Return distance from the given point to the plane.

Definition at line 81 of file planeI.H.

References p.

## ◆ normalIntersect() [1/2]

 Foam::scalar normalIntersect ( const point & pnt0, const vector & dir ) const

Return cut coefficient for plane and line defined by origin and direction

Definition at line 290 of file plane.C.

References Foam::stabilise().

Referenced by plane::lineIntersect(), and plane::normalIntersect().

Here is the call graph for this function:
Here is the caller graph for this function:

## ◆ normalIntersect() [2/2]

 scalar normalIntersect ( const ray & r ) const
inline

Return cut coefficient for plane and ray.

Definition at line 249 of file plane.H.

References plane::ray::dir(), plane::normalIntersect(), and plane::ray::refPoint().

Here is the call graph for this function:

## ◆ lineIntersect()

 scalar lineIntersect ( const line< Point, PointRef > & l ) const
inline

Return the cutting point between the plane and.

a line passing through the supplied points

Definition at line 257 of file plane.H.

Here is the call graph for this function:
Here is the caller graph for this function:

## ◆ planeIntersect()

 Foam::plane::ray planeIntersect ( const plane & plane2 ) const

Return the cutting line between this plane and another.

Returned as direction vector and point line goes through.

Definition at line 301 of file plane.C.

Referenced by searchableSurfacesQueries::findNearest().

Here is the call graph for this function:
Here is the caller graph for this function:

## ◆ planePlaneIntersect()

 Foam::point planePlaneIntersect ( const plane & plane2, const plane & plane3 ) const

Return the cutting point between this plane and two other planes.

Definition at line 370 of file plane.C.

References Foam::constant::physicoChemical::b, Foam::inv(), and plane::planeCoeffs().

Here is the call graph for this function:

## ◆ somePointInPlane()

 Foam::point somePointInPlane ( const scalar dist = 1e-3 ) const

Return a point somewhere on the plane, a distance from the base.

Definition at line 392 of file plane.C.

References Foam::mag(), p, and VectorSpace< Vector< Cmpt >, Cmpt, 3 >::uniform().

Here is the call graph for this function:

## ◆ sideOfPlane()

 Foam::plane::side sideOfPlane ( const point & p ) const
inline

Return the side of the plane that the point is on.

If the point is on the plane, then returns NORMAL.

Definition at line 87 of file planeI.H.

References p.

Referenced by boundBox::intersects().

Here is the caller graph for this function:

## ◆ sign()

 int sign ( const point & p, const scalar tol = SMALL ) const
inline

The sign for the side of the plane that the point is on.

Uses the supplied tolerance for rounding around zero.

Returns
• 0: on plane
• +1: front-side
• -1: back-side

Definition at line 95 of file planeI.H.

References p.

## ◆ mirror()

 Foam::point mirror ( const point & p ) const

Mirror the supplied point in the plane. Return the mirrored point.

Definition at line 420 of file plane.C.

References Foam::distance(), and p.

Here is the call graph for this function:

## ◆ writeDict()

 void writeDict ( Ostream & os ) const

Write to dictionary.

Definition at line 435 of file plane.C.

References Ostream::beginBlock(), Ostream::endBlock(), and Ostream::writeEntry().

Here is the call graph for this function:

The documentation for this class was generated from the following files:
• src/OpenFOAM/meshes/primitiveShapes/plane/plane.H
• src/OpenFOAM/meshes/primitiveShapes/plane/plane.C
• src/OpenFOAM/meshes/primitiveShapes/plane/planeI.H