GranOO  3.0
A robust and versatile workbench to build 3D dynamic simulations based on the Discrete Element Method
Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
GranOO3::Shape::ConeTruncated Class Reference

#include <ConeTruncated.hpp>

Inheritance diagram for GranOO3::Shape::ConeTruncated:
Inheritance graph
[legend]

Public Member Functions

 ConeTruncated ()
 
 ConeTruncated (double radius1, double radius2, double length, const Geom::Frame &frame)
 
 ConeTruncated (const ConeTruncated &)
 
 ConeTruncated (const ConeTruncated &, const Geom::Frame &)
 
 ConeTruncated (const Geom::Frame &frame)
 
virtual ~ConeTruncated ()
 
void read_xml_element (const TiXmlElement *el)
 
virtual std::ostream & write_ascii (std::ostream &out) const
 
virtual std::istream & read_ascii (std::istream &in)
 
virtual void to_vtk (vtkUnstructuredGrid *data)
 
std::string info () const
 
void make_equal_to (const ConeTruncated &)
 
void update_bounding_box ()
 
void update_bounding_sphere ()
 
double get_greatest_dimension () const
 
AABB aabb () const
 
Interference locate (const Geom::Point &) const
 
Interference locate (const Geom::Point &, double radius) const
 
void set_contact_regions (const std::string &regions)
 
bool collide_inside (const Geom::Point &p1, double radius, Collision::Data &info) const
 
bool collide_outside (const Geom::Point &p1, double radius, Collision::Data &info) const
 
Geom::Point farthest_point_along (const Geom::Vector &) const
 
double get_volume () const
 
void compute_inertia_tensor (double density, Geom::Tensor &) const
 
double get_half_angle () const
 
void draw_gl () const
 
void scale (double)
 
double get_radius_at (double) const
 
double get_centre_of_mass () const
 
std::ostream & to_povray (std::ostream &out, const Core::Color &) const
 
- Public Member Functions inherited from GranOO3::Shape::Volume
 Volume (const Geom::Frame &frame)
 
virtual ~Volume ()
 
bool is_surface () const
 
bool is_volume () const
 
const Boxget_bounding_box () const
 
const Sphereget_bounding_sphere () const
 
Boxget_bounding_box ()
 
Sphereget_bounding_sphere ()
 
void update_bounding_shape ()
 
bool is_bounding_shape () const
 
template<Interference T>
bool overlap (const Sphere &, Geom::Vector &normal, double &penetration) const
 
Interference locate (const Sphere &) const
 
bool collide_inside (const Geom::Point &, Collision::Data &) const
 
bool collide_outside (const Geom::Point &, Collision::Data &) const
 
virtual bool collide (const Volume &, Collision::Data &) const =0
 
virtual bool collide (const Sphere &, Collision::Data &) const =0
 
virtual bool collide (const Box &, Collision::Data &) const =0
 
virtual bool collide (const Cylinder &, Collision::Data &) const =0
 
virtual bool collide (const Cone &, Collision::Data &) const =0
 
virtual bool collide (const ConeTruncated &, Collision::Data &) const =0
 
virtual bool collide (const Polyhedron &, Collision::Data &) const =0
 
const std::set< std::string > & get_face_ID () const
 
template<>
bool overlap (const Sphere &s, Geom::Vector &normal, double &penetration) const
 
template<>
bool overlap (const Sphere &s, Geom::Vector &normal, double &penetration) const
 
template<>
bool overlap (const Sphere &s, Geom::Vector &normal, double &penetration) const
 
- Public Member Functions inherited from GranOO3::Shape::Base
 Base (const Geom::Frame &frame)
 
virtual ~Base ()
 
virtual void draw_gl_edge () const
 
void unscale (double)
 
virtual void add_glob (const std::string &)=0
 
const Geom::Framelocal_frame () const
 
const Geom::Pointget_center () const
 
const Geom::Quaternionget_quaternion () const
 
const Geom::Vectorget_position () const
 
void translate (Geom::Vector &)
 
void rotate (const Geom::Vector &axis, const double angleRadian)
 

Static Public Member Functions

static std::string class_ID ()
 
static std::string desc ()
 
- Static Public Member Functions inherited from GranOO3::Shape::Volume
static std::string class_ID ()
 
- Static Public Member Functions inherited from GranOO3::Shape::Base
static Baseglob (const std::string &id)
 
static const Geom::Frameframe_buffer ()
 
static std::string class_ID ()
 
static Basenew_object (const TiXmlElement *el)
 
- Static Public Member Functions inherited from GranOO3::Core::ObjectFactoryInterface< Base, ConeTruncated >
static Basebuild ()
 
static bool record (const std::string &id, std::string file_name="", std::string desc="")
 
- Static Public Member Functions inherited from GranOO3::Core::ObjectFactory< BaseClass >
static void record (std::function< BaseClass *()>, const std::string &, const std::string file="", const std::string desc="")
 
static BaseClass * new_object (const std::string &)
 
static std::vector< std::string > get_ID ()
 
static std::map< const std::string, std::function< BaseClass *()> > & get_map ()
 

Private Types

enum  ContactRegion { XMIN = 1 << 0 , RADIUS = 1 << 1 , XMAX = 1 << 2 }
 

Private Member Functions

ConeTruncatedoperator= (const ConeTruncated &)
 
template<class Archive >
void serialize (Archive &, const unsigned int)
 

Private Attributes

double _radius1
 
double _radius2
 
double _length
 
Box_bounding_box
 
Sphere_bounding_sphere
 
ContactRegion _cRegion
 

Friends

class boost::serialization::access
 

Additional Inherited Members

- Protected Member Functions inherited from GranOO3::Shape::Volume
template<typename T , typename ... Args>
void set_face_ID (const T &, Args... args)
 
template<typename T >
void set_face_ID (const T &)
 
void copy_face_ID (const std::set< std::string > &)
 
void add_face_ID (const std::string &)
 
- Protected Member Functions inherited from GranOO3::Core::ObjectFactoryInterface< Base, ConeTruncated >
 ObjectFactoryInterface ()
 
virtual ~ObjectFactoryInterface ()
 
- Protected Member Functions inherited from GranOO3::Core::ObjectFactory< BaseClass >
 ObjectFactory ()
 
virtual ~ObjectFactory ()
 
- Protected Attributes inherited from GranOO3::Shape::Base
const Geom::Frame_frame
 

Member Enumeration Documentation

◆ ContactRegion

Enumerator
XMIN 
RADIUS 
XMAX 

Constructor & Destructor Documentation

◆ ConeTruncated() [1/5]

GranOO3::Shape::ConeTruncated::ConeTruncated ( )
inline

◆ ConeTruncated() [2/5]

GranOO3::Shape::ConeTruncated::ConeTruncated ( double  radius1,
double  radius2,
double  length,
const Geom::Frame frame 
)
inline

◆ ConeTruncated() [3/5]

GranOO3::Shape::ConeTruncated::ConeTruncated ( const ConeTruncated s)
inline

◆ ConeTruncated() [4/5]

GranOO3::Shape::ConeTruncated::ConeTruncated ( const ConeTruncated s,
const Geom::Frame frame 
)
inline

◆ ConeTruncated() [5/5]

GranOO3::Shape::ConeTruncated::ConeTruncated ( const Geom::Frame frame)
inline

◆ ~ConeTruncated()

virtual GranOO3::Shape::ConeTruncated::~ConeTruncated ( )
virtual

Member Function Documentation

◆ aabb()

AABB GranOO3::Shape::ConeTruncated::aabb ( ) const
inlinevirtual

◆ class_ID()

static std::string GranOO3::Shape::ConeTruncated::class_ID ( )
inlinestatic

◆ collide_inside()

bool GranOO3::Shape::ConeTruncated::collide_inside ( const Geom::Point p1,
double  radius,
Collision::Data info 
) const
virtual

◆ collide_outside()

bool GranOO3::Shape::ConeTruncated::collide_outside ( const Geom::Point p1,
double  radius,
Collision::Data info 
) const
virtual

◆ compute_inertia_tensor()

void GranOO3::Shape::ConeTruncated::compute_inertia_tensor ( double  density,
Geom::Tensor  
) const
virtual

◆ desc()

static std::string GranOO3::Shape::ConeTruncated::desc ( )
static

◆ draw_gl()

void GranOO3::Shape::ConeTruncated::draw_gl ( ) const
virtual

Implements GranOO3::Shape::Base.

◆ farthest_point_along()

Geom::Point GranOO3::Shape::ConeTruncated::farthest_point_along ( const Geom::Vector ) const
virtual

◆ get_centre_of_mass()

double GranOO3::Shape::ConeTruncated::get_centre_of_mass ( ) const

◆ get_greatest_dimension()

double GranOO3::Shape::ConeTruncated::get_greatest_dimension ( ) const
inlinevirtual

◆ get_half_angle()

double GranOO3::Shape::ConeTruncated::get_half_angle ( ) const
inline

◆ get_radius_at()

double GranOO3::Shape::ConeTruncated::get_radius_at ( double  x) const
inline

◆ get_volume()

double GranOO3::Shape::ConeTruncated::get_volume ( ) const
inlinevirtual

◆ info()

std::string GranOO3::Shape::ConeTruncated::info ( ) const
virtual

Reimplemented from GranOO3::Shape::Base.

◆ locate() [1/2]

Interference GranOO3::Shape::ConeTruncated::locate ( const Geom::Point ) const
virtual

◆ locate() [2/2]

Interference GranOO3::Shape::ConeTruncated::locate ( const Geom::Point ,
double  radius 
) const
virtual

◆ make_equal_to()

void GranOO3::Shape::ConeTruncated::make_equal_to ( const ConeTruncated )

◆ operator=()

ConeTruncated& GranOO3::Shape::ConeTruncated::operator= ( const ConeTruncated )
private

◆ read_ascii()

virtual std::istream& GranOO3::Shape::ConeTruncated::read_ascii ( std::istream &  in)
virtual

Reimplemented from GranOO3::Shape::Base.

◆ read_xml_element()

void GranOO3::Shape::ConeTruncated::read_xml_element ( const TiXmlElement *  el)
virtual

Reimplemented from GranOO3::Shape::Base.

◆ scale()

void GranOO3::Shape::ConeTruncated::scale ( double  )
virtual

Implements GranOO3::Shape::Base.

◆ serialize()

template<class Archive >
void GranOO3::Shape::ConeTruncated::serialize ( Archive &  ar,
const unsigned int   
)
inlineprivate

◆ set_contact_regions()

void GranOO3::Shape::ConeTruncated::set_contact_regions ( const std::string &  regions)

◆ to_povray()

std::ostream& GranOO3::Shape::ConeTruncated::to_povray ( std::ostream &  out,
const Core::Color  
) const
virtual

Reimplemented from GranOO3::Shape::Base.

◆ to_vtk()

virtual void GranOO3::Shape::ConeTruncated::to_vtk ( vtkUnstructuredGrid *  data)
virtual

Reimplemented from GranOO3::Shape::Base.

◆ update_bounding_box()

void GranOO3::Shape::ConeTruncated::update_bounding_box ( )
virtual

◆ update_bounding_sphere()

void GranOO3::Shape::ConeTruncated::update_bounding_sphere ( )
virtual

◆ write_ascii()

virtual std::ostream& GranOO3::Shape::ConeTruncated::write_ascii ( std::ostream &  out) const
virtual

Reimplemented from GranOO3::Shape::Base.

Friends And Related Function Documentation

◆ boost::serialization::access

friend class boost::serialization::access
friend

Member Data Documentation

◆ _bounding_box

Box* GranOO3::Shape::ConeTruncated::_bounding_box
private

◆ _bounding_sphere

Sphere* GranOO3::Shape::ConeTruncated::_bounding_sphere
private

◆ _cRegion

ContactRegion GranOO3::Shape::ConeTruncated::_cRegion
private

◆ _length

double GranOO3::Shape::ConeTruncated::_length
private

◆ _radius1

double GranOO3::Shape::ConeTruncated::_radius1
private

◆ _radius2

double GranOO3::Shape::ConeTruncated::_radius2
private

The documentation for this class was generated from the following file: