Geometric class that creates a 3D plane and can return the intersection point between a line and the plane. More...
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 zeroinitialised. 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 UList< scalar > &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 vector &  normal () const noexcept 
The plane unit normal. More...  
const point &  origin () const noexcept 
The plane base point. More...  
point &  origin () noexcept 
The plane base point, for modification. 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=1e3) 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...  
const point &  refPoint () const noexcept 
The plane base point (same as origin) More...  
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
. If planeType
is missing, pointAndNormal
is used and the pointAndNormalDict
becomes optional.
For planeType
as pointAndNormal
:
pointAndNormalDict { point <point>; // basePoint (1612 and earlier) normal <vector>; // normalVector (1612 and earlier) }
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>; }
enum side 
Construct from normal vector through the origin.
The vector is normalised to a unit vector on input.
Definition at line 122 of file plane.C.
References FUNCTION_NAME.
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.
Construct from three points in plane.
Definition at line 171 of file plane.C.
References b, and FUNCTION_NAME.
Construct from coefficients for the plane equation: ax + by + cz + d = 0
Definition at line 145 of file plane.C.
References FUNCTION_NAME.
Construct from coefficients for the plane equation: ax + by + cz + d = 0
Definition at line 158 of file plane.C.
References FUNCTION_NAME.

explicit 
Construct from dictionary.
Definition at line 177 of file plane.C.
References Foam::abort(), dict, Foam::FatalIOError, FatalIOErrorInFunction, dictionary::get(), dictionary::getCompat(), Foam::nl, dictionary::optionalSubDict(), dictionary::readIfPresent(), and dictionary::subDict().
Construct from Istream. Assumes (normal) (origin) input.
Definition at line 238 of file plane.C.
References FUNCTION_NAME.

inlinenoexcept 
The plane unit normal.
Definition at line 39 of file planeI.H.
Referenced by geomCellLooper::cut(), Foam::operator<<(), Foam::operator==(), plane::planeIntersect(), sampledPlane::print(), sampledPlane::sampledPlane(), and searchableDisk::searchableDisk().

inlinenoexcept 
The plane base point.
Definition at line 45 of file planeI.H.
Referenced by Foam::operator<(), Foam::operator<<(), Foam::operator==(), plane::planeIntersect(), sampledPlane::print(), sampledPlane::sampledPlane(), and searchableDisk::searchableDisk().

inlinenoexcept 

inline 
Foam::FixedList< Foam::scalar, 4 > planeCoeffs  (  )  const 
Return coefficients for the plane equation: ax + by + cz + d = 0
Definition at line 249 of file plane.C.
References Foam::mag().
Referenced by plane::planePlaneIntersect().

inline 

inline 
Return distance (magnitude) from the given point to the plane.
Definition at line 69 of file planeI.H.
References Foam::mag(), and p.
Referenced by geomCellLooper::cut().

inline 
Return cut coefficient for plane and line defined by origin and direction
Definition at line 299 of file plane.C.
References Foam::stabilise().
Referenced by plane::lineIntersect(), and plane::normalIntersect().

inline 
Return cut coefficient for plane and ray.
Definition at line 251 of file plane.H.
References plane::normalIntersect().
Return the cutting point between the plane and.
a line passing through the supplied points
Definition at line 259 of file plane.H.
References plane::normalIntersect(), line< Point, PointRef >::start(), and line< Point, PointRef >::vec().
Referenced by slidingInterface::modifyMotionPoints(), cuttingPlane::performCut(), and surfaceFeatures::subsetPlane().
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 311 of file plane.C.
References Foam::mag(), plane::normal(), plane::origin(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
Referenced by searchableSurfacesQueries::findNearest().
Foam::point planePlaneIntersect  (  const plane &  plane2, 
const plane &  plane3  
)  const 
Return the cutting point between this plane and two other planes.
Definition at line 379 of file plane.C.
References b, Foam::inv(), and plane::planeCoeffs().
Foam::point somePointInPlane  (  const scalar  dist = 1e3  )  const 
Return a point somewhere on the plane, a distance from the base.
Definition at line 402 of file plane.C.
References Foam::mag(), and p.

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 81 of file planeI.H.
References p.
Referenced by boundBox::intersects().

inline 
Foam::point mirror  (  const point &  p  )  const 
Mirror the supplied point in the plane. Return the mirrored point.
Definition at line 430 of file plane.C.
References Foam::distance(), and p.
void writeDict  (  Ostream &  os  )  const 
Write to dictionary.
Definition at line 445 of file plane.C.
References Ostream::beginBlock(), Ostream::endBlock(), os(), and Ostream::writeEntry().

inlinenoexcept 