5#ifndef __pinocchio_serialization_multibody_geometry_hpp__ 
    6#define __pinocchio_serialization_multibody_geometry_hpp__ 
    8#include <boost/serialization/vector.hpp> 
    9#include <boost/serialization/map.hpp> 
   10#include <boost/serialization/shared_ptr.hpp> 
   12#ifdef PINOCCHIO_WITH_HPP_FCL 
   13  #define HPP_FCL_SKIP_EIGEN_BOOST_SERIALIZATION 
   14  #include <hpp/fcl/serialization/collision_data.h> 
   15  #undef HPP_FCL_SKIP_EIGEN_BOOST_SERIALIZATION 
   16  #include <hpp/fcl/serialization/geometric_shapes.h> 
   17  #include <hpp/fcl/serialization/hfield.h> 
   18  #if HPP_FCL_VERSION_AT_LEAST(3, 0, 0) 
   19    #include <hpp/fcl/serialization/octree.h> 
   21  #include <hpp/fcl/serialization/convex.h> 
   22  #include <hpp/fcl/serialization/BVH_model.h> 
   25#include "pinocchio/multibody/geometry.hpp" 
   26#include "pinocchio/serialization/aligned-vector.hpp" 
   27#include "pinocchio/serialization/spatial.hpp" 
   28#include "pinocchio/serialization/fcl.hpp" 
   32  namespace serialization
 
   34    template<
class Archive>
 
   38      ar & make_nvp(
"pair", base_object<pinocchio::CollisionPair::Base>(collision_pair));
 
   41    template<
class Archive, 
typename Derived>
 
   45      ar & make_nvp(
"name", model_item.name);
 
   46      ar & make_nvp(
"parentFrame", model_item.parentFrame);
 
   47      ar & make_nvp(
"parentJoint", model_item.parentJoint);
 
   48      ar & make_nvp(
"placement", model_item.placement);
 
   51    template<
class Archive>
 
   55      ar & make_nvp(
"base", base_object<pinocchio::GeometryObject::Base>(geometry_object));
 
   56      ar & make_nvp(
"geometry", geometry_object.
geometry);
 
   57      ar & make_nvp(
"meshPath", geometry_object.
meshPath);
 
   58      ar & make_nvp(
"meshScale", geometry_object.
meshScale);
 
   60      ar & make_nvp(
"meshColor", geometry_object.
meshColor);
 
   65    template<
class Archive>
 
   66    void save_construct_data(
 
   75    template<
class Archive>
 
   76    void load_construct_data(
 
   80      ar >> make_nvp(
"base", base_obj);
 
   86    template<
class Archive>
 
   90      ar & make_nvp(
"ngeoms", geom_model.
ngeoms);
 
   96    template<
class Archive>
 
  100      ar & make_nvp(
"oMg", geom_data.oMg);
 
  104#ifdef PINOCCHIO_WITH_HPP_FCL 
  112      ar & make_nvp(
"radius", geom_data.
radius);
 
std::vector< fcl::CollisionRequest > collisionRequests
Defines what information should be computed by collision test. There is one request per pair of geome...
PairIndex collisionPairIndex
Index of the collision pair.
std::vector< Scalar > radius
Radius of the bodies, i.e. distance of the further point of the geometry model attached to the body f...
std::vector< fcl::DistanceResult > distanceResults
Vector gathering the result of the distance computation for all the collision pairs.
std::map< JointIndex, GeomIndexList > outerObjects
A list of associated collision GeometryObjects to a given joint Id.
std::vector< bool > activeCollisionPairs
Vector of collision pairs.
std::vector< fcl::CollisionResult > collisionResults
Vector gathering the result of the collision computation for all the collision pairs.
std::vector< fcl::DistanceRequest > distanceRequests
Defines what information should be computed by distance computation. There is one request per pair of...
std::map< JointIndex, GeomIndexList > innerObjects
Map over vector GeomModel::geometryObjects, indexed by joints.
GeometryObjectVector geometryObjects
Vector of GeometryObjects used for collision computations.
MatrixXi collisionPairMapping
Matrix relating the collision pair ID to a pair of two GeometryObject indexes.
Index ngeoms
The number of GeometryObjects.
CollisionPairVector collisionPairs
Vector of collision pairs.
Eigen::Vector4d meshColor
RGBA color value of the GeometryObject::geometry object.
std::string meshPath
Absolute path to the mesh file (if the geometry pointee is also a Mesh)
bool overrideMaterial
Decide whether to override the Material.
bool disableCollision
If true, no collision or distance check will be done between the Geometry and any other geometry.
Eigen::Vector3d meshScale
Scaling vector applied to the GeometryObject::geometry object.
std::string meshTexturePath
Absolute path to the mesh texture file.
CollisionGeometryPtr geometry
The FCL CollisionGeometry (might be a Mesh, a Geometry Primitive, etc.)
FrameIndex parentFrame
Index of the parent frame.
JointIndex parentJoint
Index of the parent joint.
std::string name
Name of the kinematic element.
SE3 placement
Position of kinematic element in parent joint frame.