>& aPoints, MathVector3_& aMin, MathVector3_& aMax);
/** @brief Compute the axis aligned bounding box of a set of points.*/
static void getMinMax(const S* aPoints, size_t pointCount, MathVector3_& aMin, MathVector3_& aMax);
diff --git a/visilib/math_geometry.h b/visilib/math_geometry.h
index 542c5f3..7bdda00 100644
--- a/visilib/math_geometry.h
+++ b/visilib/math_geometry.h
@@ -163,7 +163,7 @@ namespace visilib
bool static isEdgeInsidePolytope(const MathVector3d& a, const MathVector3d& b, PluckerPolytope* aPolytope, const MathVector3d& approximateNormal, PluckerPolyhedron
* polyhedron, S tolerance);
template
- static bool isBoxInsideConvexHull(const MathVector3_& AABBMin, const MathVector3_& AABBMax, const std::vector>& convexHullPlanes);
+ static bool isBoxInsideConvexHull(const MathVector3_& AABBMin, const MathVector3_& AABBMax, const std::vector >& convexHullPlanes);
};
inline bool MathGeometry::isPointInsidePolygon(const GeometryConvexPolygon& aPolygon, const MathVector3d& aPoint, double tolerance)
@@ -351,26 +351,26 @@ namespace visilib
}
template<>
- inline bool MathGeometry::findPluckerEdgeWithQuadricIntersection, float>(const MathPlucker6 & v1, const MathPlucker6 & v2, GeometryPositionType p1, GeometryPositionType p2, std::vector> & result, float tolerance)
+ inline bool MathGeometry::findPluckerEdgeWithQuadricIntersection, float>(const MathPlucker6 & v1, const MathPlucker6 & v2, GeometryPositionType p1, GeometryPositionType p2, std::vector > & result, float tolerance)
{
return findPluckerEdgeWithQuadricIntersection, float>(v1, v2, p1, p2, result, true, tolerance);
}
template<>
- inline bool MathGeometry::findPluckerEdgeWithQuadricIntersection, double>(const MathPlucker6 & v1, const MathPlucker6 & v2, GeometryPositionType p1, GeometryPositionType p2, std::vector> & result, double tolerance)
+ inline bool MathGeometry::findPluckerEdgeWithQuadricIntersection, double>(const MathPlucker6 & v1, const MathPlucker6 & v2, GeometryPositionType p1, GeometryPositionType p2, std::vector > & result, double tolerance)
{
return findPluckerEdgeWithQuadricIntersection, double>(v1, v2, p1, p2, result, true, tolerance);
}
template<>
- inline bool MathGeometry::findPluckerEdgeWithQuadricIntersection, double>(const MathPlucker2 & v1, const MathPlucker2 & v2, GeometryPositionType p1, GeometryPositionType p2, std::vector> & result, double tolerance)
+ inline bool MathGeometry::findPluckerEdgeWithQuadricIntersection, double>(const MathPlucker2 & v1, const MathPlucker2 & v2, GeometryPositionType p1, GeometryPositionType p2, std::vector > & result, double tolerance)
{
return findPluckerEdgeWithQuadricIntersection, double>(v1, v2, p1, p2, result, true, tolerance);
}
#ifdef EXACT_ARITHMETIC
template<>
- inline bool MathGeometry::findPluckerEdgeWithQuadricIntersection, exact>(const MathPlucker6 & v1, const MathPlucker6 & v2, GeometryPositionType p1, GeometryPositionType p2, std::vector> & result, exact tolerance)
+ inline bool MathGeometry::findPluckerEdgeWithQuadricIntersection, exact>(const MathPlucker6 & v1, const MathPlucker6 & v2, GeometryPositionType p1, GeometryPositionType p2, std::vector > & result, exact tolerance)
{
return findPluckerEdgeWithQuadricIntersection, exact>(v1, v2, p1, p2, result, false, tolerance);
}
@@ -764,9 +764,9 @@ namespace visilib
template
inline bool MathGeometry::hitsTriangle(const GeometryRay & ray, const MathVector3_ & v0, const MathVector3_ & v1, const MathVector3_ & v2)
{
- MathVector3_ A = v0 - convert>(ray.getStart());
- MathVector3_ B = v1 - convert>(ray.getStart());
- MathVector3_ C = v2 - convert>(ray.getStart());
+ MathVector3_ A = v0 - convert >(ray.getStart());
+ MathVector3_ B = v1 - convert >(ray.getStart());
+ MathVector3_ C = v2 - convert >(ray.getStart());
S Sx; S Sy; S Sz;
int kx; int ky; int kz;
@@ -1007,7 +1007,7 @@ namespace visilib
}
template
- inline bool isBoxInsideConvexHull(const MathVector3_& AABBMin, const MathVector3_& AABBMax, const std::vector>& convexHullPlanes)
+ inline bool isBoxInsideConvexHull(const MathVector3_& AABBMin, const MathVector3_& AABBMax, const std::vector >& convexHullPlanes)
{
for (const auto& plane: convexHullPlanes)
{
diff --git a/visilib/math_plucker_6.h b/visilib/math_plucker_6.h
index 1f1050e..e621a70 100644
--- a/visilib/math_plucker_6.h
+++ b/visilib/math_plucker_6.h
@@ -64,8 +64,8 @@ namespace visilib
/**@brief Construct a plucker point from a 3D line defined by two points*/
MathPlucker6(const MathVector3d& aBegin, const MathVector3d& anEnd)
{
- MathVector3_ myBegin = convert>(aBegin);
- MathVector3_ myEnd = convert>(anEnd);
+ MathVector3_ myBegin = convert >(aBegin);
+ MathVector3_ myEnd = convert >(anEnd);
mDirection = myEnd - myBegin;
mLocation = MathVector3_::cross(myBegin, myEnd);
diff --git a/visilib/plucker_polyhedron.h b/visilib/plucker_polyhedron.h
index d6fc7bc..c6b5ad7 100644
--- a/visilib/plucker_polyhedron.h
+++ b/visilib/plucker_polyhedron.h
@@ -133,7 +133,7 @@ namespace visilib
std::vector mLines; /** < @brief The list of Plucker points (Plucker vertices and hyperplanes). */
std::vector mQuadricRelativePositions; /** < @brief The relative position of the Plucker point relative to the Plucker quadric*/
std::vector mNormalizations; /** < @brief The normalization status of each Plucker point*/
- std::vector> mFacetsDescription; /** < @brief The facet description (list of all the hyperplanes intersecting at that point) of each Plucker point mLines*/
+ std::vector > mFacetsDescription; /** < @brief The facet description (list of all the hyperplanes intersecting at that point) of each Plucker point mLines*/
};
template
diff --git a/visilib/plucker_polytope.h b/visilib/plucker_polytope.h
index e89809d..a5c421c 100644
--- a/visilib/plucker_polytope.h
+++ b/visilib/plucker_polytope.h
@@ -92,7 +92,7 @@ namespace visilib
@return: a set containing all the edges joining the vertices i and j with an intersection with the Plucker Quadric
*/
- const std::set>& getEdgesIntersectingQuadric()
+ const std::set >& getEdgesIntersectingQuadric()
{
return mEdgesIntersectingQuadric;
}
@@ -143,7 +143,7 @@ namespace visilib
@param aPlane1: first plane that will be intersected by each stabbing lines to define the first point of the extremal line in 3D
@param aPlane2: second plane that will be intersected by each stabbing lines to define the second point of the extremal line in 3D
*/
- void getExtremalStabbingLinesBackTo3D(std::vector>& aStabbingLines, const MathPlane3d& aPlane1, const MathPlane3d& aPlane2);
+ void getExtremalStabbingLinesBackTo3D(std::vector >& aStabbingLines, const MathPlane3d& aPlane1, const MathPlane3d& aPlane2);
/** @brief Add an extremal stabbing line to the polytope.
@@ -193,13 +193,13 @@ namespace visilib
private:
- std::set> mEdges; /** < @brief The edges of the polytope, each edge is defined by the indices of the two vertices supporting it*/
- std::set> mEdgesProcessed;
+ std::set > mEdges; /** < @brief The edges of the polytope, each edge is defined by the indices of the two vertices supporting it*/
+ std::set > mEdgesProcessed;
std::vector mExtremalStabbingLines; /** < @brief The ESL of the polytope, at the intersection of an edge and the Plucker Quadric*/
- std::set> mEdgesIntersectingQuadric; /** < @brief The edges containing an intersection with the Plucker Quadric.*/
+ std::set > mEdgesIntersectingQuadric; /** < @brief The edges containing an intersection with the Plucker Quadric.*/
std::unordered_set mSilhouettes; /** < @brief The set of silhouettes associated to the polytope*/
std::unordered_set mVertices; /** < @brief The indices of the vertices of the polytope*/
- std::vector> mExtremalStabbingLinesFacets;
+ std::vector > mExtremalStabbingLinesFacets;
double mRadius;
P mRepresentativeLine;
};
diff --git a/visilib/visibility_solver.h b/visilib/visibility_solver.h
index 8b2e964..c751b0d 100644
--- a/visilib/visibility_solver.h
+++ b/visilib/visibility_solver.h
@@ -41,6 +41,8 @@ namespace visilib
{
}
+ virtual ~VisibilitySolver() = default;
+
virtual VisibilityResult resolve() = 0;
void attachVisualisationDebugger(HelperVisualDebugger* aDebugger) { mDebugger = aDebugger; }