17#ifdef WITH_CXX_GUARDEDALLOC
36 inline Polygon(
const vector<Point> &vertices)
48 for (
typename vector<Point>::const_iterator it = poly.getVertices().begin();
49 it != poly.getVertices().end();
89 for (
typename vector<Point>::iterator it =
_vertices.begin(); it !=
_vertices.end(); it++) {
109 for (
typename vector<Point>::const_iterator it = vertices.begin(); it != vertices.end(); it++)
135 for (
typename vector<Point>::iterator it =
_vertices.begin(); it !=
_vertices.end(); it++) {
136 for (
uint i = 0; i < Point::dim(); i++) {
137 if ((*it)[i] >
_max[i]) {
140 if ((*it)[i] <
_min[i]) {
157#ifdef WITH_CXX_GUARDEDALLOC
158 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:Geometry:Polygon")
Various tools for geometry.
Vectors and Matrices (useful type definitions)
Read Guarded memory(de)allocation.
ATTR_WARN_UNUSED_RESULT const BMVert * v
void setNormal(const Vec3r &normal)
Polygon3r(const vector< Vec3r > &vertices, const Vec3r &normal)
Polygon3r(const Polygon3r &poly)
bool rayIntersect(const Vec3r &orig, const Vec3r &dir, real &t, real &u, real &v, real epsilon=M_EPSILON) const
Polygon(const vector< Point > &vertices)
void setVertices(const vector< Point > &vertices)
vector< Point > _vertices
void getBBox(Point &min, Point &max) const
Polygon(const Polygon< Point > &poly)
const vector< Point > & getVertices() const
bool intersectRayTriangle(const Vec3r &orig, const Vec3r &dir, const Vec3r &v0, const Vec3r &v1, const Vec3r &v2, real &t, real &u, real &v, const real epsilon)
static const real M_EPSILON