2-D triangle and queries More...


Public Member Functions | |
| triangle2D (const vector2D &a, const vector2D &b, const vector2D &c, const bool orient=false) | |
| Construct from 3 2-D points. More... | |
| triangle2D (const vector &a3d, const vector &b3d, const vector &c3d, const vector &axis1, const vector &axis2, const bool orient=false) | |
| Construct from 3 3-D points and axes. More... | |
| label | order () const |
| Returns: 1 if points are ordered in anti-clockwise direction -1 if points are ordered in clockwise direction 0 if the triangle has collapsed to a line. More... | |
| label | snapClosePoints (const triangle2D &triB) |
| Snap [this] triangle's points to those of triB if they are within absTol. More... | |
| void | interArea (const triangle2D &triB, vector2D ¢re, scalar &area) const |
| Return the intersection centre and area. More... | |
| scalar | interArea (const triangle2D &triB) const |
| Return the intersection area. More... | |
| bool | overlaps (const triangle2D &triB) const |
| Return true if triB overlaps. More... | |
| scalar | area () const noexcept |
| Return the triangle area. More... | |
| vector2D | centre () const |
| Return the triangle centre. More... | |
| bool | contains (const triangle2D &tri) const |
| Return true if tri is within this triangle. More... | |
| bool | isSame (const triangle2D &triB) const |
| Return true if triB is the same as this triangle. More... | |
| bool | pointInside (const vector2D &p) const |
| Return true if t point p is inside this triangle. More... | |
Public Member Functions inherited from FixedList< vector2D, 3 > | |
| void | writeEntry (const word &keyword, Ostream &os) const |
| Write the list as a dictionary entry with keyword. More... | |
| FixedList ()=default | |
| Default construct. More... | |
| FixedList (const vector2D &val) | |
| Construct and initialize all entries to given value. More... | |
| FixedList (const Foam::zero) | |
| Construct and initialize all entries to zero. More... | |
| FixedList (const FixedList< vector2D, N > &list) | |
| Copy construct. More... | |
| FixedList (FixedList< vector2D, N > &&list) | |
| Move construct by using move assignment for the individual list elements. More... | |
| FixedList (std::initializer_list< vector2D > list) | |
| Construct from an initializer list. Runtime size check. More... | |
| FixedList (const UList< vector2D > &list) | |
| Construct from UList. Runtime size check. More... | |
| FixedList (const FixedList< vector2D, AnyNum > &list, const FixedList< label, N > &indices) | |
| Copy construct from a subset of the input. No size check. More... | |
| FixedList (const UList< vector2D > &list, const FixedList< label, N > &indices) | |
| Copy construct from a subset of the input. No size check. More... | |
| FixedList (Istream &is) | |
| Construct from Istream. More... | |
| FixedList (const vector2D list[N]) | |
| Deprecated: copy construct from C-array. More... | |
| autoPtr< FixedList< vector2D, N > > | clone () const |
| Clone. More... | |
| const vector2D * | cdata () const noexcept |
| Return pointer to the underlying array serving as data storage. More... | |
| vector2D * | data () noexcept |
| Return pointer to the underlying array serving as data storage. More... | |
| const char * | cdata_bytes () const noexcept |
| Return pointer to the underlying array serving as data storage,. More... | |
| char * | data_bytes () noexcept |
| Return pointer to the underlying array serving as data storage,. More... | |
| vector2D & | get () noexcept |
| Element access using compile-time indexing. More... | |
| const vector2D & | get () const noexcept |
| Element access using compile-time indexing. More... | |
| vector2D & | front () noexcept |
| Access first element of the list, position [0]. More... | |
| const vector2D & | front () const noexcept |
| Access first element of the list, position [0]. More... | |
| vector2D & | back () noexcept |
| Access last element of the list, position [N-1]. More... | |
| const vector2D & | back () const noexcept |
| Access last element of the list, position [N-1]. More... | |
| label | fcIndex (const label i) const noexcept |
| Return the forward circular index, i.e. next index which returns to the first at the end of the list. More... | |
| const vector2D & | fcValue (const label i) const |
| Return forward circular value (ie, next value in the list) More... | |
| vector2D & | fcValue (const label i) |
| Return forward circular value (ie, next value in the list) More... | |
| label | rcIndex (const label i) const noexcept |
| Return the reverse circular index, i.e. previous index which returns to the last at the beginning of the list. More... | |
| const vector2D & | rcValue (const label i) const |
| Return reverse circular value (ie, previous value in the list) More... | |
| vector2D & | rcValue (const label i) |
| Return reverse circular value (ie, previous value in the list) More... | |
| void | checkStart (const label start) const |
| Check start is within valid range [0,size) More... | |
| void | checkSize (const label size) const |
| Check size is identical to template parameter N. More... | |
| void | checkIndex (const label i) const |
| Check index is within valid range [0,N) More... | |
| bool | uniform () const |
| True if all entries have identical values, and list is non-empty. More... | |
| bool | contains (const vector2D &val) const |
| True if the value is contained in the list. More... | |
| bool | contains (const vector2D &val, label pos, label len=-1) const |
| Is the value contained in the list? More... | |
| label | find (const vector2D &val) const |
| Find index of the first occurrence of the value. More... | |
| label | find (const vector2D &val, label pos, label len=-1) const |
| Find index of the first occurrence of the value. More... | |
| label | rfind (const vector2D &val, label pos=-1) const |
| Find index of the last occurrence of the value. More... | |
| void | resize (const label n) |
| Dummy function, to make FixedList consistent with List Any resizing is ignored (Fatal with bad sizing in full debug). More... | |
| void | resize_fill (const label n, const vector2D &val) |
| Set val for all elements. Any resizing is ignored (Fatal with bad sizing in full debug). More... | |
| void | resize_nocopy (const label n) |
| Dummy function, to make FixedList consistent with List Any resizing is ignored (Fatal with bad sizing in full debug). More... | |
| void | setSize (const label n) |
| Dummy function, to make FixedList consistent with List. More... | |
| void | fill (const vector2D &val) |
| Assign all entries to the given value. More... | |
| void | fill (const Foam::zero) |
| Assign all entries to zero. More... | |
| void | moveFirst (const label i) |
| Move element to the first position. More... | |
| void | moveLast (const label i) |
| Move element to the last position. More... | |
| void | swapFirst (const label i) |
| Swap element with the first element. More... | |
| void | swapLast (const label i) |
| Swap element with the last element. More... | |
| void | transfer (FixedList< vector2D, N > &list) |
| Transfer by swapping using a move assignment for the content of the individual list elements. More... | |
| vector2D & | operator[] (const label i) |
| Return element of FixedList. More... | |
| const vector2D & | operator[] (const label i) const |
| Return element of constant FixedList. More... | |
| void | operator= (const UList< vector2D > &list) |
| Assignment to UList operator. Takes linear time. More... | |
| void | operator= (std::initializer_list< vector2D > list) |
| Assignment to an initializer list. Takes linear time. More... | |
| void | operator= (const vector2D &val) |
| Assign all entries to the given value. fill() More... | |
| void | operator= (const Foam::zero) |
| Assign all entries to zero. fill() More... | |
| void | operator= (const FixedList< vector2D, N > &list) |
| Copy assignment. More... | |
| void | operator= (FixedList< vector2D, N > &&list) |
| Move assignment. More... | |
| void | operator= (const vector2D list[N]) |
| Deprecated: assignment from C-array. More... | |
| iterator | begin () noexcept |
| Return an iterator to begin traversing the FixedList. More... | |
| const_iterator | begin () const noexcept |
| Return const_iterator to begin traversing the constant FixedList. More... | |
| iterator | end () noexcept |
| Return an iterator to end traversing the FixedList. More... | |
| const_iterator | end () const noexcept |
| Return const_iterator to end traversing the constant FixedList. More... | |
| const_iterator | cbegin () const noexcept |
| Return const_iterator to begin traversing the constant FixedList. More... | |
| const_iterator | cend () const noexcept |
| Return const_iterator to end traversing the constant FixedList. More... | |
| reverse_iterator | rbegin () |
| Return reverse_iterator to begin reverse traversing the FixedList. More... | |
| const_reverse_iterator | rbegin () const |
| Return const_reverse_iterator to begin reverse traversing FixedList. More... | |
| reverse_iterator | rend () |
| Return reverse_iterator to end reverse traversing the FixedList. More... | |
| const_reverse_iterator | rend () const |
| Return const_reverse_iterator to end reverse traversing FixedList. More... | |
| const_reverse_iterator | crbegin () const |
| Return const_reverse_iterator to begin reverse traversing FixedList. More... | |
| const_reverse_iterator | crend () const |
| Return const_reverse_iterator to end reverse traversing FixedList. More... | |
| void | swap (FixedList< vector2D, N > &other) |
| Swap lists by swapping the content of the individual list elements. More... | |
| bool | operator== (const FixedList< vector2D, N > &list) const |
| Equality operation on FixedLists of the same type. More... | |
| bool | operator!= (const FixedList< vector2D, N > &list) const |
| The opposite of the equality operation. Takes linear time. More... | |
| bool | operator< (const FixedList< vector2D, N > &list) const |
| Compare two FixedLists lexicographically. Takes linear time. More... | |
| bool | operator> (const FixedList< vector2D, N > &list) const |
| Compare two FixedLists lexicographically. Takes linear time. More... | |
| bool | operator<= (const FixedList< vector2D, N > &list) const |
| Return true if !(a > b). Takes linear time. More... | |
| bool | operator>= (const FixedList< vector2D, N > &list) const |
| Return true if !(a < b). Takes linear time. More... | |
| Istream & | readList (Istream &is) |
| Read from Istream, discarding contents of existing List. More... | |
| Ostream & | writeList (Ostream &os, const label shortLen=0) const |
| Write List, with line-breaks in ASCII when length exceeds shortLen. More... | |
| vector2D & | first () noexcept |
| Access first element of the list, position [0] - front() More... | |
| const vector2D & | first () const noexcept |
| Access first element of the list, position [0] - front() More... | |
| vector2D & | last () noexcept |
| Access last element of the list, position [N-1] - back() More... | |
| const vector2D & | last () const noexcept |
| Access last element of the list, position [N-1] - back() More... | |
| bool | found (const vector2D &val, label pos=0) const |
| Same as contains() More... | |
Static Public Member Functions | |
| static void | writeOBJ (Ostream &os, const triangle2D &tri, label offset) |
| Write the triangle in OBJ format. More... | |
| static label | nClosePoints (const triangle2D &triA, const triangle2D &triB) |
| Return the number of similar points between two triangles. More... | |
| static scalar | area (const vector2D &a, const vector2D &b, const vector2D &c) |
| Return the signed area. More... | |
| static bool | lineSegmentIntersectionPoint (const vector2D &lp1, const vector2D &lp2, const vector2D &sp1, const vector2D &sp2, vector2D &intersection) |
| Set the intersection between a line and segment Return true if lines intersect. More... | |
| static bool | lineIntersectionPoint (const vector2D &a, const vector2D &b, const vector2D &c, const vector2D &d, vector2D &intersection) |
| Set the intersection between two lines Return true if lines intersect. More... | |
| static bool | lineIntersects (const vector2D &a, const vector2D &b, const vector2D &c, const vector2D &d) |
| Return true if lines ab and cd intersect. More... | |
Static Public Member Functions inherited from FixedList< vector2D, 3 > | |
| static const FixedList< vector2D, N > & | null () |
| Return a null FixedList. More... | |
| static std::streamsize | size_bytes () noexcept |
| Number of contiguous bytes for the list data,. More... | |
| static std::streamsize | byteSize () |
| Number of contiguous bytes for the list data, runtime FatalError if type is not contiguous. More... | |
| static constexpr bool | empty () noexcept |
| Always false since zero-sized FixedList is compile-time disabled. More... | |
| static constexpr label | size () noexcept |
| Return the number of elements in the FixedList. More... | |
| static constexpr unsigned | max_size () noexcept |
| The dimensioned size (template parameter N) of the FixedList. More... | |
Static Public Attributes | |
| static int | debug = 0 |
| static scalar | relTol = 1e-8 |
| Relative tolerance. More... | |
| static scalar | absTol = 1e-10 |
| Absolute tolerance. More... | |
Additional Inherited Members | |
Public Types inherited from FixedList< vector2D, 3 > | |
| typedef vector2D | value_type |
| The value type the FixedList contains. More... | |
| typedef vector2D * | pointer |
| The pointer type for non-const access to value_type items. More... | |
| typedef const vector2D * | const_pointer |
| The pointer type for const access to value_type items. More... | |
| typedef vector2D & | reference |
| The type used for storing into value_type objects. More... | |
| typedef const vector2D & | const_reference |
| The type used for reading from constant value_type objects. More... | |
| typedef vector2D * | iterator |
| Random access iterator for traversing FixedList. More... | |
| typedef const vector2D * | const_iterator |
| Random access iterator for traversing FixedList. More... | |
| typedef label | size_type |
| The type to represent the size of a FixedList. More... | |
| typedef label | difference_type |
| The difference between iterator objects. More... | |
| typedef std::reverse_iterator< iterator > | reverse_iterator |
| Reverse iterator (non-const access) More... | |
| typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
| Reverse iterator (const access) More... | |
Protected Member Functions inherited from FixedList< vector2D, 3 > | |
| void | writeEntry (Ostream &os) const |
| Write the FixedList with its compound type. More... | |
| triangle2D | ( | const vector2D & | a, |
| const vector2D & | b, | ||
| const vector2D & | c, | ||
| const bool | orient = false |
||
| ) |
Construct from 3 2-D points.
Definition at line 41 of file triangle2D.C.
References Foam::constant::physicoChemical::b, and Foam::constant::universal::c.
| triangle2D | ( | const vector & | a3d, |
| const vector & | b3d, | ||
| const vector & | c3d, | ||
| const vector & | axis1, | ||
| const vector & | axis2, | ||
| const bool | orient = false |
||
| ) |
Construct from 3 3-D points and axes.
Definition at line 65 of file triangle2D.C.
|
inline |
Returns: 1 if points are ordered in anti-clockwise direction -1 if points are ordered in clockwise direction 0 if the triangle has collapsed to a line.
Definition at line 192 of file triangle2DI.H.
References Foam::mag(), and Foam::sign().
Referenced by triangle2D::interArea().


|
inlinestatic |
Write the triangle in OBJ format.
Definition at line 26 of file triangle2DI.H.
References Foam::endl(), Foam::nl, and os().

|
inlinestatic |
Return the number of similar points between two triangles.
Definition at line 45 of file triangle2DI.H.
References forAll, and Foam::stringOps::match().

Return the signed area.
Definition at line 72 of file triangle2DI.H.
References Foam::constant::physicoChemical::b, Foam::constant::universal::c, and Vector2D< Cmpt >::perp().

|
inlinestatic |
Set the intersection between a line and segment Return true if lines intersect.
Definition at line 94 of file triangle2DI.H.
References Foam::ensightOutput::debug, Foam::endl(), Foam::mag(), Foam::nl, os(), Vector2D< Cmpt >::perp(), s, Vector2D< Cmpt >::x(), and Vector2D< Cmpt >::y().

|
inlinestatic |
Set the intersection between two lines Return true if lines intersect.
Definition at line 150 of file triangle2DI.H.
References Foam::constant::physicoChemical::b, and Foam::constant::universal::c.
|
inlinestatic |
Return true if lines ab and cd intersect.
Definition at line 163 of file triangle2DI.H.
References Foam::constant::physicoChemical::b, Foam::constant::universal::c, DebugInfo, and Foam::endl().

| Foam::label snapClosePoints | ( | const triangle2D & | triB | ) |
Snap [this] triangle's points to those of triB if they are within absTol.
Returns the number of snapped points
Definition at line 86 of file triangle2D.C.
References forAll, Vector2D< Cmpt >::isClose(), and Foam::stringOps::match().
Referenced by faceAreaWeightAMI2D::storeInterArea().


| void interArea | ( | const triangle2D & | triB, |
| vector2D & | centre, | ||
| scalar & | area | ||
| ) | const |
Return the intersection centre and area.
Definition at line 112 of file triangle2D.C.
References Foam::fieldTypes::area, Foam::constant::physicoChemical::c1, Foam::ensightOutput::debug, Foam::endl(), Foam::Info, n, OFstream::name(), Foam::name(), Foam::nl, triangle2D::order(), os(), p0, Foam::meshTools::writeOBJ(), Vector2D< Cmpt >::x(), VectorSpace< Vector2D< scalar >, scalar, 2 >::zero, and Foam::Zero.

| Foam::scalar interArea | ( | const triangle2D & | triB | ) | const |
Return the intersection area.
Definition at line 258 of file triangle2D.C.
References Foam::fieldTypes::area, and Foam::Zero.
| bool overlaps | ( | const triangle2D & | triB | ) | const |
Return true if triB overlaps.
Definition at line 269 of file triangle2D.C.
References triangle2D::contains(), and Foam::j1().

|
inlinenoexcept |
Return the triangle area.
Definition at line 186 of file triangle2DI.H.
|
inline |
Return the triangle centre.
Definition at line 85 of file triangle2DI.H.
|
inline |
Return true if tri is within this triangle.
Definition at line 198 of file triangle2DI.H.
Referenced by triangle2D::overlaps().

|
inline |
Return true if triB is the same as this triangle.
Definition at line 207 of file triangle2DI.H.
|
inline |
Return true if t point p is inside this triangle.
Definition at line 218 of file triangle2DI.H.
References p.
|
static |
Definition at line 67 of file triangle2D.H.
|
static |
Relative tolerance.
Definition at line 72 of file triangle2D.H.
|
static |
Absolute tolerance.
Definition at line 77 of file triangle2D.H.