#include <vsol_cylinder.h>
Public Types | |
enum | vsol_spatial_object_3d_type { SPATIAL_NO_TYPE = 0, TOPOLOGYOBJECT, POINT, CURVE, REGION, SPATIALGROUP, VOLUME, NUM_SPATIALOBJECT_TYPES } |
Public Member Functions | |
vsol_cylinder () | |
vsol_cylinder (vgl_point_3d< double > centre, double radius, double length) | |
vsol_cylinder (vgl_point_3d< double > centre, double radius, double length, vgl_vector_3d< double > orient) | |
vsol_cylinder (vsol_cylinder const &cyl) | |
bool | contains (vgl_point_3d< double > const &p) |
Return true iff the point p is inside (or on) this cylinder. | |
vgl_point_3d< double > | center () |
getters. | |
double | radius () |
double | length () |
vgl_vector_3d< double > | orientation () |
void | set_orientation (vgl_vector_3d< double > orient) |
setters. | |
void | set_center (vgl_point_3d< double > const &c) |
void | set_length (double l) |
void | set_radius (double r) |
void | b_write (vsl_b_ostream &os) const |
Binary save self to stream. | |
void | b_read (vsl_b_istream &is) |
Binary load self from stream. | |
short | version () const |
Return IO version number;. | |
void | print_summary (vcl_ostream &os) const |
Print an ascii summary to the stream. | |
void | describe (vcl_ostream &strm, int blanking) const |
describe to the output stream. | |
vcl_string | is_a () const |
Return a platform independent string identifying the class. | |
bool | is_class (const vcl_string &cls) const |
Return true if the argument matches the string identifying the class or any parent class. | |
vsol_spatial_object_3d_type | spatial_type () const |
get the spatial type. | |
vsol_spatial_object_3d * | clone () const |
Clone `this': creation of a new object and initialization. | |
virtual | ~vsol_cylinder (void) |
const char * | get_name () const |
void | un_protect () |
unprotect the object. | |
virtual void | print (vcl_ostream &strm=vcl_cout) const |
virtual bool | operator== (vsol_spatial_object_3d const &obj) const |
bool | operator!= (vsol_spatial_object_3d const &obj) |
vsol_box_3d_sptr | get_bounding_box () const |
double | get_min_x () const |
double | get_max_x () const |
double | get_min_y () const |
double | get_max_y () const |
double | get_min_z () const |
double | get_max_z () const |
virtual vsol_spatial_object_3d * | cast_to_spatial_object () |
The same behavior than dynamic_cast<>. | |
virtual vsol_spatial_object_3d const * | cast_to_spatial_object () const |
virtual vtol_topology_object * | cast_to_topology_object () |
virtual vtol_topology_object const * | cast_to_topology_object () const |
virtual vsol_spatial_object_3d * | cast_to_vsol_spatial_object () |
virtual vsol_spatial_object_3d const * | cast_to_vsol_spatial_object () const |
virtual vsol_point_3d * | cast_to_point () |
virtual vsol_point_3d const * | cast_to_point () const |
virtual vsol_curve_3d * | cast_to_curve () |
virtual vsol_curve_3d const * | cast_to_curve () const |
virtual vsol_surface_3d * | cast_to_surface () |
virtual vsol_surface_3d const * | cast_to_surface () const |
virtual vsol_volume_3d * | cast_to_volume () |
virtual vsol_volume_3d const * | cast_to_volume () const |
virtual vsol_region_3d * | cast_to_region () |
virtual vsol_region_3d const * | cast_to_region () const |
virtual vsol_group_3d * | cast_to_group () |
virtual vsol_group_3d const * | cast_to_group () const |
void | touch () |
unsigned long | get_time_stamp () const |
bool | older (vul_timestamp const &t) const |
bool | older (vul_timestamp const *t) const |
void | ref () |
void | unref () |
int | get_references () const |
bool | is_referenced () const |
int | get_id () const |
get id of object. | |
void | set_id (int i) |
set id of object. | |
void | set_user_flag (unsigned int flag) |
set a flag for a spatial object; flag can be VSOL_FLAG[1-6]. | |
bool | get_user_flag (unsigned int flag) |
check if a flag is set for a spatial object; flag can be VSOL_FLAG[1-6]. | |
void | unset_user_flag (unsigned int flag) |
un-set a flag for a spatial object; flag can be VSOL_FLAG[1-6]. | |
void | set_tagged_union_flag () |
set the flag used by TAGGED_UNION. | |
bool | get_tagged_union_flag () |
check if the flag used by TAGGED_UNION is set. | |
void | unset_tagged_union_flag () |
un-set the flag used by TAGGED_UNION. | |
int | get_tag_id () |
void | set_tag_id (int id) |
Static Public Attributes | |
static const char * | SpatialTypes [] |
static const float | eps = 1.0e-3f |
Protected Member Functions | |
void | not_applicable (vcl_string const &message) const |
void | empty_bounding_box () const |
make the bounding box empty; often first step in bounding box calculation. | |
void | set_bounding_box (vsol_box_3d_sptr const &box) const |
set the bounding box; to be used in bounding box calculation. | |
void | set_bounding_box (double x, double y, double z) const |
set the bounding box to a single point, discarding the old bounding box. | |
void | add_to_bounding_box (double x, double y, double z) const |
add a point to the bounding box and take the convex union. | |
void | add_to_bounding_box (vsol_box_3d_sptr const &box) const |
set the existing bounding box to the convex union of it with the given box. | |
void | grow_minmax_bounds (vsol_box_3d_sptr const &b) const |
grow to the largest dim. of this and box, i.e., take the convex union. | |
virtual void | compute_bounding_box () const |
compute bounding box, do nothing in this case except touching the box. | |
void | check_update_bounding_box () const |
Test consistency of bound. | |
Protected Attributes | |
unsigned long | timestamp_ |
unsigned int | tag_ |
int | id_ |
Static Protected Attributes | |
static int | tagcount_ = 0 |
Private Attributes | |
vgl_cylinder< double > | cyl_ |
Friends | |
vcl_ostream & | operator<< (vcl_ostream &, vsol_spatial_object_3d const &) |
vcl_ostream & | operator<< (vcl_ostream &, vsol_spatial_object_3d const *) |
Definition at line 26 of file vsol_cylinder.h.
enum vsol_spatial_object_3d::vsol_spatial_object_3d_type [inherited] |
SPATIAL_NO_TYPE | |
TOPOLOGYOBJECT | |
POINT | |
CURVE | |
REGION | |
SPATIALGROUP | |
VOLUME | |
NUM_SPATIALOBJECT_TYPES |
Definition at line 90 of file vsol_spatial_object_3d.h.
vsol_cylinder::vsol_cylinder | ( | ) | [inline] |
Definition at line 31 of file vsol_cylinder.h.
vsol_cylinder::vsol_cylinder | ( | vgl_point_3d< double > | centre, |
double | radius, | ||
double | length | ||
) | [inline] |
Definition at line 33 of file vsol_cylinder.h.
vsol_cylinder::vsol_cylinder | ( | vgl_point_3d< double > | centre, |
double | radius, | ||
double | length, | ||
vgl_vector_3d< double > | orient | ||
) | [inline] |
Definition at line 36 of file vsol_cylinder.h.
vsol_cylinder::vsol_cylinder | ( | vsol_cylinder const & | cyl | ) | [inline] |
Definition at line 41 of file vsol_cylinder.h.
virtual vsol_cylinder::~vsol_cylinder | ( | void | ) | [inline, virtual] |
Definition at line 89 of file vsol_cylinder.h.
void vsol_spatial_object_3d::add_to_bounding_box | ( | double | x, |
double | y, | ||
double | z | ||
) | const [protected, inherited] |
add a point to the bounding box and take the convex union.
This is a "const" method since the bounding box is a "mutable" data member: calculating the bounding box does not change the object.
Definition at line 79 of file vsol_spatial_object_3d.cxx.
void vsol_spatial_object_3d::add_to_bounding_box | ( | vsol_box_3d_sptr const & | box | ) | const [protected, inherited] |
set the existing bounding box to the convex union of it with the given box.
Definition at line 84 of file vsol_spatial_object_3d.cxx.
void vsol_cylinder::b_read | ( | vsl_b_istream & | is | ) | [virtual] |
Binary load self from stream.
Reimplemented from vsol_spatial_object_3d.
Definition at line 48 of file vsol_cylinder.cxx.
void vsol_cylinder::b_write | ( | vsl_b_ostream & | os | ) | const [virtual] |
Binary save self to stream.
Reimplemented from vsol_spatial_object_3d.
Definition at line 41 of file vsol_cylinder.cxx.
virtual vsol_curve_3d* vsol_spatial_object_3d::cast_to_curve | ( | ) | [inline, virtual, inherited] |
Reimplemented in vsol_curve_3d.
Definition at line 206 of file vsol_spatial_object_3d.h.
virtual vsol_curve_3d const* vsol_spatial_object_3d::cast_to_curve | ( | ) | const [inline, virtual, inherited] |
Reimplemented in vsol_curve_3d.
Definition at line 207 of file vsol_spatial_object_3d.h.
virtual vsol_group_3d* vsol_spatial_object_3d::cast_to_group | ( | void | ) | [inline, virtual, inherited] |
Reimplemented in vsol_group_3d, and vsol_group_3d.
Definition at line 214 of file vsol_spatial_object_3d.h.
virtual vsol_group_3d const* vsol_spatial_object_3d::cast_to_group | ( | void | ) | const [inline, virtual, inherited] |
Reimplemented in vsol_group_3d.
Definition at line 215 of file vsol_spatial_object_3d.h.
virtual vsol_point_3d* vsol_spatial_object_3d::cast_to_point | ( | void | ) | [inline, virtual, inherited] |
Reimplemented in vsol_point_3d, and vsol_point_3d.
Definition at line 204 of file vsol_spatial_object_3d.h.
virtual vsol_point_3d const* vsol_spatial_object_3d::cast_to_point | ( | void | ) | const [inline, virtual, inherited] |
Reimplemented in vsol_point_3d, and vsol_point_3d.
Definition at line 205 of file vsol_spatial_object_3d.h.
virtual vsol_region_3d* vsol_spatial_object_3d::cast_to_region | ( | void | ) | [inline, virtual, inherited] |
Reimplemented in vsol_region_3d, and vsol_surface_3d.
Definition at line 212 of file vsol_spatial_object_3d.h.
virtual vsol_region_3d const* vsol_spatial_object_3d::cast_to_region | ( | void | ) | const [inline, virtual, inherited] |
Reimplemented in vsol_region_3d, vsol_region_3d, and vsol_surface_3d.
Definition at line 213 of file vsol_spatial_object_3d.h.
virtual vsol_spatial_object_3d* vsol_spatial_object_3d::cast_to_spatial_object | ( | ) | [inline, virtual, inherited] |
The same behavior than dynamic_cast<>.
Needed because VXL is not necessarily compiled with -frtti
Definition at line 196 of file vsol_spatial_object_3d.h.
virtual vsol_spatial_object_3d const* vsol_spatial_object_3d::cast_to_spatial_object | ( | ) | const [inline, virtual, inherited] |
Definition at line 197 of file vsol_spatial_object_3d.h.
virtual vsol_surface_3d* vsol_spatial_object_3d::cast_to_surface | ( | void | ) | [inline, virtual, inherited] |
Reimplemented in vsol_surface_3d.
Definition at line 208 of file vsol_spatial_object_3d.h.
virtual vsol_surface_3d const* vsol_spatial_object_3d::cast_to_surface | ( | void | ) | const [inline, virtual, inherited] |
Reimplemented in vsol_surface_3d, and vsol_surface_3d.
Definition at line 209 of file vsol_spatial_object_3d.h.
virtual vtol_topology_object* vsol_spatial_object_3d::cast_to_topology_object | ( | ) | [inline, virtual, inherited] |
Definition at line 199 of file vsol_spatial_object_3d.h.
virtual vtol_topology_object const* vsol_spatial_object_3d::cast_to_topology_object | ( | ) | const [inline, virtual, inherited] |
Definition at line 200 of file vsol_spatial_object_3d.h.
virtual vsol_volume_3d* vsol_spatial_object_3d::cast_to_volume | ( | ) | [inline, virtual, inherited] |
Reimplemented in vsol_volume_3d.
Definition at line 210 of file vsol_spatial_object_3d.h.
virtual vsol_volume_3d const* vsol_spatial_object_3d::cast_to_volume | ( | ) | const [inline, virtual, inherited] |
Reimplemented in vsol_volume_3d.
Definition at line 211 of file vsol_spatial_object_3d.h.
virtual vsol_spatial_object_3d* vsol_spatial_object_3d::cast_to_vsol_spatial_object | ( | ) | [inline, virtual, inherited] |
Definition at line 202 of file vsol_spatial_object_3d.h.
virtual vsol_spatial_object_3d const* vsol_spatial_object_3d::cast_to_vsol_spatial_object | ( | ) | const [inline, virtual, inherited] |
Definition at line 203 of file vsol_spatial_object_3d.h.
vgl_point_3d<double> vsol_cylinder::center | ( | ) | [inline] |
getters.
Definition at line 48 of file vsol_cylinder.h.
void vsol_spatial_object_3d::check_update_bounding_box | ( | ) | const [protected, inherited] |
Test consistency of bound.
Bounds Accessors:.
min_ and max_ are provided as methods on vsol_spatial_object_3d to be consistent with the previous interface Additional bounds accessors are available directly on vsol_box_3d. - JLM
Definition at line 97 of file vsol_spatial_object_3d.cxx.
vsol_spatial_object_3d* vsol_cylinder::clone | ( | ) | const [inline, virtual] |
Clone `this': creation of a new object and initialization.
See Prototype pattern
Implements vsol_spatial_object_3d.
Definition at line 87 of file vsol_cylinder.h.
void vsol_spatial_object_3d::compute_bounding_box | ( | void | ) | const [protected, virtual, inherited] |
compute bounding box, do nothing in this case except touching the box.
Reimplemented in vsol_polyline_3d, vsol_line_3d, vsol_polygon_3d, vsol_point_3d, vsol_polyhedron, vsol_digital_curve_3d, and vsol_group_3d.
Definition at line 59 of file vsol_spatial_object_3d.cxx.
bool vsol_cylinder::contains | ( | vgl_point_3d< double > const & | p | ) |
Return true iff the point p is inside (or on) this cylinder.
Definition at line 8 of file vsol_cylinder.cxx.
void vsol_cylinder::describe | ( | vcl_ostream & | strm, |
int | blanking | ||
) | const [virtual] |
describe to the output stream.
Reimplemented from vsol_spatial_object_3d.
Definition at line 77 of file vsol_cylinder.cxx.
void vsol_spatial_object_3d::empty_bounding_box | ( | ) | const [protected, inherited] |
make the bounding box empty; often first step in bounding box calculation.
Definition at line 64 of file vsol_spatial_object_3d.cxx.
vsol_box_3d_sptr vsol_spatial_object_3d::get_bounding_box | ( | ) | const [inline, inherited] |
Definition at line 161 of file vsol_spatial_object_3d.h.
int vsol_flags_id::get_id | ( | ) | const [inline, inherited] |
get id of object.
Definition at line 52 of file vsol_flags_id.h.
double vsol_spatial_object_3d::get_max_x | ( | ) | const [inherited] |
Reimplemented in vsol_orient_box_3d.
Definition at line 118 of file vsol_spatial_object_3d.cxx.
double vsol_spatial_object_3d::get_max_y | ( | ) | const [inherited] |
Reimplemented in vsol_orient_box_3d.
Definition at line 128 of file vsol_spatial_object_3d.cxx.
double vsol_spatial_object_3d::get_max_z | ( | ) | const [inherited] |
Reimplemented in vsol_orient_box_3d.
Definition at line 138 of file vsol_spatial_object_3d.cxx.
double vsol_spatial_object_3d::get_min_x | ( | ) | const [inherited] |
Reimplemented in vsol_orient_box_3d.
Definition at line 113 of file vsol_spatial_object_3d.cxx.
double vsol_spatial_object_3d::get_min_y | ( | ) | const [inherited] |
Reimplemented in vsol_orient_box_3d.
Definition at line 123 of file vsol_spatial_object_3d.cxx.
double vsol_spatial_object_3d::get_min_z | ( | ) | const [inherited] |
Reimplemented in vsol_orient_box_3d.
Definition at line 133 of file vsol_spatial_object_3d.cxx.
const char * vsol_spatial_object_3d::get_name | ( | ) | const [inherited] |
Definition at line 40 of file vsol_spatial_object_3d.cxx.
int vsol_flags_id::get_tag_id | ( | ) | [inline, inherited] |
Definition at line 106 of file vsol_flags_id.h.
bool vsol_flags_id::get_tagged_union_flag | ( | ) | [inline, inherited] |
check if the flag used by TAGGED_UNION is set.
Definition at line 95 of file vsol_flags_id.h.
bool vsol_flags_id::get_user_flag | ( | unsigned int | flag | ) | [inline, inherited] |
check if a flag is set for a spatial object; flag can be VSOL_FLAG[1-6].
Definition at line 77 of file vsol_flags_id.h.
void vsol_spatial_object_3d::grow_minmax_bounds | ( | vsol_box_3d_sptr const & | b | ) | const [inline, protected, inherited] |
grow to the largest dim. of this and box, i.e., take the convex union.
Definition at line 186 of file vsol_spatial_object_3d.h.
vcl_string vsol_cylinder::is_a | ( | ) | const [inline, virtual] |
Return a platform independent string identifying the class.
Implements vsol_spatial_object_3d.
Definition at line 79 of file vsol_cylinder.h.
bool vsol_cylinder::is_class | ( | const vcl_string & | cls | ) | const [inline] |
Return true if the argument matches the string identifying the class or any parent class.
Definition at line 82 of file vsol_cylinder.h.
double vsol_cylinder::length | ( | void | ) | [inline] |
Definition at line 50 of file vsol_cylinder.h.
void vsol_spatial_object_3d::not_applicable | ( | vcl_string const & | message | ) | const [inline, protected, inherited] |
Definition at line 113 of file vsol_spatial_object_3d.h.
bool vsol_spatial_object_3d::operator!= | ( | vsol_spatial_object_3d const & | obj | ) | [inline, inherited] |
Definition at line 157 of file vsol_spatial_object_3d.h.
virtual bool vsol_spatial_object_3d::operator== | ( | vsol_spatial_object_3d const & | obj | ) | const [inline, virtual, inherited] |
Reimplemented in vsol_group_3d, vsol_line_3d, vsol_polygon_3d, vsol_polyline_3d, vsol_point_3d, vsol_polyhedron, vsol_rectangle_3d, vsol_triangle_3d, and vsol_digital_curve_3d.
Definition at line 156 of file vsol_spatial_object_3d.h.
vgl_vector_3d<double> vsol_cylinder::orientation | ( | ) | [inline] |
Definition at line 51 of file vsol_cylinder.h.
virtual void vsol_spatial_object_3d::print | ( | vcl_ostream & | strm = vcl_cout | ) | const [inline, virtual, inherited] |
Definition at line 149 of file vsol_spatial_object_3d.h.
void vsol_cylinder::print_summary | ( | vcl_ostream & | os | ) | const |
Print an ascii summary to the stream.
Definition at line 71 of file vsol_cylinder.cxx.
double vsol_cylinder::radius | ( | ) | [inline] |
Definition at line 49 of file vsol_cylinder.h.
void vsol_spatial_object_3d::set_bounding_box | ( | vsol_box_3d_sptr const & | box | ) | const [protected, inherited] |
set the bounding box; to be used in bounding box calculation.
Definition at line 74 of file vsol_spatial_object_3d.cxx.
void vsol_spatial_object_3d::set_bounding_box | ( | double | x, |
double | y, | ||
double | z | ||
) | const [protected, inherited] |
set the bounding box to a single point, discarding the old bounding box.
This is a "const" method since the bounding box is a "mutable" data member: calculating the bounding box does not change the object.
Definition at line 69 of file vsol_spatial_object_3d.cxx.
void vsol_cylinder::set_center | ( | vgl_point_3d< double > const & | c | ) | [inline] |
Definition at line 57 of file vsol_cylinder.h.
void vsol_flags_id::set_id | ( | int | i | ) | [inline, inherited] |
set id of object.
Definition at line 54 of file vsol_flags_id.h.
void vsol_cylinder::set_length | ( | double | l | ) | [inline] |
Definition at line 59 of file vsol_cylinder.h.
void vsol_cylinder::set_orientation | ( | vgl_vector_3d< double > | orient | ) | [inline] |
setters.
Definition at line 54 of file vsol_cylinder.h.
void vsol_cylinder::set_radius | ( | double | r | ) | [inline] |
Definition at line 61 of file vsol_cylinder.h.
void vsol_flags_id::set_tag_id | ( | int | id | ) | [inline, inherited] |
Definition at line 111 of file vsol_flags_id.h.
void vsol_flags_id::set_tagged_union_flag | ( | ) | [inline, inherited] |
set the flag used by TAGGED_UNION.
Definition at line 89 of file vsol_flags_id.h.
void vsol_flags_id::set_user_flag | ( | unsigned int | flag | ) | [inline, inherited] |
set a flag for a spatial object; flag can be VSOL_FLAG[1-6].
Definition at line 71 of file vsol_flags_id.h.
vsol_spatial_object_3d_type vsol_cylinder::spatial_type | ( | ) | const [inline, virtual] |
get the spatial type.
Implements vsol_spatial_object_3d.
Definition at line 85 of file vsol_cylinder.h.
void vsol_spatial_object_3d::un_protect | ( | ) | [inline, inherited] |
unprotect the object.
Definition at line 128 of file vsol_spatial_object_3d.h.
void vsol_flags_id::unset_tagged_union_flag | ( | ) | [inline, inherited] |
un-set the flag used by TAGGED_UNION.
Definition at line 101 of file vsol_flags_id.h.
void vsol_flags_id::unset_user_flag | ( | unsigned int | flag | ) | [inline, inherited] |
un-set a flag for a spatial object; flag can be VSOL_FLAG[1-6].
Definition at line 83 of file vsol_flags_id.h.
short vsol_cylinder::version | ( | ) | const |
Return IO version number;.
Reimplemented from vsol_spatial_object_3d.
Definition at line 65 of file vsol_cylinder.cxx.
vcl_ostream& operator<< | ( | vcl_ostream & | strm, |
vsol_spatial_object_3d const & | so | ||
) | [friend, inherited] |
Definition at line 220 of file vsol_spatial_object_3d.h.
vcl_ostream& operator<< | ( | vcl_ostream & | strm, |
vsol_spatial_object_3d const * | so | ||
) | [friend, inherited] |
Definition at line 226 of file vsol_spatial_object_3d.h.
vgl_cylinder<double> vsol_cylinder::cyl_ [private] |
Definition at line 28 of file vsol_cylinder.h.
const float vsol_spatial_object_3d::eps = 1.0e-3f [static, inherited] |
Definition at line 103 of file vsol_spatial_object_3d.h.
int vsol_flags_id::id_ [protected, inherited] |
Definition at line 39 of file vsol_flags_id.h.
const char * vsol_spatial_object_3d::SpatialTypes [static, inherited] |
{ "NO_TYPE ", "TOPOLOGYOBJECT ", "POINT ", "CURVE ", "REGION ", "SPATIALGROUP ", "NUM_SPATIALOBJECT_TYPES" }
Definition at line 102 of file vsol_spatial_object_3d.h.
unsigned int vsol_flags_id::tag_ [protected, inherited] |
Definition at line 38 of file vsol_flags_id.h.
int vsol_flags_id::tagcount_ = 0 [static, protected, inherited] |
Definition at line 40 of file vsol_flags_id.h.