32#ifndef RCSC_GEOM_TRIANGLE2D_H
33#define RCSC_GEOM_TRIANGLE2D_H
80 , M_b( seg.terminal() )
171 return std::fabs( (
b() -
a() ).outerProduct(
c() -
a() ) ) * 0.5;
207 return ccw(
a(),
b(),
c() );
311 return ( (
a.x -
c.x ) * (
b.y -
c.y )
312 + (
b.x -
c.x ) * (
c.y -
a.y ) );
2d straight line class
Definition line_2d.h:47
2D ray line class
Definition ray_2d.h:44
Region2D()
accessible only from derived classes
Definition region_2d.h:49
2d segment line class
Definition segment_2d.h:46
const Vector2D & terminal() const
get 2nd point of segment edge
Definition segment_2d.h:176
const Vector2D & origin() const
get 1st point of segment edge
Definition segment_2d.h:166
Vector2D centroid() const
get the center of gravity(centroid, JUU-SIN)
Definition triangle_2d.h:222
Triangle2D(const Segment2D &seg, const Vector2D &v)
constructor with a segment and a point
Definition triangle_2d.h:77
static Vector2D centroid(const Vector2D &a, const Vector2D &b, const Vector2D &c)
get the center of gravity(JUU-SIN)
Definition triangle_2d.h:358
const Vector2D & b() const
get 2nd point
Definition triangle_2d.h:147
const Triangle2D & assign(const Segment2D &seg, const Vector2D &v)
assign new segment and vertex point
Definition triangle_2d.h:123
Vector2D orthocenter() const
get the orthocenter(SUI-SIN)
Definition triangle_2d.h:249
static double double_signed_area(const Vector2D &a, const Vector2D &b, const Vector2D &c)
get a double signed area value (== area of parallelogram)
Definition triangle_2d.h:307
static double signed_area(const Vector2D &a, const Vector2D &b, const Vector2D &c)
get a signed area value
Definition triangle_2d.h:326
double signedArea() const
get a signed area. this method is equivalent to signed_area().
Definition triangle_2d.h:181
virtual double area() const
get the area of this region
Definition triangle_2d.h:167
const Vector2D & c() const
get 3rd point
Definition triangle_2d.h:157
const Triangle2D & assign(const Vector2D &v1, const Vector2D &v2, const Vector2D &v3)
assign new vertex points
Definition triangle_2d.h:92
const Vector2D & a() const
get 1st point
Definition triangle_2d.h:137
bool ccw() const
check if this triangle's vertices are placed counterclockwise order.
Definition triangle_2d.h:205
bool isValid() const
check if this triangle is valid or not.
Definition triangle_2d.h:106
Triangle2D(const Vector2D &v1, const Vector2D &v2, const Vector2D &v3)
constructor with variables
Definition triangle_2d.h:64
static bool ccw(const Vector2D &a, const Vector2D &b, const Vector2D &c)
check if input vertices are placed counterclockwise order.
Definition triangle_2d.h:341
double doubleSignedArea() const
get a double of signed area value. this method is equivalent to double_signed_area().
Definition triangle_2d.h:194
Vector2D circumcenter() const
get the center of circumscribed circle(GAI-SIN)
Definition triangle_2d.h:240
Vector2D incenter() const
get the center of inscribed circle(NAI-SIN)
Definition triangle_2d.h:231
virtual bool contains(const Vector2D &point) const
check if this triangle contains 'point'.
Definition triangle_2d.cpp:51
int intersection(const Line2D &line, Vector2D *sol1, Vector2D *sol2) const
calculate intersection point with line.
Definition triangle_2d.cpp:75
2D point vector class
Definition vector_2d.h:47
Vector2D & add(const Vector2D &v)
add vector.
Definition vector_2d.h:240
2d vector class Header File.
abstract 2D region class Header File.
2D segment line Header File.