# PhasicFlow: plane Class Reference
PhasicFlow is an open-source parallel DEM (discrete element method) package for simulating granular flow. It is developed in C++ and can be exectued on both GPU (like CUDA) and CPU.

plane Class Reference
Inheritance diagram for plane:
[legend]
Collaboration diagram for plane:
[legend]

## Public Member Functions

INLINE_FUNCTION_HD | plane ()
| plane (const realx3 &p1, const realx3 &p2, const realx3 &p3, const realx3 &p4)
INLINE_FUNCTION_HD | plane (const plane &)=default
INLINE_FUNCTION_HD | plane (plane &&)=default
INLINE_FUNCTION_HD plane & | operator= (const plane &)=default
INLINE_FUNCTION_HD plane & | operator= (plane &&)=default
INLINE_FUNCTION_HD | ~plane ()=default
const INLINE_FUNCTION_HD realx3 & | p1 () const
const INLINE_FUNCTION_HD realx3 & | p2 () const
const INLINE_FUNCTION_HD realx3 & | p3 () const
const INLINE_FUNCTION_HD realx3 & | p4 () const
INLINE_FUNCTION_HD line | line1 () const
INLINE_FUNCTION_HD line | line2 () const
INLINE_FUNCTION_HD line | line3 () const
INLINE_FUNCTION_HD line | line4 () const
plane | parallelPlane (real distance) const
infinitePlane | infPlane () const
Public Member Functions inherited from infinitePlane
| TypeInfoNV ("infinitePlane")
INLINE_FUNCTION_HD | infinitePlane ()
| Default. More...
INLINE_FUNCTION_HD | infinitePlane (const realx3 &normal, const real &d)
| From components. More...
INLINE_FUNCTION_HD | infinitePlane (const realx3 &normal, const realx3 &p)
| infinitePlane (const realx3 &p1, const realx3 &p2, const realx3 &p3)
| From 3 points. More...
FUNCTION_HD | infinitePlane (const infinitePlane &)=default
FUNCTION_HD | infinitePlane (infinitePlane &&)=default
FUNCTION_HD infinitePlane & | operator= (const infinitePlane &)=default
FUNCTION_HD infinitePlane & | operator= (infinitePlane &&)=default
| ~infinitePlane ()=default
INLINE_FUNCTION_HD real | pointFromPlane (const realx3 &p) const
INLINE_FUNCTION_HD bool | pointInPositiveSide (const realx3 &p) const
INLINE_FUNCTION_HD bool | pointInNegativeSide (const realx3 &p) const
INLINE_FUNCTION_HD bool | inPositiveDistance (const realx3 &p, real dist) const
INLINE_FUNCTION_HD bool | inNegativeDistance (const realx3 &p, real dist) const
INLINE_FUNCTION_HD bool | pointOnPlane (const realx3 &p) const
INLINE_FUNCTION_HD realx3 | projectPoint (const realx3 &p) const
INLINE_FUNCTION_HD bool | parallel (const infinitePlane &pln) const
INLINE_FUNCTION_HD bool | parallelTouch (const infinitePlane &pln) const
const INLINE_FUNCTION_HD auto & | normal () const
const INLINE_FUNCTION_HD auto & | d () const
FUNCTION_H bool | write (iOstream &os) const
bool | read (iIstream &is)

## Static Public Member Functions

static bool | validPlane4 (const realx3 &p1, const realx3 &p2, const realx3 &p3, const realx3 &p4)
Static Public Member Functions inherited from infinitePlane
static bool | validPlane3 (const realx3 &p1, const realx3 &p2, const realx3 &p3)

## Private Attributes

realx3 | p1_
| First point. More...
realx3 | p2_
| Second point. More...
realx3 | p3_
| Third point. More...
realx3 | p4_
| Fourth point. More...

## Additional Inherited Members

Protected Attributes inherited from infinitePlane
realx3 | normal_ {1,0,0}
| normal vector More...
real | d_ = 0
| distance value More...

## Detailed Description

Definition at line 30 of file plane.hpp.

## Constructor & Destructor Documentation

## plane() [1/4]

INLINE_FUNCTION_HD plane | ( |  | ) |

inline

Definition at line 51 of file plane.hpp.

Referenced by plane::parallelPlane().

Here is the caller graph for this function:

## plane() [2/4]

plane | ( | const realx3 & | p1,
|  | const realx3 & | p2,
|  | const realx3 & | p3,
|  | const realx3 & | p4
| ) |  |

Definition at line 24 of file plane.cpp.

References pFlow::endl(), fatalErrorInFunction, and fatalExit.

Here is the call graph for this function:

## plane() [3/4]

INLINE_FUNCTION_HD plane | ( | const plane & |  | ) |

default

## plane() [4/4]

INLINE_FUNCTION_HD plane | ( | plane && |  | ) |

default

## ~plane()

INLINE_FUNCTION_HD ~plane | ( |  | ) |

default

## Member Function Documentation

## operator=() [1/2]

INLINE_FUNCTION_HD plane& operator= | ( | const plane & |  | ) |

default

## operator=() [2/2]

INLINE_FUNCTION_HD plane& operator= | ( | plane && |  | ) |

default

## p1()

const INLINE_FUNCTION_HD realx3& p1 | ( |  | ) | const

inline

Definition at line 75 of file plane.hpp.

References plane::p1_.

## p2()

const INLINE_FUNCTION_HD realx3& p2 | ( |  | ) | const

inline

Definition at line 81 of file plane.hpp.

References plane::p2_.

## p3()

const INLINE_FUNCTION_HD realx3& p3 | ( |  | ) | const

inline

Definition at line 87 of file plane.hpp.

References plane::p3_.

## p4()

const INLINE_FUNCTION_HD realx3& p4 | ( |  | ) | const

inline

Definition at line 93 of file plane.hpp.

References plane::p4_.

## line1()

INLINE_FUNCTION_HD line line1 | ( |  | ) | const

inline

Definition at line 99 of file plane.hpp.

References plane::p1_, and plane::p2_.

## line2()

INLINE_FUNCTION_HD line line2 | ( |  | ) | const

inline

Definition at line 105 of file plane.hpp.

References plane::p2_, and plane::p3_.

## line3()

INLINE_FUNCTION_HD line line3 | ( |  | ) | const

inline

Definition at line 111 of file plane.hpp.

References plane::p3_, and plane::p4_.

## line4()

INLINE_FUNCTION_HD line line4 | ( |  | ) | const

inline

Definition at line 117 of file plane.hpp.

References plane::p1_, and plane::p4_.

## parallelPlane()

pFlow::plane parallelPlane | ( | real | distance | ) | const

Definition at line 47 of file plane.cpp.

References infinitePlane::normal_, plane::p1_, plane::p2_, plane::p3_, plane::p4_, plane::plane(), and line::point().

Here is the call graph for this function:

## infPlane()

infinitePlane infPlane | ( |  | ) | const

inline

Definition at line 125 of file plane.hpp.

References infinitePlane::d(), infinitePlane::infinitePlane(), and infinitePlane::normal().

Here is the call graph for this function:

## validPlane4()

bool validPlane4 | ( | const realx3 & | p1,
|  | const realx3 & | p2,
|  | const realx3 & | p3,
|  | const realx3 & | p4
| ) |  |

static

Definition at line 57 of file plane.cpp.

## Member Data Documentation

## p1_

realx3 p1_

private

First point.

Definition at line 37 of file plane.hpp.

Referenced by plane::line1(), plane::line4(), plane::p1(), and plane::parallelPlane().

## p2_

realx3 p2_

private

Second point.

Definition at line 40 of file plane.hpp.

Referenced by plane::line1(), plane::line2(), plane::p2(), and plane::parallelPlane().

## p3_

realx3 p3_

private

Third point.

Definition at line 43 of file plane.hpp.

Referenced by plane::line2(), plane::line3(), plane::p3(), and plane::parallelPlane().

## p4_

realx3 p4_

private

Fourth point.

Definition at line 46 of file plane.hpp.

Referenced by plane::line3(), plane::line4(), plane::p4(), and plane::parallelPlane().

The documentation for this class was generated from the following files:

- src/phasicFlow/structuredData/plane/plane.hpp
- src/phasicFlow/structuredData/plane/plane.cpp