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... | |
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 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 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 () |
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 |
||
) |
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 71 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 32 of file triangle2DI.H.
References Foam::endl(), Foam::nl, and os().
|
inlinestatic |
Return the number of similar points between two triangles.
Definition at line 51 of file triangle2DI.H.
References forAll.
Return the signed area.
Definition at line 78 of file triangle2DI.H.
References b, and Vector2D< Cmpt >::perp().
|
inlinestatic |
Set the intersection between a line and segment Return true if lines intersect
Definition at line 100 of file triangle2DI.H.
References 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 156 of file triangle2DI.H.
References b.
|
inlinestatic |
Return true if lines ab and cd intersect.
Definition at line 169 of file triangle2DI.H.
References b, 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.
Referenced by faceAreaWeightAMI2D::storeInterArea().
void interArea | ( | const triangle2D & | triB, |
vector2D & | centre, | ||
scalar & | area | ||
) | const |
Return the intersection centre and area.
Definition at line 118 of file triangle2D.C.
References Foam::endl(), Foam::Info, n, OFstream::name(), Foam::name(), Foam::nl, triangle2D::order(), os(), p0, Vector2D< Cmpt >::x(), and Foam::Zero.
Foam::scalar interArea | ( | const triangle2D & | triB | ) | const |
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.
Referenced by faceAreaWeightAMI2D::storeInterArea().
|
static |
Absolute tolerance.
Definition at line 73 of file triangle2D.H.