Geometric class that creates a 2D plane and can return the intersection point between a line and the plane. More...
Classes | |
class | ray |
A direction and a reference point. More... | |
Public Types | |
enum | side { NORMAL, FLIP } |
Side of the plane. More... | |
Public Member Functions | |
plane (const vector &normalVector) | |
Construct from normal vector through the origin. More... | |
plane (const point &basePoint, const vector &normalVector) | |
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 &C) | |
Construct from coefficients for the. More... | |
plane (const dictionary &planeDict) | |
Construct from dictionary. More... | |
plane (Istream &is) | |
Construct from Istream. Assumes the base + normal notation. More... | |
const vector & | normal () const |
Return plane normal. More... | |
const point & | refPoint () const |
Return or return plane base point. More... | |
FixedList< scalar, 4 > | planeCoeffs () const |
Return coefficients for the. More... | |
point | aPoint () const |
Return a point on the plane. More... | |
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 from the given point to the plane. More... | |
scalar | normalIntersect (const point &pnt0, const vector &dir) const |
Return cut coefficient for plane and line defined by. More... | |
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 &) const |
Return the cutting line between this plane and another. More... | |
point | planePlaneIntersect (const plane &, const plane &) const |
Return the cutting point between this plane and two other planes. More... | |
side | sideOfPlane (const point &p) const |
Return 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 &) const |
Write to dictionary. More... | |
Friends | |
bool | operator== (const plane &, const plane &) |
bool | operator!= (const plane &, const plane &) |
Ostream & | operator<< (Ostream &, const plane &) |
Write plane properties. More... | |
Geometric class that creates a 2D plane and can return the intersection point between a line and the plane.
Construct from normal vector through the origin.
Definition at line 97 of file plane.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and Foam::mag().
Referenced by plane::ray::dir(), and plane::plane().
Construct from normal vector and point in plane.
Definition at line 117 of file plane.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and Foam::mag().
|
explicit |
Construct from coefficients for the.
plane equation: ax + by + cz + d = 0
Definition at line 137 of file plane.C.
References plane::plane().
|
explicit |
Construct from dictionary.
Definition at line 154 of file plane.C.
References Foam::abort(), Foam::FatalIOError, FatalIOErrorInFunction, dictionary::found(), dictionary::lookup(), Foam::mag(), Foam::nl, and dictionary::subDict().
Construct from Istream. Assumes the base + normal notation.
Definition at line 211 of file plane.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and Foam::mag().
const Foam::vector & normal | ( | ) | const |
Return plane normal.
Definition at line 233 of file plane.C.
Referenced by geomCellLooper::cut(), plane::ray::dir(), plane::mirror(), NamedEnum< compressibleField, 8 >::names(), plane::planeIntersect(), and cuttingPlane::reCut().
const Foam::point & refPoint | ( | ) | const |
Return or return plane base point.
Definition at line 239 of file plane.C.
Referenced by plane::aPoint(), NamedEnum< compressibleField, 8 >::names(), plane::planeIntersect(), cuttingPlane::reCut(), and searchablePlane::size().
Foam::FixedList< Foam::scalar, 4 > planeCoeffs | ( | ) | const |
Return coefficients for the.
plane equation: ax + by + cz + d = 0
Definition at line 245 of file plane.C.
References Foam::mag(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
Referenced by plane::aPoint(), plane::ray::dir(), and plane::planePlaneIntersect().
Foam::point aPoint | ( | ) | const |
Return a point on the plane.
Definition at line 292 of file plane.C.
References Foam::e, Foam::mag(), plane::planeCoeffs(), plane::refPoint(), x, Vector< Cmpt >::x(), y, Vector< Cmpt >::y(), and Vector< Cmpt >::z().
Referenced by plane::ray::dir(), and triSurface::triSurfInstance().
Foam::point nearestPoint | ( | const point & | p | ) | const |
Return nearest point in the plane for the given point.
Definition at line 359 of file plane.C.
Referenced by plane::ray::dir(), and plane::mirror().
Foam::scalar distance | ( | const point & | p | ) | const |
Return distance from the given point to the plane.
Definition at line 365 of file plane.C.
References Foam::mag(), and plane::normalIntersect().
Referenced by geomCellLooper::cut(), plane::ray::dir(), and plane::mirror().
Return cut coefficient for plane and line defined by.
origin and direction
Definition at line 372 of file plane.C.
References Foam::mag().
Referenced by plane::ray::dir(), plane::distance(), plane::lineIntersect(), and plane::normalIntersect().
|
inline |
Return cut coefficient for plane and ray.
Definition at line 178 of file plane.H.
References plane::ray::dir(), plane::normalIntersect(), and plane::ray::refPoint().
|
inline |
Return the cutting point between the plane and.
a line passing through the supplied points
Definition at line 186 of file plane.H.
References plane::mirror(), plane::normalIntersect(), plane::operator!=, plane::operator<<, plane::operator==, plane::planeIntersect(), plane::planePlaneIntersect(), plane::sideOfPlane(), line< Point, PointRef >::start(), line< Point, PointRef >::vec(), and plane::writeDict().
Referenced by slidingInterface::modifyMotionPoints(), and Foam::selectCutEdges().
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 384 of file plane.C.
References Foam::mag(), plane::normal(), plane::planePlaneIntersect(), plane::refPoint(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
Referenced by searchableSurfacesQueries::findNearest(), plane::lineIntersect(), and listPlusEqOp< T >::operator()().
Foam::point planePlaneIntersect | ( | const plane & | plane2, |
const plane & | plane3 | ||
) | const |
Return the cutting point between this plane and two other planes.
Definition at line 452 of file plane.C.
References Foam::constant::physicoChemical::b, Foam::inv(), and plane::planeCoeffs().
Referenced by plane::lineIntersect(), listPlusEqOp< T >::operator()(), and plane::planeIntersect().
Foam::plane::side sideOfPlane | ( | const point & | p | ) | const |
Return the side of the plane that the point is on.
If the point is on the plane, then returns NORMAL.
Definition at line 474 of file plane.C.
References plane::FLIP, and plane::NORMAL.
Referenced by plane::lineIntersect().
Foam::point mirror | ( | const point & | p | ) | const |
Mirror the supplied point in the plane. Return the mirrored point.
Definition at line 482 of file plane.C.
References plane::distance(), plane::nearestPoint(), and plane::normal().
Referenced by plane::lineIntersect().
void writeDict | ( | Ostream & | os | ) | const |
Write to dictionary.
Definition at line 497 of file plane.C.
References token::BEGIN_BLOCK, Foam::decrIndent(), token::END_BLOCK, Foam::endl(), Foam::incrIndent(), Foam::indent(), Foam::nl, and Foam::writeEntry().
Referenced by plane::lineIntersect().
Referenced by plane::lineIntersect().
Referenced by plane::lineIntersect().
Write plane properties.
Referenced by plane::lineIntersect().