my::Vector my::AbstractPolygon::orientationVector() const { _prePolygon("orientationVector"); my::Vector crossSum; crossSum = my::Vector(0,0,0); for(int i=0; i < size()-1; ++i){ crossSum += glm::cross( edgeVector(i), edgeVector(i+1) ); } return crossSum; }
float my::AbstractPolygon::circumference()const { int i; float sum; sum = 0; for(i=0; i<size(); ++i){ sum += glm::length(edgeVector(i)); } return sum; }
my::PlanarExpression my::AbstractPolygon::basePlaneExpression()const { _prePolygon("basePlaneExpression"); return my::PlanarExpression(vertex(0), edgeVector(0), edgeVector(1)); }
my::Planar my::AbstractPolygon::basePlane()const { _prePolygon("basePlane"); return my::Planar(vertex(0), edgeVector(0), edgeVector(1)); }
float my::AbstractPolygon::area()const { return std::abs( signedArea(glm::cross(edgeVector(0), edgeVector(1))) ); }
inline KVector3D KHalfEdgeMeshPrivate::edgeVector(HalfEdgeIndex const &idx) const { return edgeVector(halfEdge(idx)); }