30 #ifndef _GranOO_LibShape_Cone_hh_
31 #define _GranOO_LibShape_Cone_hh_
36 #include <vtkUnstructuredGrid.h>
50 GRANOO_OBJECT_FACTORY(
Cone);
53 static std::string
class_ID() {
return std::string(
"Cone");}
86 GRANOO_DECLARE_SHAPE_COLLISION();
104 GRANOO_ACCESS_SHAPE_DIM(radius,
double,
_radius);
105 GRANOO_ACCESS_SHAPE_DIM(length,
double,
_length);
115 template<
class Archive>
void serialize(Archive&,
const unsigned int);
134 _bounding_sphere(0) {
142 :
Cone(0., 0., Geom::Frame::global) {
147 :
Cone(s._radius, s._length, frame) {
152 :
Cone(s._radius, s._length, s._frame ) {
157 :
Cone(0., 0., frame) {
167 double max = get_radius()*2.;
168 if (get_length() >
max)
184 double minPoint[] = { xMin, yMin, zMin };
185 double maxPoint[] = { xMax, yMax, zMax };
195 const double Ixx = (3./10.)*mass*
pow(
_radius,2);
198 m.
yy() = m.
zz() = Iyy;
207 template<
class Archive>
210 ar & boost::serialization::base_object<Volume>(*
this);
219 #include <boost/serialization/export.hpp>
222 #include <boost/serialization/version.hpp>
224 GRANOO_SERIALIZE_SHAPE(Cone)
228 extern template class Core::ObjectFactoryInterface<Shape::Base, Shape::Cone>;
BOOST_CLASS_EXPORT_KEY(GranOO3::Shape::Box) namespace GranOO3
Definition: Box.hpp:319
BOOST_CLASS_VERSION(GranOO3::Core::Base, 1) namespace GranOO3
Definition: Base.hpp:277
#define SafeModeAssert(condition, message)
Definition: Macro.hpp:47
Definition: ObjectFactory.hpp:235
Definition: Tensor.hpp:62
Definition: Vector.hpp:75
Interference locate(const Geom::Point &, double radius) const
bool collide_outside(const Geom::Point &p1, double radius, Collision::Data &info) const
virtual void to_vtk(vtkUnstructuredGrid *data)
virtual std::istream & read_ascii(std::istream &in)
Cone & operator=(const Cone &)
std::ostream & to_povray(std::ostream &out, const Core::Color &) const
static std::string desc()
void read_xml_element(const TiXmlElement *el)
double _length
Definition: Cone.hpp:119
void make_equal_to(const Cone &)
void update_bounding_sphere()
double get_greatest_dimension() const
Definition: Cone.hpp:166
void update_bounding_box()
AABB aabb() const
Definition: Cone.hpp:175
void serialize(Archive &, const unsigned int)
Definition: Cone.hpp:209
Box * _bounding_box
Definition: Cone.hpp:120
Interference locate(const Geom::Point &) const
double get_volume() const
Definition: Cone.hpp:161
void compute_inertia_tensor(double density, Geom::Tensor &) const
Definition: Cone.hpp:191
double get_radius_at(double) const
Definition: Cone.hpp:202
Geom::Point farthest_point_along(const Geom::Vector &) const
Sphere * _bounding_sphere
Definition: Cone.hpp:121
double _radius
Definition: Cone.hpp:118
virtual std::ostream & write_ascii(std::ostream &out) const
friend class boost::serialization::access
Definition: Cone.hpp:114
double get_half_angle() const
Definition: Cone.hpp:94
Cone()
Definition: Cone.hpp:141
bool collide_inside(const Geom::Point &p1, double radius, Collision::Data &info) const
static std::string class_ID()
Definition: Cone.hpp:53
Definition: Sphere.hpp:50
Definition: Volume.hpp:103
void set_face_ID(const T &, Args... args)
Definition: Volume.hpp:185
static AABB new_lonely_aabb(double minPoint[3], double maxPoint[3], unsigned int primtiveIndex=-1)
Creates a new 'lonely' AABB with given extreme points.
Definition: StaticAABBTree.cpp:415
Interference
Definition: Volume.hpp:100
Definition: Common.hpp:198
T pow(const T v0, const T v1)
Definition: Exprtk.hpp:1491
T max(const T v0, const T v1)
Definition: Exprtk.hpp:1463
x y t t *t x y t t t x y t t t x *y t *t t x *y t *t t x y t t t x y t t t x(y+z)
Definition: StaticAABBTree.hpp:38