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 |
label | snapClosePoints (const triangle2D &triB) |
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... | |
![]() | |
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 vector2D list[N]) | |
Copy construct from C-array (deprecated) More... | |
FixedList (const FixedList< vector2D, N > &list) | |
Copy construct. More... | |
FixedList (FixedList< vector2D, N > &&list) | |
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 (const SLList< vector2D > &list) | |
Construct from SLList. Runtime size check. More... | |
FixedList (Istream &is) | |
Construct from Istream. 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 & | first () noexcept |
The first element of the list, position [0]. More... | |
const vector2D & | first () const noexcept |
The first element of the list, position [0]. More... | |
vector2D & | last () noexcept |
The last element of the list, position [N-1]. More... | |
const vector2D & | last () const noexcept |
The last element of the list, position [N-1]. More... | |
label | fcIndex (const label i) const |
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 |
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... | |
label | find (const vector2D &val, label pos=0) 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... | |
bool | found (const vector2D &val, label pos=0) const |
True if the value if found in the list. More... | |
void | resize (const label n) |
Dummy function, to make FixedList consistent with List. More... | |
void | resize_nocopy (const label n) |
Dummy function, to make FixedList consistent with List. 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) |
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 vector2D list[N]) |
Assignment to array operator. Takes linear time. More... | |
void | operator= (const UList< vector2D > &list) |
Assignment to UList operator. Takes linear time. More... | |
void | operator= (const SLList< vector2D > &list) |
Assignment to SLList 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... | |
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... | |
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) |
static bool | lineIntersectionPoint (const vector2D &a, const vector2D &b, const vector2D &c, const vector2D &d, vector2D &intersection) |
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 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 () |
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 | |
![]() | |
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 vector2D & | reference |
The type used for storing into value_type objects. More... | |
typedef vector2D * | 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... | |
![]() | |
const typedef vector2D * | const_pointer |
The pointer type for const access to value_type items. More... | |
const typedef vector2D & | const_reference |
The type used for reading from constant value_type objects. More... | |
const typedef vector2D * | const_iterator |
Random access iterator for traversing FixedList. More... | |
![]() | |
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 48 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 72 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 199 of file triangle2DI.H.
References Foam::mag(), and Foam::sign().
Referenced by triangle2D::interArea().
|
inlinestatic |
Write the triangle in OBJ format.
Definition at line 33 of file triangle2DI.H.
References Foam::endl(), Foam::nl, and os().
|
inlinestatic |
Return the number of similar points between two triangles.
Definition at line 52 of file triangle2DI.H.
References forAll, and Foam::stringOps::match().
Return the signed area.
Definition at line 79 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 101 of file triangle2DI.H.
References Foam::expressions::patchExpr::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 157 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 170 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 93 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 119 of file triangle2D.C.
References Foam::fieldTypes::area, Foam::constant::physicoChemical::c1, Foam::expressions::patchExpr::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 265 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 276 of file triangle2D.C.
References triangle2D::contains(), and Foam::j1().
|
inlinenoexcept |
Return the triangle area.
Definition at line 193 of file triangle2DI.H.
|
inline |
Return the triangle centre.
Definition at line 92 of file triangle2DI.H.
|
inline |
Return true if tri is within this triangle.
Definition at line 205 of file triangle2DI.H.
Referenced by triangle2D::overlaps().
|
inline |
Return true if triB is the same as this triangle.
Definition at line 214 of file triangle2DI.H.
Return true if t point p is inside this triangle.
Definition at line 225 of file triangle2DI.H.
References p.
|
static |
Definition at line 67 of file triangle2D.H.
|
static |
Relative tolerance.
Definition at line 70 of file triangle2D.H.
|
static |
Absolute tolerance.
Definition at line 73 of file triangle2D.H.