vsol_spatial_object_3d Class Reference

#include <vsol_spatial_object_3d.h>

Inheritance diagram for vsol_spatial_object_3d:

vsol_spatial_object vul_timestamp vbl_ref_count vsol_flags_id vsol_curve_3d vsol_cylinder vsol_group_3d vsol_point_3d vsol_surface_3d vsol_volume_3d vsol_digital_curve_3d vsol_line_3d vsol_polyline_3d vsol_region_3d vsol_orient_box_3d vsol_polyhedron vsol_polygon_3d vsol_tetrahedron vsol_rectangle_3d vsol_triangle_3d List of all members.

Detailed Description

Definition at line 81 of file vsol_spatial_object_3d.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

virtual ~vsol_spatial_object_3d ()
virtual vsol_spatial_object_3d_type spatial_type () const=0
 get the spatial type.
const char * get_name () const
void un_protect ()
 unprotect the object.
virtual vsol_spatial_object_3dclone () const=0
 Clone `this': creation of a new object and initialization.
virtual vcl_string is_a () const=0
 Return a platform independent string identifying the class.
short version () const
 Return IO version number;.
virtual void b_write (vsl_b_ostream &os) const
 Binary save self to stream.
virtual void b_read (vsl_b_istream &is)
 Binary load self from stream.
virtual void print (vcl_ostream &strm=vcl_cout) const
virtual void describe (vcl_ostream &=vcl_cout, int=0) 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_3dcast_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_3dcast_to_vsol_spatial_object ()
virtual vsol_spatial_object_3d
const * 
cast_to_vsol_spatial_object () const
virtual vsol_point_3dcast_to_point ()
virtual vsol_point_3d const * cast_to_point () const
virtual vsol_curve_3dcast_to_curve ()
virtual vsol_curve_3d const * cast_to_curve () const
virtual vsol_surface_3dcast_to_surface ()
virtual vsol_surface_3d const * cast_to_surface () const
virtual vsol_volume_3dcast_to_volume ()
virtual vsol_volume_3d const * cast_to_volume () const
virtual vsol_region_3dcast_to_region ()
virtual vsol_region_3d const * cast_to_region () const
virtual vsol_group_3dcast_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

Protected Member Functions

 vsol_spatial_object_3d ()
 constructor initializes basic vsol_spatial_object_3d attributes.
 vsol_spatial_object_3d (vsol_spatial_object_3d const &other)
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_

Private Attributes

vsol_box_3d_sptr bounding_box_

Friends

vcl_ostream & operator<< (vcl_ostream &, vsol_spatial_object_3d const &)
vcl_ostream & operator<< (vcl_ostream &, vsol_spatial_object_3d const *)

Member Enumeration Documentation

enum vsol_spatial_object_3d::vsol_spatial_object_3d_type

Enumerator:
SPATIAL_NO_TYPE 
TOPOLOGYOBJECT 
POINT 
CURVE 
REGION 
SPATIALGROUP 
VOLUME 
NUM_SPATIALOBJECT_TYPES 

Definition at line 90 of file vsol_spatial_object_3d.h.


Constructor & Destructor Documentation

vsol_spatial_object_3d::~vsol_spatial_object_3d (  )  [virtual]

Definition at line 49 of file vsol_spatial_object_3d.cxx.

vsol_spatial_object_3d::vsol_spatial_object_3d (  )  [protected]

constructor initializes basic vsol_spatial_object_3d attributes.

bounding_box is set to NULL.

Definition at line 24 of file vsol_spatial_object_3d.cxx.

vsol_spatial_object_3d::vsol_spatial_object_3d ( vsol_spatial_object_3d const &  other  )  [protected]

Definition at line 32 of file vsol_spatial_object_3d.cxx.


Member Function Documentation

void vsol_spatial_object_3d::not_applicable ( vcl_string const &  message  )  const [inline, protected]

Definition at line 113 of file vsol_spatial_object_3d.h.

virtual vsol_spatial_object_3d_type vsol_spatial_object_3d::spatial_type (  )  const [pure virtual]

get the spatial type.

Implemented in vsol_curve_3d, vsol_cylinder, vsol_group_3d, vsol_point_3d, vsol_region_3d, and vsol_volume_3d.

const char * vsol_spatial_object_3d::get_name (  )  const

Definition at line 40 of file vsol_spatial_object_3d.cxx.

void vsol_spatial_object_3d::un_protect (  )  [inline]

unprotect the object.

Definition at line 128 of file vsol_spatial_object_3d.h.

virtual vsol_spatial_object_3d* vsol_spatial_object_3d::clone (  )  const [pure virtual]

Clone `this': creation of a new object and initialization.

See Prototype pattern

Implemented in vsol_cylinder, vsol_digital_curve_3d, vsol_group_3d, vsol_line_3d, vsol_orient_box_3d, vsol_point_3d, vsol_polygon_3d, vsol_polyhedron, vsol_polyline_3d, vsol_rectangle_3d, vsol_tetrahedron, and vsol_triangle_3d.

virtual vcl_string vsol_spatial_object_3d::is_a (  )  const [pure virtual]

Return a platform independent string identifying the class.

Implemented in vsol_cylinder, vsol_digital_curve_3d, vsol_group_3d, vsol_line_3d, vsol_orient_box_3d, vsol_point_3d, vsol_polygon_3d, vsol_polyhedron, vsol_polyline_3d, vsol_rectangle_3d, vsol_region_3d, vsol_surface_3d, vsol_tetrahedron, vsol_triangle_3d, and vsol_volume_3d.

short vsol_spatial_object_3d::version (  )  const

Return IO version number;.

Reimplemented in vsol_cylinder, vsol_digital_curve_3d, vsol_group_3d, vsol_line_3d, vsol_point_3d, vsol_polygon_3d, vsol_polyhedron, vsol_polyline_3d, vsol_rectangle_3d, and vsol_triangle_3d.

Definition at line 54 of file vsol_spatial_object_3d.cxx.

void vsol_spatial_object_3d::b_write ( vsl_b_ostream os  )  const [virtual]

Binary save self to stream.

Reimplemented in vsol_cylinder, vsol_digital_curve_3d, vsol_group_3d, vsol_line_3d, vsol_point_3d, vsol_polygon_3d, vsol_polyhedron, vsol_polyline_3d, vsol_rectangle_3d, and vsol_triangle_3d.

Definition at line 145 of file vsol_spatial_object_3d.cxx.

void vsol_spatial_object_3d::b_read ( vsl_b_istream is  )  [virtual]

Binary load self from stream.

Reimplemented in vsol_cylinder, vsol_digital_curve_3d, vsol_group_3d, vsol_line_3d, vsol_point_3d, vsol_polygon_3d, vsol_polyhedron, vsol_polyline_3d, vsol_rectangle_3d, and vsol_triangle_3d.

Definition at line 154 of file vsol_spatial_object_3d.cxx.

virtual void vsol_spatial_object_3d::print ( vcl_ostream &  strm = vcl_cout  )  const [inline, virtual]

Definition at line 149 of file vsol_spatial_object_3d.h.

virtual void vsol_spatial_object_3d::describe ( vcl_ostream &  = vcl_cout,
int  = 0 
) const [inline, virtual]

Reimplemented in vsol_cylinder, vsol_digital_curve_3d, vsol_group_3d, vsol_line_3d, vsol_point_3d, vsol_polygon_3d, vsol_polyhedron, vsol_polyline_3d, vsol_rectangle_3d, vsol_tetrahedron, and vsol_triangle_3d.

Definition at line 150 of file vsol_spatial_object_3d.h.

virtual bool vsol_spatial_object_3d::operator== ( vsol_spatial_object_3d const &  obj  )  const [inline, virtual]

Reimplemented in vsol_digital_curve_3d, vsol_group_3d, vsol_line_3d, vsol_point_3d, vsol_polygon_3d, vsol_polyhedron, vsol_polyline_3d, vsol_rectangle_3d, and vsol_triangle_3d.

Definition at line 156 of file vsol_spatial_object_3d.h.

bool vsol_spatial_object_3d::operator!= ( vsol_spatial_object_3d const &  obj  )  [inline]

Definition at line 157 of file vsol_spatial_object_3d.h.

vsol_box_3d_sptr vsol_spatial_object_3d::get_bounding_box (  )  const [inline]

Definition at line 161 of file vsol_spatial_object_3d.h.

double vsol_spatial_object_3d::get_min_x (  )  const

Reimplemented in vsol_orient_box_3d.

Definition at line 113 of file vsol_spatial_object_3d.cxx.

double vsol_spatial_object_3d::get_max_x (  )  const

Reimplemented in vsol_orient_box_3d.

Definition at line 118 of file vsol_spatial_object_3d.cxx.

double vsol_spatial_object_3d::get_min_y (  )  const

Reimplemented in vsol_orient_box_3d.

Definition at line 123 of file vsol_spatial_object_3d.cxx.

double vsol_spatial_object_3d::get_max_y (  )  const

Reimplemented in vsol_orient_box_3d.

Definition at line 128 of file vsol_spatial_object_3d.cxx.

double vsol_spatial_object_3d::get_min_z (  )  const

Reimplemented in vsol_orient_box_3d.

Definition at line 133 of file vsol_spatial_object_3d.cxx.

double vsol_spatial_object_3d::get_max_z (  )  const

Reimplemented in vsol_orient_box_3d.

Definition at line 138 of file vsol_spatial_object_3d.cxx.

void vsol_spatial_object_3d::empty_bounding_box (  )  const [protected]

make the bounding box empty; often first step in bounding box calculation.

Definition at line 64 of file vsol_spatial_object_3d.cxx.

void vsol_spatial_object_3d::set_bounding_box ( vsol_box_3d_sptr const &  box  )  const [protected]

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]

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_spatial_object_3d::add_to_bounding_box ( double  x,
double  y,
double  z 
) const [protected]

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]

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_spatial_object_3d::grow_minmax_bounds ( vsol_box_3d_sptr const &  b  )  const [inline, protected]

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.

void vsol_spatial_object_3d::compute_bounding_box (  )  const [protected, virtual]

compute bounding box, do nothing in this case except touching the box.

Reimplemented in vsol_digital_curve_3d, vsol_group_3d, vsol_line_3d, vsol_point_3d, vsol_polygon_3d, vsol_polyhedron, and vsol_polyline_3d.

Definition at line 59 of file vsol_spatial_object_3d.cxx.

void vsol_spatial_object_3d::check_update_bounding_box (  )  const [protected]

Test consistency of bound.

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.

virtual vsol_spatial_object_3d* vsol_spatial_object_3d::cast_to_spatial_object (  )  [inline, virtual]

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]

Definition at line 197 of file vsol_spatial_object_3d.h.

virtual vtol_topology_object* vsol_spatial_object_3d::cast_to_topology_object (  )  [inline, virtual]

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]

Definition at line 200 of file vsol_spatial_object_3d.h.

virtual vsol_spatial_object_3d* vsol_spatial_object_3d::cast_to_vsol_spatial_object (  )  [inline, virtual]

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]

Definition at line 203 of file vsol_spatial_object_3d.h.

virtual vsol_point_3d* vsol_spatial_object_3d::cast_to_point ( void   )  [inline, virtual]

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]

Reimplemented in vsol_point_3d, and vsol_point_3d.

Definition at line 205 of file vsol_spatial_object_3d.h.

virtual vsol_curve_3d* vsol_spatial_object_3d::cast_to_curve (  )  [inline, virtual]

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]

Reimplemented in vsol_curve_3d.

Definition at line 207 of file vsol_spatial_object_3d.h.

virtual vsol_surface_3d* vsol_spatial_object_3d::cast_to_surface ( void   )  [inline, virtual]

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]

Reimplemented in vsol_surface_3d, and vsol_surface_3d.

Definition at line 209 of file vsol_spatial_object_3d.h.

virtual vsol_volume_3d* vsol_spatial_object_3d::cast_to_volume (  )  [inline, virtual]

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]

Reimplemented in vsol_volume_3d.

Definition at line 211 of file vsol_spatial_object_3d.h.

virtual vsol_region_3d* vsol_spatial_object_3d::cast_to_region ( void   )  [inline, virtual]

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]

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_group_3d* vsol_spatial_object_3d::cast_to_group ( void   )  [inline, virtual]

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]

Reimplemented in vsol_group_3d.

Definition at line 215 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.

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_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.

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_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.

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.

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.

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.

int vsol_flags_id::get_tag_id (  )  [inline, inherited]

Definition at line 106 of file vsol_flags_id.h.

void vsol_flags_id::set_tag_id ( int  id  )  [inline, inherited]

Definition at line 111 of file vsol_flags_id.h.


Friends And Related Function Documentation

vcl_ostream& operator<< ( vcl_ostream &  strm,
vsol_spatial_object_3d const &  so 
) [friend]

Definition at line 220 of file vsol_spatial_object_3d.h.

vcl_ostream& operator<< ( vcl_ostream &  strm,
vsol_spatial_object_3d const *  so 
) [friend]

Definition at line 226 of file vsol_spatial_object_3d.h.


Member Data Documentation

vsol_box_3d_sptr vsol_spatial_object_3d::bounding_box_ [mutable, private]

Definition at line 87 of file vsol_spatial_object_3d.h.

const char * vsol_spatial_object_3d::SpatialTypes [static]

Definition at line 102 of file vsol_spatial_object_3d.h.

const float vsol_spatial_object_3d::eps [static]

Definition at line 103 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::id_ [protected, inherited]

Definition at line 39 of file vsol_flags_id.h.

int vsol_flags_id::tagcount_ [static, protected, inherited]

Definition at line 40 of file vsol_flags_id.h.


The documentation for this class was generated from the following files:
Generated on Mon Mar 8 05:20:53 2010 for contrib/gel/vsol by  doxygen 1.5.1