hpp-rbprm
4.15.1
Implementation of RB-PRM planner using hpp.
|
Classes | |
struct | TrianglePoints |
Typedefs | |
typedef Eigen::Vector3d | Point |
typedef std::vector< Point > | T_Point |
typedef T_Point::const_iterator | CIT_Point |
typedef T_Point::iterator | IT_Point |
typedef const Eigen::Ref< const Point > & | CPointRef |
typedef std::vector< Eigen::Vector2d > | T_Point2D |
typedef T_Point2D::const_iterator | CIT_Point2D |
typedef hpp::fcl::BVHModel< hpp::fcl::OBBRSS > | BVHModelOB |
typedef hpp::fcl::shared_ptr< const BVHModelOB > | BVHModelOBConst_Ptr_t |
Functions | |
BVHModelOBConst_Ptr_t | GetModel (const hpp::pinocchio::CollisionObjectConstPtr_t object, hpp::pinocchio::DeviceData &deviceData) |
void | projectZ (IT_Point pointsBegin, IT_Point pointsEnd) |
T_Point | convexHull (CIT_Point pointsBegin, CIT_Point pointsEnd) |
bool | containsHull (T_Point hull, CPointRef aPoint, const double epsilon=10e-6) |
bool | contains (T_Point points, CPointRef aPoint, const double epsilon=10e-6) |
T_Point | compute2DIntersection (CIT_Point aPointsBegin, CIT_Point aPointsEnd, CIT_Point bPointsBegin, CIT_Point bPointsEnd) |
T_Point | compute2DIntersection (T_Point subPolygon, T_Point clipPolygon) |
T_Point | compute3DIntersection (T_Point subPolygon, T_Point clipPolygon) |
double | isLeft (CPointRef lA, CPointRef lB, CPointRef p2) |
CIT_Point | leftMost (CIT_Point pointsBegin, CIT_Point pointsEnd) |
double | area (CIT_Point pointsBegin, CIT_Point pointsEnd) |
area compute the area of a 2D polygon More... | |
Point | centerPlanar (T_Point points, const hpp::fcl::Vec3f &n, double t) |
center compute the center of the polygon (planar) More... | |
Point | center (CIT_Point pointsBegin, CIT_Point pointsEnd) |
center compute the center using average method More... | |
Point | centroid (CIT_Point pointsBegin, CIT_Point pointsEnd, double &area) |
double | distanceToPlane (const hpp::fcl::Vec3f &n, double t, const hpp::fcl::Vec3f &v) |
distanceToPlane Distance point plan More... | |
double | distanceToPlane (CPointRef point, CPointRef Pn, CPointRef P0) |
distanceToPlane compute the min distance from a point to an (infinite) plan More... | |
Point | projectPointOnPlane (CPointRef point, CPointRef Pn, CPointRef P0) |
projectPointOnPlane othrogonal projection of a given point on the plan More... | |
double | projectPointInsidePlan (T_Point plan, CPointRef point, CPointRef Pn, CPointRef P0, Eigen::Ref< Point > res) |
projectPointInsidePlan project a point inside on the given plan, inside the given convex hull More... | |
void | computeTrianglePlaneDistance (hpp::fcl::Vec3f *tri_point, const hpp::fcl::Vec3f &n, double t, hpp::fcl::Vec3f *distance, unsigned int *num_penetrating_points) |
computeTrianglePlaneDistance compute distance between each vertice of the triangle and a plane More... | |
bool | insideTriangle (const hpp::fcl::Vec3f &a, const hpp::fcl::Vec3f &b, const hpp::fcl::Vec3f &c, const hpp::fcl::Vec3f &p) |
insideTriangle check if a point is inside a triangle More... | |
void | intersect3DGeoms (BVHModelOBConst_Ptr_t model1, BVHModelOBConst_Ptr_t model2, hpp::fcl::CollisionResult result) |
intersectGeoms compute intersection between 2 OBBRSS geometries More... | |
T_Point | intersectTriangles (hpp::fcl::Vec3f *tri, hpp::fcl::Vec3f *tri2, std::ostringstream *ss=0) |
intersectPolygonePlane Compute the intersection of a polygon and a plane The returned point belongs to the surfaces of More... | |
T_Point | intersectSegmentPlane (Point s0, Point s1, Eigen::Vector3d pn, Point p0) |
intersectSegmentPlane compute the intersection between a segment and a plane (infinite) More... | |
T_Point | intersectPolygonePlane (BVHModelOBConst_Ptr_t polygone, BVHModelOBConst_Ptr_t plane, Eigen::Ref< Point > Pn) |
intersectPolygonePlane compute the intersection between a polygone and an (infinite) plane More... | |
T_Point | convertBVH (BVHModelOBConst_Ptr_t obj) |
void | computePlanEquation (BVHModelOBConst_Ptr_t plane, Eigen::Ref< Point > Pn, Eigen::Ref< Point > P0) |
computePlanEquation compute a plan normal and a point in the plan from the first triangle of a BVHModel More... | |
Variables | |
const double | EPSILON = 1e-5 |
const double | ZJUMP = 0.001 |
typedef hpp::fcl::BVHModel<hpp::fcl::OBBRSS> geom::BVHModelOB |
typedef hpp::fcl::shared_ptr<const BVHModelOB> geom::BVHModelOBConst_Ptr_t |
typedef T_Point::const_iterator geom::CIT_Point |
typedef T_Point2D::const_iterator geom::CIT_Point2D |
typedef const Eigen::Ref<const Point>& geom::CPointRef |
typedef T_Point::iterator geom::IT_Point |
typedef Eigen::Vector3d geom::Point |
typedef std::vector<Point> geom::T_Point |
typedef std::vector<Eigen::Vector2d> geom::T_Point2D |
area compute the area of a 2D polygon
pointsBegin | |
pointsEnd |
center compute the center using average method
points | list of points of the polygon |
center compute the center of the polygon (planar)
pointsBegin | |
PointsEnd | |
n | normal of the plan which contain the polygon |
t |
T_Point geom::compute2DIntersection | ( | CIT_Point | aPointsBegin, |
CIT_Point | aPointsEnd, | ||
CIT_Point | bPointsBegin, | ||
CIT_Point | bPointsEnd | ||
) |
Computes whether two convex polygons intersect
aPointsBegin,aPointsEnd | iterators to first and last points of the first polygon |
bPointsBegin,bPointsEnd | iterators to first and last points of the second polygon |
Computes whether two convex polygons intersect
subPolygon | list of vertices of the first polygon |
clipPolygon | list of vertices of the second polygon |
Computes whether two convex polygons intersect
subPolygon | list of vertices of the first polygon |
clipPolygon | list of vertices of the second polygon |
void geom::computePlanEquation | ( | BVHModelOBConst_Ptr_t | plane, |
Eigen::Ref< Point > | Pn, | ||
Eigen::Ref< Point > | P0 | ||
) |
computePlanEquation compute a plan normal and a point in the plan from the first triangle of a BVHModel
plane | |
Pn | the normal of the plan |
P0 | a point in the plan |
void geom::computeTrianglePlaneDistance | ( | hpp::fcl::Vec3f * | tri_point, |
const hpp::fcl::Vec3f & | n, | ||
double | t, | ||
hpp::fcl::Vec3f * | distance, | ||
unsigned int * | num_penetrating_points | ||
) |
computeTrianglePlaneDistance compute distance between each vertice of the triangle and a plane
tri_point | |
n | plan's normal |
t | plan's offset |
distance | distance for vertice i |
num_penetrating_points | number of point with negative distance |
Test whether a 2d point belongs to a 2d convex hull determined by a list of unordered points
points | list of points |
aPoint | The point for which to test belonging the the convex hull |
Test whether a 2d point belongs to a 2d convex hull source http://softsurfer.com/Archive/algorithm_0103/algorithm_0103.htm#wn_PinPolygon()
pointsBegin,list | of points of the convex hull. ATTENTION: first point is included twice in representation (it is also the last point). |
aPoint | The point for which to test belonging the the convex hull |
T_Point geom::convertBVH | ( | BVHModelOBConst_Ptr_t | obj | ) |
Implementation of the gift wrapping algorithm to determine the 2D projection of the convex hull of a set of points Dimension can be greater than two, in which case the points will be projected on the z = 0 plane and whether a point belongs to it or not.
pointsBegin,pointsEnd | iterators to first and last points of a set |
double geom::distanceToPlane | ( | const hpp::fcl::Vec3f & | n, |
double | t, | ||
const hpp::fcl::Vec3f & | v | ||
) |
distanceToPlane Distance point plan
n | plan's normal |
t | plan's offset |
v | point |
distanceToPlane compute the min distance from a point to an (infinite) plan
point | the point |
Pn | normal of the plan |
P0 | a point in the plan |
BVHModelOBConst_Ptr_t geom::GetModel | ( | const hpp::pinocchio::CollisionObjectConstPtr_t | object, |
hpp::pinocchio::DeviceData & | deviceData | ||
) |
bool geom::insideTriangle | ( | const hpp::fcl::Vec3f & | a, |
const hpp::fcl::Vec3f & | b, | ||
const hpp::fcl::Vec3f & | c, | ||
const hpp::fcl::Vec3f & | p | ||
) |
insideTriangle check if a point is inside a triangle
a | |
b | |
c | |
p | the point |
void geom::intersect3DGeoms | ( | BVHModelOBConst_Ptr_t | model1, |
BVHModelOBConst_Ptr_t | model2, | ||
hpp::fcl::CollisionResult | result | ||
) |
intersectGeoms compute intersection between 2 OBBRSS geometries
model1 | |
model2 | |
result | the collision report between the 2 geometries |
T_Point geom::intersectPolygonePlane | ( | BVHModelOBConst_Ptr_t | polygone, |
BVHModelOBConst_Ptr_t | plane, | ||
Eigen::Ref< Point > | Pn | ||
) |
intersectPolygonePlane compute the intersection between a polygone and an (infinite) plane
polygone | |
plane | a model which first triangle will define the infinite plan used |
pn | : output, normal of the plan |
intersectSegmentPlane compute the intersection between a segment and a plane (infinite)
s0 | first point of the segment |
s1 | last point of the segment |
n | normal of the plan |
p0 | a point in the plan |
T_Point geom::intersectTriangles | ( | hpp::fcl::Vec3f * | tri, |
hpp::fcl::Vec3f * | tri2, | ||
std::ostringstream * | ss = 0 |
||
) |
intersectPolygonePlane Compute the intersection of a polygon and a plane The returned point belongs to the surfaces of
model2 | corresponding to the plan equation. |
polygone | the polygon |
model2 | the meshs containing the plane |
n | normal of the plan |
t | offset of the plan |
useT | if false, all the plan with a normal n are used, if true we also check that t is equal |
result | intersectTriangles compute intersection between 2 triangles (not commutative) |
tri | first triangle MUST BE DIMENSION 3 |
tri2 | second triangle (used to compute the plane, the returned point belong to this triangle |
ss |
isLeft(): tests if a point is Left|On|Right of an infinite line.
lA | 1st point of the line |
lB | 2nd point of the line |
p2 | point to test |
leftMost(): returns the point most "on the left" for a given set
pointsBegin,pointsEnd | iterators to first and last points of a set |
double geom::projectPointInsidePlan | ( | T_Point | plan, |
CPointRef | point, | ||
CPointRef | Pn, | ||
CPointRef | P0, | ||
Eigen::Ref< Point > | res | ||
) |
projectPointInsidePlan project a point inside on the given plan, inside the given convex hull
plan | convex hull of points |
point | original point |
Pn | normal of the plan |
P0 | a point in the plan |
res | the resulting projection |
projectPointOnPlane othrogonal projection of a given point on the plan
point | point to project |
Pn | normal of the plan |
P0 | a point in the plan |
const double geom::EPSILON = 1e-5 |
const double geom::ZJUMP = 0.001 |