36 #ifndef JSK_RECOGNITION_UTILS_GEO_CUBE_H_ 37 #define JSK_RECOGNITION_UTILS_GEO_CUBE_H_ 41 #include <jsk_recognition_msgs/BoundingBoxArray.h> 49 Cube(
const Eigen::Vector3f& pos,
const Eigen::Quaternionf& rot);
50 Cube(
const Eigen::Vector3f& pos,
const Eigen::Quaternionf& rot,
51 const std::vector<double>& dimensions);
52 Cube(
const Eigen::Vector3f& pos,
const Eigen::Quaternionf& rot,
53 const Eigen::Vector3f& dimensions);
54 Cube(
const Eigen::Vector3f& pos,
55 const Line& line_a,
const Line& line_b,
const Line& line_c);
56 Cube(
const jsk_recognition_msgs::BoundingBox& box);
58 std::vector<Segment::Ptr>
edges();
66 jsk_recognition_msgs::BoundingBox
toROSMsg();
88 std::vector<Polygon::Ptr>
faces();
98 virtual Eigen::Vector3f
nearestPoint(
const Eigen::Vector3f&
p,
110 const Eigen::Vector3f v1,
111 const Eigen::Vector3f v2,
112 const Eigen::Vector3f v3);
118 virtual Eigen::Vector3f
buildVertex(
double i,
double j,
double k);
Vertices vertices()
returns vertices as an array of Eigen::Vectro3f. The order of the vertices is: [1, 1, 1], [-1, 1, 1], [-1, -1, 1], [1, -1, 1], [1, 1, -1], [-1, 1, -1], [-1, -1, -1], [1, -1, -1].
std::vector< Segment::Ptr > edges()
Vertices transformVertices(const Eigen::Affine3f &pose_offset)
returns vertices transformed by pose_offset.
TFSIMD_FORCE_INLINE tfScalar distance(const Vector3 &v) const
ConvexPolygon::Ptr intersectConvexPolygon(Plane &plane)
void setDimensions(const std::vector< double > &new_dimensions)
virtual Polygon::Ptr buildFace(const Eigen::Vector3f v0, const Eigen::Vector3f v1, const Eigen::Vector3f v2, const Eigen::Vector3f v3)
A helper method to build polygon from 4 vertices.
Cube(const Eigen::Vector3f &pos, const Eigen::Quaternionf &rot)
std::vector< double > dimensions_
virtual Eigen::Vector3f buildVertex(double i, double j, double k)
A helper method to build vertex from x-y-z relatiev coordinates.
std::vector< double > getDimensions() const
virtual Eigen::Vector3f nearestPoint(const Eigen::Vector3f &p, double &distance)
compute minimum distance from point p to cube surface.
jsk_recognition_msgs::BoundingBox toROSMsg()
std::vector< Eigen::Vector3f, Eigen::aligned_allocator< Eigen::Vector3f > > Vertices
std::vector< Polygon::Ptr > faces()
returns all the 6 faces as Polygon::Ptr. TODO: is it should be ConvexPolygon?
Class to represent 3-D straight line.
boost::shared_ptr< Cube > Ptr