Commit 718d1d26 authored by Guilhem Saurel's avatar Guilhem Saurel
Browse files

Export symbols.

parent d4571ba0
......@@ -51,7 +51,7 @@ namespace fcl
/// @brief Node structure encoding the information required for traversal.
class TraversalNodeBase
class HPP_FCL_DLLAPI TraversalNodeBase
{
public:
TraversalNodeBase () : enable_statistics(false) {}
......@@ -101,7 +101,7 @@ public:
/// @{
/// @brief Node structure encoding the information required for collision traversal.
class CollisionTraversalNodeBase : public TraversalNodeBase
class HPP_FCL_DLLAPI CollisionTraversalNodeBase : public TraversalNodeBase
{
public:
CollisionTraversalNodeBase (const CollisionRequest& request_) :
......@@ -144,7 +144,7 @@ public:
/// @{
/// @brief Node structure encoding the information required for distance traversal.
class DistanceTraversalNodeBase : public TraversalNodeBase
class HPP_FCL_DLLAPI DistanceTraversalNodeBase : public TraversalNodeBase
{
public:
DistanceTraversalNodeBase() : result(NULL) {}
......
......@@ -60,7 +60,7 @@ namespace fcl
/// @brief Traversal node for collision between BVH and shape
template<typename BV, typename S>
class BVHShapeCollisionTraversalNode : public CollisionTraversalNodeBase
class HPP_FCL_DLLAPI BVHShapeCollisionTraversalNode : public CollisionTraversalNodeBase
{
public:
BVHShapeCollisionTraversalNode(const CollisionRequest& request) :
......@@ -103,7 +103,7 @@ public:
/// @brief Traversal node for collision between shape and BVH
template<typename S, typename BV>
class ShapeBVHCollisionTraversalNode : public CollisionTraversalNodeBase
class HPP_FCL_DLLAPI ShapeBVHCollisionTraversalNode : public CollisionTraversalNodeBase
{
public:
ShapeBVHCollisionTraversalNode(const CollisionRequest& request) :
......@@ -154,7 +154,7 @@ public:
/// @brief Traversal node for collision between mesh and shape
template<typename BV, typename S,
int _Options = RelativeTransformationIsIdentity>
class MeshShapeCollisionTraversalNode : public BVHShapeCollisionTraversalNode<BV, S>
class HPP_FCL_DLLAPI MeshShapeCollisionTraversalNode : public BVHShapeCollisionTraversalNode<BV, S>
{
public:
enum {
......@@ -262,7 +262,7 @@ public:
/// @brief Traversal node for collision between shape and mesh
template<typename S, typename BV,
int _Options = RelativeTransformationIsIdentity>
class ShapeMeshCollisionTraversalNode : public ShapeBVHCollisionTraversalNode<S, BV>
class HPP_FCL_DLLAPI ShapeMeshCollisionTraversalNode : public ShapeBVHCollisionTraversalNode<S, BV>
{
public:
enum {
......@@ -373,7 +373,7 @@ public:
/// @brief Traversal node for distance computation between BVH and shape
template<typename BV, typename S>
class BVHShapeDistanceTraversalNode : public DistanceTraversalNodeBase
class HPP_FCL_DLLAPI BVHShapeDistanceTraversalNode : public DistanceTraversalNodeBase
{
public:
BVHShapeDistanceTraversalNode() : DistanceTraversalNodeBase()
......@@ -421,7 +421,7 @@ public:
/// @brief Traversal node for distance computation between shape and BVH
template<typename S, typename BV>
class ShapeBVHDistanceTraversalNode : public DistanceTraversalNodeBase
class HPP_FCL_DLLAPI ShapeBVHDistanceTraversalNode : public DistanceTraversalNodeBase
{
public:
ShapeBVHDistanceTraversalNode() : DistanceTraversalNodeBase()
......@@ -470,7 +470,7 @@ public:
/// @brief Traversal node for distance between mesh and shape
template<typename BV, typename S>
class MeshShapeDistanceTraversalNode : public BVHShapeDistanceTraversalNode<BV, S>
class HPP_FCL_DLLAPI MeshShapeDistanceTraversalNode : public BVHShapeDistanceTraversalNode<BV, S>
{
public:
MeshShapeDistanceTraversalNode() : BVHShapeDistanceTraversalNode<BV, S>()
......@@ -595,7 +595,7 @@ static inline void distancePreprocessOrientedNode(const BVHModel<BV>* model1,
/// @brief Traversal node for distance between mesh and shape, when mesh BVH is one of the oriented node (RSS, kIOS, OBBRSS)
template<typename S>
class MeshShapeDistanceTraversalNodeRSS : public MeshShapeDistanceTraversalNode<RSS, S>
class HPP_FCL_DLLAPI MeshShapeDistanceTraversalNodeRSS : public MeshShapeDistanceTraversalNode<RSS, S>
{
public:
MeshShapeDistanceTraversalNodeRSS() : MeshShapeDistanceTraversalNode<RSS, S>()
......@@ -627,7 +627,7 @@ public:
template<typename S>
class MeshShapeDistanceTraversalNodekIOS : public MeshShapeDistanceTraversalNode<kIOS, S>
class HPP_FCL_DLLAPI MeshShapeDistanceTraversalNodekIOS : public MeshShapeDistanceTraversalNode<kIOS, S>
{
public:
MeshShapeDistanceTraversalNodekIOS() : MeshShapeDistanceTraversalNode<kIOS, S>()
......@@ -659,7 +659,7 @@ public:
};
template<typename S>
class MeshShapeDistanceTraversalNodeOBBRSS : public MeshShapeDistanceTraversalNode<OBBRSS, S>
class HPP_FCL_DLLAPI MeshShapeDistanceTraversalNodeOBBRSS : public MeshShapeDistanceTraversalNode<OBBRSS, S>
{
public:
MeshShapeDistanceTraversalNodeOBBRSS() : MeshShapeDistanceTraversalNode<OBBRSS, S>()
......@@ -693,7 +693,7 @@ public:
/// @brief Traversal node for distance between shape and mesh
template<typename S, typename BV>
class ShapeMeshDistanceTraversalNode : public ShapeBVHDistanceTraversalNode<S, BV>
class HPP_FCL_DLLAPI ShapeMeshDistanceTraversalNode : public ShapeBVHDistanceTraversalNode<S, BV>
{
public:
ShapeMeshDistanceTraversalNode() : ShapeBVHDistanceTraversalNode<S, BV>()
......@@ -752,7 +752,7 @@ public:
/// @brief Traversal node for distance between shape and mesh, when mesh BVH is one of the oriented node (RSS, kIOS, OBBRSS)
template<typename S>
class ShapeMeshDistanceTraversalNodeRSS : public ShapeMeshDistanceTraversalNode<S, RSS>
class HPP_FCL_DLLAPI ShapeMeshDistanceTraversalNodeRSS : public ShapeMeshDistanceTraversalNode<S, RSS>
{
public:
ShapeMeshDistanceTraversalNodeRSS() : ShapeMeshDistanceTraversalNode<S, RSS>()
......@@ -784,7 +784,7 @@ public:
};
template<typename S>
class ShapeMeshDistanceTraversalNodekIOS : public ShapeMeshDistanceTraversalNode<S, kIOS>
class HPP_FCL_DLLAPI ShapeMeshDistanceTraversalNodekIOS : public ShapeMeshDistanceTraversalNode<S, kIOS>
{
public:
ShapeMeshDistanceTraversalNodekIOS() : ShapeMeshDistanceTraversalNode<S, kIOS>()
......@@ -816,7 +816,7 @@ public:
};
template<typename S>
class ShapeMeshDistanceTraversalNodeOBBRSS : public ShapeMeshDistanceTraversalNode<S, OBBRSS>
class HPP_FCL_DLLAPI ShapeMeshDistanceTraversalNodeOBBRSS : public ShapeMeshDistanceTraversalNode<S, OBBRSS>
{
public:
ShapeMeshDistanceTraversalNodeOBBRSS() : ShapeMeshDistanceTraversalNode<S, OBBRSS>()
......
......@@ -66,7 +66,7 @@ namespace fcl
/// @brief Traversal node for collision between BVH models
template<typename BV>
class BVHCollisionTraversalNode : public CollisionTraversalNodeBase
class HPP_FCL_DLLAPI BVHCollisionTraversalNode : public CollisionTraversalNodeBase
{
public:
BVHCollisionTraversalNode(const CollisionRequest& request) :
......@@ -143,7 +143,7 @@ public:
/// @brief Traversal node for collision between two meshes
template<typename BV, int _Options = RelativeTransformationIsIdentity>
class MeshCollisionTraversalNode : public BVHCollisionTraversalNode<BV>
class HPP_FCL_DLLAPI MeshCollisionTraversalNode : public BVHCollisionTraversalNode<BV>
{
public:
enum {
......@@ -341,7 +341,7 @@ namespace details
/// @brief Traversal node for distance computation between BVH models
template<typename BV>
class BVHDistanceTraversalNode : public DistanceTraversalNodeBase
class HPP_FCL_DLLAPI BVHDistanceTraversalNode : public DistanceTraversalNodeBase
{
public:
BVHDistanceTraversalNode() : DistanceTraversalNodeBase()
......@@ -418,7 +418,7 @@ public:
/// @brief Traversal node for distance computation between two meshes
template<typename BV, int _Options = RelativeTransformationIsIdentity>
class MeshDistanceTraversalNode : public BVHDistanceTraversalNode<BV>
class HPP_FCL_DLLAPI MeshDistanceTraversalNode : public BVHDistanceTraversalNode<BV>
{
public:
enum {
......
......@@ -53,7 +53,7 @@ namespace fcl
{
/// @brief Algorithms for collision related with octree
class OcTreeSolver
class HPP_FCL_DLLAPI OcTreeSolver
{
private:
const GJKSolver* solver;
......@@ -892,7 +892,7 @@ private:
/// @{
/// @brief Traversal node for octree collision
class OcTreeCollisionTraversalNode : public CollisionTraversalNodeBase
class HPP_FCL_DLLAPI OcTreeCollisionTraversalNode : public CollisionTraversalNodeBase
{
public:
OcTreeCollisionTraversalNode(const CollisionRequest& request) :
......@@ -929,7 +929,7 @@ public:
/// @brief Traversal node for shape-octree collision
template<typename S>
class ShapeOcTreeCollisionTraversalNode : public CollisionTraversalNodeBase
class HPP_FCL_DLLAPI ShapeOcTreeCollisionTraversalNode : public CollisionTraversalNodeBase
{
public:
ShapeOcTreeCollisionTraversalNode(const CollisionRequest& request) :
......@@ -967,7 +967,7 @@ public:
/// @brief Traversal node for octree-shape collision
template<typename S>
class OcTreeShapeCollisionTraversalNode : public CollisionTraversalNodeBase
class HPP_FCL_DLLAPI OcTreeShapeCollisionTraversalNode : public CollisionTraversalNodeBase
{
public:
OcTreeShapeCollisionTraversalNode(const CollisionRequest& request) :
......@@ -1004,7 +1004,7 @@ public:
/// @brief Traversal node for mesh-octree collision
template<typename BV>
class MeshOcTreeCollisionTraversalNode : public CollisionTraversalNodeBase
class HPP_FCL_DLLAPI MeshOcTreeCollisionTraversalNode : public CollisionTraversalNodeBase
{
public:
MeshOcTreeCollisionTraversalNode(const CollisionRequest& request) :
......@@ -1041,7 +1041,7 @@ public:
/// @brief Traversal node for octree-mesh collision
template<typename BV>
class OcTreeMeshCollisionTraversalNode : public CollisionTraversalNodeBase
class HPP_FCL_DLLAPI OcTreeMeshCollisionTraversalNode : public CollisionTraversalNodeBase
{
public:
OcTreeMeshCollisionTraversalNode(const CollisionRequest& request) :
......@@ -1082,7 +1082,7 @@ public:
/// @{
/// @brief Traversal node for octree distance
class OcTreeDistanceTraversalNode : public DistanceTraversalNodeBase
class HPP_FCL_DLLAPI OcTreeDistanceTraversalNode : public DistanceTraversalNodeBase
{
public:
OcTreeDistanceTraversalNode()
......@@ -1119,7 +1119,7 @@ public:
/// @brief Traversal node for shape-octree distance
template<typename S>
class ShapeOcTreeDistanceTraversalNode : public DistanceTraversalNodeBase
class HPP_FCL_DLLAPI ShapeOcTreeDistanceTraversalNode : public DistanceTraversalNodeBase
{
public:
ShapeOcTreeDistanceTraversalNode()
......@@ -1148,7 +1148,7 @@ public:
/// @brief Traversal node for octree-shape distance
template<typename S>
class OcTreeShapeDistanceTraversalNode : public DistanceTraversalNodeBase
class HPP_FCL_DLLAPI OcTreeShapeDistanceTraversalNode : public DistanceTraversalNodeBase
{
public:
OcTreeShapeDistanceTraversalNode()
......@@ -1177,7 +1177,7 @@ public:
/// @brief Traversal node for mesh-octree distance
template<typename BV>
class MeshOcTreeDistanceTraversalNode : public DistanceTraversalNodeBase
class HPP_FCL_DLLAPI MeshOcTreeDistanceTraversalNode : public DistanceTraversalNodeBase
{
public:
MeshOcTreeDistanceTraversalNode()
......@@ -1207,7 +1207,7 @@ public:
/// @brief Traversal node for octree-mesh distance
template<typename BV>
class OcTreeMeshDistanceTraversalNode : public DistanceTraversalNodeBase
class HPP_FCL_DLLAPI OcTreeMeshDistanceTraversalNode : public DistanceTraversalNodeBase
{
public:
OcTreeMeshDistanceTraversalNode()
......
......@@ -56,7 +56,7 @@ namespace fcl
/// @brief Traversal node for collision between two shapes
template<typename S1, typename S2>
class ShapeCollisionTraversalNode : public CollisionTraversalNodeBase
class HPP_FCL_DLLAPI ShapeCollisionTraversalNode : public CollisionTraversalNodeBase
{
public:
ShapeCollisionTraversalNode(const CollisionRequest& request) :
......@@ -126,7 +126,7 @@ public:
/// @brief Traversal node for distance between two shapes
template<typename S1, typename S2>
class ShapeDistanceTraversalNode : public DistanceTraversalNodeBase
class HPP_FCL_DLLAPI ShapeDistanceTraversalNode : public DistanceTraversalNodeBase
{
public:
ShapeDistanceTraversalNode() : DistanceTraversalNodeBase()
......
......@@ -56,7 +56,7 @@ static inline std::ostream& operator << (std::ostream& o, const Quaternion3f& q)
}
/// @brief Simple transform class used locally by InterpMotion
class Transform3f
class HPP_FCL_DLLAPI Transform3f
{
/// @brief Matrix cache
Matrix3f R;
......
......@@ -54,13 +54,13 @@ namespace fcl
namespace internal
{
struct TriangleAndVertices
struct HPP_FCL_DLLAPI TriangleAndVertices
{
std::vector <fcl::Vec3f> vertices_;
std::vector <fcl::Triangle> triangles_;
};
struct Loader {
struct HPP_FCL_DLLAPI Loader {
Loader ();
~Loader ();
......
......@@ -49,7 +49,7 @@ namespace hpp
namespace fcl {
/// Base class for building polyhedron from files.
/// This class builds a new object for each file.
class MeshLoader
class HPP_FCL_DLLAPI MeshLoader
{
public:
virtual ~MeshLoader() {}
......@@ -71,7 +71,7 @@ namespace fcl {
/// This class builds a new object for each different file.
/// If method CachedMeshLoader::load is called twice with the same arguments,
/// the second call returns the result of the first call.
class CachedMeshLoader : public MeshLoader
class HPP_FCL_DLLAPI CachedMeshLoader : public MeshLoader
{
public:
virtual ~CachedMeshLoader() {}
......@@ -81,7 +81,7 @@ namespace fcl {
virtual BVHModelPtr_t load (const std::string& filename,
const Vec3f& scale);
struct Key {
struct HPP_FCL_DLLAPI Key {
std::string filename;
Vec3f scale;
......
......@@ -59,7 +59,7 @@ Vec3f getSupport(const ShapeBase* shape, const Vec3f& dir, bool dirIsNormalized,
/// easily optimized computing once the triangle shapes[1] into frame0
///
/// @note The Minkowski difference is expressed in the frame of the first shape.
struct MinkowskiDiff
struct HPP_FCL_DLLAPI MinkowskiDiff
{
/// @brief points to two shapes
const ShapeBase* shapes[2];
......@@ -114,9 +114,9 @@ struct MinkowskiDiff
/// @brief class for GJK algorithm
///
/// @note The computations are performed in the frame of the first shape.
struct GJK
struct HPP_FCL_DLLAPI GJK
{
struct SimplexV
struct HPP_FCL_DLLAPI SimplexV
{
/// @brief support vector for shape 0 and 1.
Vec3f w0, w1;
......@@ -126,7 +126,7 @@ struct GJK
typedef unsigned char vertex_id_t;
struct Simplex
struct HPP_FCL_DLLAPI Simplex
{
/// @brief simplex vertex
SimplexV* vertex[4];
......@@ -254,10 +254,10 @@ static const FCL_REAL EPA_EPS = 0.000001;
static const size_t EPA_MAX_ITERATIONS = 255;
/// @brief class for EPA algorithm
struct EPA
struct HPP_FCL_DLLAPI EPA
{
typedef GJK::SimplexV SimplexV;
struct SimplexF
struct HPP_FCL_DLLAPI SimplexF
{
Vec3f n;
FCL_REAL d;
......@@ -270,7 +270,7 @@ struct EPA
SimplexF () : n(Vec3f::Zero()) {};
};
struct SimplexList
struct HPP_FCL_DLLAPI SimplexList
{
SimplexF* root;
size_t count;
......@@ -299,7 +299,7 @@ struct EPA
fb->e[eb] = ea; fb->f[eb] = fa;
}
struct SimplexHorizon
struct HPP_FCL_DLLAPI SimplexHorizon
{
SimplexF* cf; // current face in the horizon
SimplexF* ff; // first face in the horizon
......
......@@ -50,7 +50,7 @@ namespace fcl
/// @brief collision and distance solver based on GJK algorithm implemented in fcl (rewritten the code from the GJK in bullet)
struct GJKSolver
struct HPP_FCL_DLLAPI GJKSolver
{
/// @brief intersection checking between two shapes
template<typename S1, typename S2>
......
......@@ -53,7 +53,7 @@ namespace fcl
{
/// @brief Octree is one type of collision geometry which can encode uncertainty information in the sensor data.
class OcTree : public CollisionGeometry
class HPP_FCL_DLLAPI OcTree : public CollisionGeometry
{
private:
boost::shared_ptr<const octomap::OcTree> tree;
......
......@@ -62,6 +62,8 @@
#include <boost/noncopyable.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <hpp/fcl/config.hh>
namespace hpp
{
namespace fcl
......@@ -107,12 +109,12 @@ namespace tools
/// external profiling tools in that it allows the user to count
/// time spent in various bits of code (sub-function granularity)
/// or count how many times certain pieces of code are executed.
class Profiler : private boost::noncopyable
class HPP_FCL_DLLAPI Profiler : private boost::noncopyable
{
public:
/// @brief This instance will call Profiler::begin() when constructed and Profiler::end() when it goes out of scope.
class ScopedBlock
class HPP_FCL_DLLAPI ScopedBlock
{
public:
/// @brief Start counting time for the block named @e name of the profiler @e prof
......@@ -134,7 +136,7 @@ public:
/// @brief This instance will call Profiler::start() when constructed and Profiler::stop() when it goes out of scope.
/// If the profiler was already started, this block's constructor and destructor take no action
class ScopedStart
class HPP_FCL_DLLAPI ScopedStart
{
public:
......@@ -266,7 +268,7 @@ public:
private:
/// @brief Information about time spent in a section of the code
struct TimeInfo
struct HPP_FCL_DLLAPI TimeInfo
{
TimeInfo(void) : total(0, 0, 0, 0), shortest(boost::posix_time::pos_infin), longest(boost::posix_time::neg_infin), parts(0)
{
......@@ -307,7 +309,7 @@ private:
};
/// @brief Information maintained about averaged values
struct AvgInfo
struct HPP_FCL_DLLAPI AvgInfo
{
/// @brief The sum of the values to average
double total;
......@@ -320,7 +322,7 @@ private:
};
/// @brief Information to be maintained for each thread
struct PerThread
struct HPP_FCL_DLLAPI PerThread
{
/// @brief The stored events
std::map<std::string, unsigned long int> events;
......@@ -358,11 +360,11 @@ namespace fcl
namespace tools
{
class Profiler
class HPP_FCL_DLLAPI Profiler
{
public:
class ScopedBlock
class HPP_FCL_DLLAPI ScopedBlock
{
public:
......@@ -375,7 +377,7 @@ public:
}
};
class ScopedStart
class HPP_FCL_DLLAPI ScopedStart
{
public:
......
......@@ -50,7 +50,7 @@ namespace fcl
/// @tparam PolygonT the polygon class. It must have method \c size() and
/// \c operator[](int i)
template <typename PolygonT>
class Convex : public ConvexBase
class HPP_FCL_DLLAPI Convex : public ConvexBase
{
public:
/// @brief Construct an uninitialized convex object
......
......@@ -51,7 +51,7 @@ namespace fcl
{
/// @brief Base class for all basic geometric shapes
class ShapeBase : public CollisionGeometry
class HPP_FCL_DLLAPI ShapeBase : public CollisionGeometry
{
public:
ShapeBase() {}
......@@ -67,7 +67,7 @@ public:
/// @{
/// @brief Triangle stores the points instead of only indices of points
class TriangleP : public ShapeBase
class HPP_FCL_DLLAPI TriangleP : public ShapeBase
{
public:
TriangleP(const Vec3f& a_, const Vec3f& b_, const Vec3f& c_) : ShapeBase(), a(a_), b(b_), c(c_)
......@@ -83,7 +83,7 @@ public:
};
/// @brief Center at zero point, axis aligned box
class Box : public ShapeBase
class HPP_FCL_DLLAPI Box : public ShapeBase
{
public:
Box(FCL_REAL x, FCL_REAL y, FCL_REAL z) : ShapeBase(), halfSide(x/2, y/2, z/2)
......@@ -119,7 +119,7 @@ public:
};
/// @brief Center at zero point sphere
class Sphere : public ShapeBase
class HPP_FCL_DLLAPI Sphere : public ShapeBase
{
public:
Sphere(FCL_REAL radius_) : ShapeBase(), radius(radius_)
......@@ -151,7 +151,7 @@ public:
/// It is \f$ { x \in \mathcal{R}^3, d(x, AB) < radius } \f$
/// where \f$ d(x, AB) \f$ is the distance between the point x and the capsule
/// segment AB, with \f$ A = (0,0,-halfLength), B = (0,0,halfLength) \f$.
class Capsule : public ShapeBase
class HPP_FCL_DLLAPI Capsule : public ShapeBase
{
public:
Capsule(FCL_REAL radius_, FCL_REAL lz_) : ShapeBase(), radius(radius_)
......@@ -196,7 +196,7 @@ public:
/// @brief Cone
/// The base of the cone is at \f$ z = - halfLength \f$ and the top is at
/// \f$ z = halfLength \f$.
class Cone : public ShapeBase
class HPP_FCL_DLLAPI Cone : public ShapeBase
{
public:
Cone(FCL_REAL radius_, FCL_REAL lz_) : ShapeBase(), radius(radius_)
......@@ -240,7 +240,7 @@ public:
/// @brief Cylinder along Z axis.
/// The cylinder is defined at its centroid.
class Cylinder : public ShapeBase
class HPP_FCL_DLLAPI Cylinder : public ShapeBase
{
public:
Cylinder(FCL_REAL radius_, FCL_REAL lz_) : ShapeBase(), radius(radius_)
......@@ -278,7 +278,7 @@ public:
/// @brief Base for convex polytope.
/// @note Inherited classes are responsible for filling ConvexBase::neighbors;
class ConvexBase : public ShapeBase
class HPP_FCL_DLLAPI ConvexBase : public ShapeBase
{
public:
/// @brief Build a convex hull based on Qhull library
......@@ -308,7 +308,7 @@ public:
Vec3f* points;
int num_points;
struct Neighbors
struct HPP_FCL_DLLAPI Neighbors
{
unsigned char count_;
unsigned int* n_;
......@@ -354,7 +354,7 @@ template <typename PolygonT> class Convex;
/// @brief Half Space: this is equivalent to the Plane in ODE. The separation plane is defined as n * x = d;
/// Points in the negative side of the separation plane (i.e. {x | n * x < d}) are inside the half space and points
/// in the positive side of the separation plane (i.e. {x | n * x > d}) are outside the half space
class Halfspace : public ShapeBase
class HPP_FCL_DLLAPI Halfspace : public ShapeBase
{
public:
/// @brief Construct a half space with normal direction and offset
......@@ -402,7 +402,7 @@ protected:
};
/// @brief Infinite plane
class Plane : public ShapeBase
class HPP_FCL_DLLAPI Plane : public ShapeBase
{
public:
/// @brief Construct a plane with normal direction and offset
......
......@@ -324,7 +324,7 @@ namespace internal
}
template <int ib, int jb = (ib+1)%3, int kb = (ib+2)%3 >
struct obbDisjoint_check_Ai_cross_Bi
struct HPP_FCL_LOCAL obbDisjoint_check_Ai_cross_Bi
{
static inline bool run (int ia, int ja, int ka,
const Matrix3f& B, const Vec3f& T, const Vec3f& a, const Vec3f& b,
......