Rhino C++ API
8.10
|
#include <opennurbs_line.h>
Public Member Functions | |
ON_Triangle ()=default | |
Default constructor is uninitialized. More... | |
ON_Triangle (const double vertices[9]) | |
ON_Triangle (const ON_3dPoint &a, const ON_3dPoint &b, const ON_3dPoint &c) | |
ON_Triangle (const ON_3dPoint vertices[3]) | |
ON_Triangle (const ON_Triangle &tri)=default | |
ON_Triangle (double x) | |
Allows Triangle(0.0) ZeroTriangle. More... | |
~ON_Triangle ()=default | |
double | Area () const |
ON_BoundingBox | BoundingBox () const |
ON_3dPoint | Centroid () const |
ON_3dPoint | ClosestPointTo (const ON_3dPoint &test_point) const |
bool | ClosestPointTo (const ON_3dPoint &test_point, double *s1, double *s2) const |
void | Create (const ON_3dPoint &a, const ON_3dPoint &b, const ON_3dPoint &c) |
void | Create (const ON_3dPoint vertices[3]) |
double | DistanceTo (const ON_3dPoint &test_point) const |
ON_Line | Edge (int i) const |
void | Flip (unsigned char edge=0) |
bool | GetBarycentricCoordinates (const ON_3dPoint &test_point, bool constrainInside, double *s1, double *s2) const |
bool | GetBoundingBox (ON_BoundingBox &bbox, int bGrowBox=false) const |
bool | GetTightBoundingBox (ON_BoundingBox &tight_bbox, bool bGrowBox=false, const ON_Xform *xform=nullptr) const |
bool | IsDegenerate (double tol=ON_ZERO_TOLERANCE) const |
bool | IsValid () const |
unsigned char | LongestEdge () const |
ON_3dVector | Normal () const |
operator const ON_3dPoint * () const | |
operator ON_3dPoint * () | |
ON_Triangle & | operator= (const ON_Triangle &tri)=default |
ON_3dPoint & | operator[] (int) |
Triangle[i] = Triangle.m_V[i]. More... | |
const ON_3dPoint & | operator[] (int) const |
ON_PlaneEquation | PlaneEquation () const |
ON_3dPoint | PointAt (double s1, double s2) const |
void | Reverse (int i) |
bool | Rotate (double angle_in_radians, const ON_3dVector &axis_of_rotation, const ON_3dPoint ¢er_of_rotation) |
bool | Rotate (double sin_angle, double cos_angle, const ON_3dVector &axis_of_rotation, const ON_3dPoint ¢er_of_rotation) |
rotate line about a point and axis More... | |
unsigned char | ShortestEdge () const |
void | Spin (unsigned char move) |
void | Split (unsigned char edge, ON_3dPoint pt, ON_Triangle &out_a, ON_Triangle &out_b) const |
bool | Transform (const ON_Xform &xform) |
bool | Translate (const ON_3dVector &delta) |
ON_3dVector | UnitNormal () const |
Public Attributes | |
ON_3dPoint | m_V [3] |
vertices More... | |
Static Public Attributes | |
static const ON_Triangle | NanTriangle |
{ON_3dPoint::NanPoint, ON_3dPoint::NanPoint, ON_3dPoint::NanPoint} More... | |
static const ON_Triangle | UnsetTriangle |
{ON_3dPoint::UnsetPoint, ON_3dPoint::UnsetPoint, ON_3dPoint::UnsetPoint} More... | |
static const ON_Triangle | ZeroTriangle |
{ON_3dPoint::Origin, ON_3dPoint::Origin, ON_3dPoint::Origin} More... | |
|
default |
Default constructor is uninitialized.
ON_Triangle::ON_Triangle | ( | const ON_3dPoint | vertices[3] | ) |
ON_Triangle::ON_Triangle | ( | const ON_3dPoint & | a, |
const ON_3dPoint & | b, | ||
const ON_3dPoint & | c | ||
) |
ON_Triangle::ON_Triangle | ( | double | x | ) |
Allows Triangle(0.0) ZeroTriangle.
ON_Triangle::ON_Triangle | ( | const double | vertices[9] | ) |
|
default |
|
default |
double ON_Triangle::Area | ( | ) | const |
Returns: Area of triangle
ON_BoundingBox ON_Triangle::BoundingBox | ( | ) | const |
Description: Get Triangles 3d axis aligned bounding box. Returns: 3d bounding box.
ON_3dPoint ON_Triangle::Centroid | ( | ) | const |
Returns: Evaluation of PointAt(1/3.0, 1/3.0);
ON_3dPoint ON_Triangle::ClosestPointTo | ( | const ON_3dPoint & | test_point | ) | const |
Description: Find the point on the triangle that is closest to the test_point. Parameters: test_point - [in] Returns: The point on the line that is closest to test_point.
bool ON_Triangle::ClosestPointTo | ( | const ON_3dPoint & | test_point, |
double * | s1, | ||
double * | s2 | ||
) | const |
Description: Find the point on the triangle that is closest to the test_point. Parameters: test_point - [in] s1, s2 - [out] PointAt( *s1, *s2) is the point on the triangle closest to test_point. Returns: true if successful.
void ON_Triangle::Create | ( | const ON_3dPoint & | a, |
const ON_3dPoint & | b, | ||
const ON_3dPoint & | c | ||
) |
Description: Create a Triangle from three points. Parameters: a,b,c - [in] vertices
void ON_Triangle::Create | ( | const ON_3dPoint | vertices[3] | ) |
Description: Create a Triangle from three points. Parameters: vertices - [in] vertices
double ON_Triangle::DistanceTo | ( | const ON_3dPoint & | test_point | ) | const |
Description: Find the point on the triangle that is closest to the test_point. Parameters: test_point -[in] Returns: distance from the point on triangle that is closest to test_point. See Also: ON_3dPoint::DistanceTo ON_Line::ClosestPointTo
ON_Line ON_Triangle::Edge | ( | int | i | ) | const |
Returns: Edge opposite m_V[i] Specifically, ON_Line( m_V[(i+1)%3 ], m_V[(i+2)%3 ] )
void ON_Triangle::Flip | ( | unsigned char | edge = 0 | ) |
Description: Flip the normal of the triangle, by swapping the points of an edge. Parameters: edge - [in] The edge, as defined in the Edge() method. I.e., edge 0 swaps m_V[1] and m_V[2]
bool ON_Triangle::GetBarycentricCoordinates | ( | const ON_3dPoint & | test_point, |
bool | constrainInside, | ||
double * | s1, | ||
double * | s2 | ||
) | const |
Description: Find the point that is closest to the test_point. Parameters: test_point - [in] constrainInside[in] - if true, variable are inside triangle s1, s2 - [out] PointAt( *s1, *s2) is the point on the triangle closest to test_point.
Returns: true if successful.
bool ON_Triangle::GetBoundingBox | ( | ON_BoundingBox & | bbox, |
int | bGrowBox = false |
||
) | const |
Description: Get line's 3d axis aligned bounding box or the union of the input box with the object's bounding box. Parameters: bbox - [in/out] 3d axis aligned bounding box bGrowBox - [in] (default=false) If true, then the union of the input bbox and the object's bounding box is returned in bbox. If false, the object's bounding box is returned in bbox. Returns: true if object has bounding box and calculation was successful.
bool ON_Triangle::GetTightBoundingBox | ( | ON_BoundingBox & | tight_bbox, |
bool | bGrowBox = false , |
||
const ON_Xform * | xform = nullptr |
||
) | const |
Description: Get tight bounding box with respect to a given frame Parameters: tight_bbox - [in/out] tight bounding box bGrowBox -[in] (default=false) If true and the input tight_bbox is valid, then returned tight_bbox is the union of the input tight_bbox and the line's tight bounding box. xform -[in] (default=nullptr) If not nullptr, the tight bounding box of the transformed triangle is calculated. The triangle is not modified. Returns: True if a valid tight_bbox is returned.
bool ON_Triangle::IsDegenerate | ( | double | tol = ON_ZERO_TOLERANCE | ) | const |
Returns: true if Area()< tol Note: Recall Area = .5* base * height. So this degeneracy tests for a combination long enough and high enough. See Also: ON_Triangle::Area()
bool ON_Triangle::IsValid | ( | ) | const |
Returns: True if m_V[i].IsValid() for all i
unsigned char ON_Triangle::LongestEdge | ( | ) | const |
Returns: Index of edge opposite to m_V[i] that is longest. When lengths are equal, lowest index has priority.
ON_3dVector ON_Triangle::Normal | ( | ) | const |
Returns: N = ( b-a) X ( c-a) where a,b,c are the vertices See Also: ON_Triangle UnitNormal()
ON_Triangle::operator const ON_3dPoint * | ( | ) | const |
ON_Triangle::operator ON_3dPoint * | ( | ) |
|
default |
ON_3dPoint& ON_Triangle::operator[] | ( | int | ) |
Triangle[i] = Triangle.m_V[i].
const ON_3dPoint& ON_Triangle::operator[] | ( | int | ) | const |
ON_PlaneEquation ON_Triangle::PlaneEquation | ( | ) | const |
Returns: Plane containing Triangle with normal given by UnitNormal(). Notes: Ensure !IsDegenerate() to guarantee meaningful result
ON_3dPoint ON_Triangle::PointAt | ( | double | s1, |
double | s2 | ||
) | const |
Description: Evaluate point on triangle. Parameters: s1, s2 - [in] evaluation parameter. Returns: (1-s1-s2)* m_V[0] + s1*m_V[1] + s2*m_V[2] Notes: Point is in the triangle iff s1>=0, s2>=0 and s1 + s2<=1. Other values produce points on the plane of the triangle.
void ON_Triangle::Reverse | ( | int | i | ) |
Description: Reverse endpoints of Edge[i].
bool ON_Triangle::Rotate | ( | double | angle_in_radians, |
const ON_3dVector & | axis_of_rotation, | ||
const ON_3dPoint & | center_of_rotation | ||
) |
bool ON_Triangle::Rotate | ( | double | sin_angle, |
double | cos_angle, | ||
const ON_3dVector & | axis_of_rotation, | ||
const ON_3dPoint & | center_of_rotation | ||
) |
rotate line about a point and axis
unsigned char ON_Triangle::ShortestEdge | ( | ) | const |
Returns: Index of edge opposite to m_V[i] that is shortest. When lengths are equal, lowest index has priority.
void ON_Triangle::Spin | ( | unsigned char | move | ) |
Description: Circle the order of points in the triangle, without any influence to any geometric property. Parameters: move - [in] Amounts of rotations in the order of the three points. By means of examples, "move" of 1 will move m_V[0] to m_V[1], m_V[1] to m_V[2] and m_V[2] to m_V[0].
void ON_Triangle::Split | ( | unsigned char | edge, |
ON_3dPoint | pt, | ||
ON_Triangle & | out_a, | ||
ON_Triangle & | out_b | ||
) | const |
Description: Split the triangles into two, by choosing an edge and a new point that will appear along the edge. Parameters: edge - [in] Edge index as defined in Edge() pt - [in] Point to add as splitter along edge out_a - [out] First triangle out_b - [out] Second triangle
bool ON_Triangle::Transform | ( | const ON_Xform & | xform | ) |
bool ON_Triangle::Translate | ( | const ON_3dVector & | delta | ) |
ON_3dVector ON_Triangle::UnitNormal | ( | ) | const |
Returns: Normal().Unitize() Notes: Ensure !IsDegenerate() to guarantee that UnitNormal().Length()==1 and the result is not just a bunch of noise. Can return zero vector in some degenerate cases.
ON_3dPoint ON_Triangle::m_V[3] |
vertices
|
static |
|
static |
|
static |