Bayeux
3.4.1
Core Foundation library for SuperNEMO
bayeux
geomtools
i_shape_1d.h
Go to the documentation of this file.
1
/* Author(s): Francois Mauger <mauger@lpccaen.in2p3.fr>
3
* Creation date: 2008-05-23
4
* Last modified: 2012-04-10
5
*
6
* License:
7
*
8
* Description:
9
* Interface for 1D shaped volumes (lines)
10
*
11
* History:
12
*
13
*/
14
15
#ifndef GEOMTOOLS_I_SHAPE_1D_H
16
#define GEOMTOOLS_I_SHAPE_1D_H 1
17
18
// Standard library:
19
#include <string>
20
21
// Third party:
22
// - Bayeux/datatools:
23
#include <
datatools/ocd_macros.h
>
24
25
// This project:
26
#include <
geomtools/utils.h
>
27
#include <
geomtools/i_object_3d.h
>
28
29
namespace
geomtools
{
30
32
class
i_shape_1d
:
public
i_object_3d
33
{
34
public
:
35
37
int
get_dimensional
()
const
;
38
40
virtual
bool
has_number_of_paths
()
const
;
41
43
virtual
unsigned
int
get_number_of_paths
()
const
;
44
46
virtual
bool
has_length
(uint32_t flags_ =
PATH_ALL_BITS
)
const
;
47
49
virtual
double
get_length
(uint32_t flags_ =
PATH_ALL_BITS
)
const
;
50
52
i_shape_1d
();
53
55
i_shape_1d
(
double
tolerance_);
56
58
i_shape_1d
(
double
tolerance_,
double
angular_tolerance_);
59
61
virtual
~i_shape_1d
();
62
64
virtual
bool
is_on_curve
(
const
vector_3d
&,
65
double
tolerance_ =
GEOMTOOLS_PROPER_TOLERANCE
)
const
= 0;
66
68
virtual
vector_3d
get_direction_on_curve
(
const
vector_3d
& position_)
const
= 0;
69
71
static
void
init_ocd
(
datatools::object_configuration_description
&);
72
73
// Serialization interface
74
DATATOOLS_SERIALIZATION_DECLARATION
()
75
76
};
77
78
}
// end of namespace geomtools
79
80
/*
81
// Explicit class version:
82
#include <boost/serialization/version.hpp>
83
BOOST_CLASS_VERSION(geomtools::i_shape_1d, 0)
84
*/
85
86
#endif // GEOMTOOLS_I_SHAPE_1D_H
87
88
/*
89
** Local Variables: --
90
** mode: c++ --
91
** c-file-style: "gnu" --
92
** tab-width: 2 --
93
** End: --
94
*/
geomtools::i_shape_1d
The abstract base class for all 1D curves/shapes.
Definition:
i_shape_1d.h:32
geomtools::i_object_3d
Mother abstract class for all 3D object classes.
Definition:
i_object_3d.h:49
geomtools::i_shape_1d::get_dimensional
int get_dimensional() const
Return the dimension of the object.
i_object_3d.h
geomtools::PATH_ALL_BITS
Definition:
utils.h:184
geomtools::i_shape_1d::~i_shape_1d
virtual ~i_shape_1d()
Destructor.
geomtools::i_shape_1d::is_on_curve
virtual bool is_on_curve(const vector_3d &, double tolerance_=GEOMTOOLS_PROPER_TOLERANCE) const =0
Check is a given point belongs to the path of the 1D shape.
datatools::object_configuration_description
An object that describes the way an object of a given class can be configured through properties.
Definition:
object_configuration_description.h:234
geomtools::i_shape_1d::get_length
virtual double get_length(uint32_t flags_=PATH_ALL_BITS) const
Return the length of the 1D shape.
DATATOOLS_SERIALIZATION_DECLARATION
#define DATATOOLS_SERIALIZATION_DECLARATION()
Definition:
i_serializable.h:266
GEOMTOOLS_PROPER_TOLERANCE
#define GEOMTOOLS_PROPER_TOLERANCE
Definition:
geomtools_config.h:26
geomtools::i_shape_1d::i_shape_1d
i_shape_1d()
Default constructor.
geomtools::i_shape_1d::get_number_of_paths
virtual unsigned int get_number_of_paths() const
Return the number of paths.
geomtools::i_shape_1d::init_ocd
static void init_ocd(datatools::object_configuration_description &)
OCD support.
utils.h
geomtools::vector_3d
CLHEP::Hep3Vector vector_3d
Alias for the CLHEP 3D-vector class.
Definition:
clhep.h:63
ocd_macros.h
geomtools::i_shape_1d::has_number_of_paths
virtual bool has_number_of_paths() const
Check if the 1D shape knows its number of associated paths.
geomtools::i_shape_1d::has_length
virtual bool has_length(uint32_t flags_=PATH_ALL_BITS) const
Check if the 1D shape known its length.
geomtools::i_shape_1d::get_direction_on_curve
virtual vector_3d get_direction_on_curve(const vector_3d &position_) const =0
Return the tangent direction at some position on the 1D shape's path.
geomtools
Top-level namespace of the Bayeux/geomtools module library.
Definition:
electromagnetic_field_manager.h:39
Generated by
1.8.15