hpp-fcl: include/hpp/fcl/shape/convex.h Source File

hpp-fcl 1.7.7 HPP fork of FCL -- The Flexible Collision Library

convex.h
Go to the documentation of this file.
1 /*
2 * Software License Agreement (BSD License)
3 *
4 * Copyright (c) 2011-2014, Willow Garage, Inc.
5 * Copyright (c) 2014-2015, Open Source Robotics Foundation
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * * Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 * * Redistributions in binary form must reproduce the above
15 * copyright notice, this list of conditions and the following
16 * disclaimer in the documentation and/or other materials provided
17 * with the distribution.
18 * * Neither the name of Open Source Robotics Foundation nor the names of its
19 * contributors may be used to endorse or promote products derived
20 * from this software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 * POSSIBILITY OF SUCH DAMAGE.
34 */
35
39 #ifndef HPP_FCL_SHAPE_CONVEX_H
40 #define HPP_FCL_SHAPE_CONVEX_H
41
42 #include <hpp/fcl/shape/geometric_shapes.h>
43
44 namespace hpp
45 {
46 namespace fcl
47 {
48
52 template <typename PolygonT>
53 class Convex : public ConvexBase
54 {
55 public:
57 Convex () : ConvexBase(), polygons(NULL), num_polygons(0) {}
58
67 Convex(bool ownStorage,
68 Vec3f* points_, int num_points_,
69 PolygonT* polygons_, int num_polygons_);
70
73 Convex(const Convex& other);
74
75 ~Convex();
76
80 PolygonT* polygons;
81 int num_polygons;
82
84 Matrix3f computeMomentofInertia() const;
85
86 Vec3f computeCOM() const;
87
88 FCL_REAL computeVolume() const;
89
90 protected:
91 void fillNeighbors();
92 };
93
94 }
95
96 } // namespace hpp
97
98 #include <hpp/fcl/shape/details/convex.hxx>
99
100 #endif
hpp::fcl::ConvexBase
Base for convex polytope.
Definition: geometric_shapes.h:356
hpp::fcl::Convex
Convex polytope.
Definition: convex.h:54
hpp::fcl::Convex::Convex
Convex()
Construct an uninitialized convex object.
Definition: convex.h:57
hpp::fcl::Convex::num_polygons
int num_polygons
Definition: convex.h:81
hpp::fcl::Convex::~Convex
~Convex()
Definition: convex.hxx:73
hpp::fcl::Convex::computeCOM
Vec3f computeCOM() const
compute center of mass
Definition: convex.hxx:118
hpp::fcl::Convex::polygons
PolygonT * polygons
An array of PolygonT object. PolygonT should contains a list of vertices for each polygon,...
Definition: convex.h:80
hpp::fcl::Convex::computeVolume
FCL_REAL computeVolume() const
compute the volume
Definition: convex.hxx:152
hpp::fcl::Convex::fillNeighbors
void fillNeighbors()
Definition: convex.hxx:185
hpp::fcl::Convex::computeMomentofInertia
Matrix3f computeMomentofInertia() const
based on http://number-none.com/blow/inertia/bb_inertia.doc
Definition: convex.hxx:79
convex.hxx
hpp::fcl::Matrix3f
Eigen::Matrix< FCL_REAL, 3, 3 > Matrix3f
Definition: data_types.h:68
hpp::fcl::Vec3f
Eigen::Matrix< FCL_REAL, 3, 1 > Vec3f
Definition: data_types.h:67
hpp::fcl::FCL_REAL
double FCL_REAL
Definition: data_types.h:66
hpp
Main namespace.
Definition: AABB.h:44
geometric_shapes.h