Base class for topology objects. More...
#include <vtol_topology_object.h>
Public Types | |
enum | vsol_spatial_object_2d_type |
Public Member Functions | |
vtol_topology_object () | |
Default constructor. | |
vtol_topology_object (int num_inferiors, int num_superiors) | |
Constructor with given sizes for arrays of inferiors and superiors. | |
virtual vtol_topology_object * | cast_to_topology_object () |
virtual const vtol_topology_object * | cast_to_topology_object () const |
virtual const vtol_vertex * | cast_to_vertex () const |
Return `this' if `this' is a vertex, 0 otherwise. | |
virtual vtol_vertex * | cast_to_vertex () |
Return `this' if `this' is a vertex, 0 otherwise. | |
virtual const vtol_zero_chain * | cast_to_zero_chain () const |
Return `this' if `this' is a zero_chain, 0 otherwise. | |
virtual vtol_zero_chain * | cast_to_zero_chain () |
Return `this' if `this' is a zero_chain, 0 otherwise. | |
virtual const vtol_edge * | cast_to_edge () const |
Return `this' if `this' is an edge, 0 otherwise. | |
virtual vtol_edge * | cast_to_edge () |
Return `this' if `this' is an edge, 0 otherwise. | |
virtual const vtol_chain * | cast_to_chain () const |
Return `this' if `this' is a chain, 0 otherwise. | |
virtual vtol_chain * | cast_to_chain () |
Return `this' if `this' is a chain, 0 otherwise. | |
virtual const vtol_one_chain * | cast_to_one_chain () const |
Return `this' if `this' is a one_chain, 0 otherwise. | |
virtual vtol_one_chain * | cast_to_one_chain () |
Return `this' if `this' is a one_chain, 0 otherwise. | |
virtual const vtol_face * | cast_to_face () const |
Return `this' if `this' is a face, 0 otherwise. | |
virtual vtol_face * | cast_to_face () |
Return `this' if `this' is a face, 0 otherwise. | |
virtual const vtol_two_chain * | cast_to_two_chain () const |
Return `this' if `this' is a two_chain, 0 otherwise. | |
virtual vtol_two_chain * | cast_to_two_chain () |
Return `this' if `this' is a two_chain, 0 otherwise. | |
virtual const vtol_block * | cast_to_block () const |
Return `this' if `this' is a block, 0 otherwise. | |
virtual vtol_block * | cast_to_block () |
Return `this' if `this' is a block, 0 otherwise. | |
virtual bool | valid_inferior_type (vtol_topology_object const *inf) const =0 |
Is `inferior' type valid for `this' ?. | |
bool | valid_superior_type (vtol_topology_object const *sup) const |
Is `superior' type valid for `this' ?. | |
bool | is_inferior (vtol_topology_object_sptr inferior) const |
Is `inferior' already an inferior of `this' ?. | |
bool | is_superior (vtol_topology_object *const &superior) const |
Is `superior' already a superior of `this' ?. | |
int | numinf () const |
Number of inferiors. | |
int | numsup () const |
Number of superiors. | |
const vcl_list < vtol_topology_object * > * | superiors_list () const |
topology_list * | inferiors () |
Return the inferiors list. | |
const topology_list * | inferiors () const |
virtual vsol_spatial_object_2d_type | spatial_type () const |
Return the spatial type. | |
void | link_inferior (vtol_topology_object_sptr inferior) |
Link `this' with an inferior `inferior'. | |
void | unlink_inferior (vtol_topology_object_sptr inferior) |
Unlink `this' from the inferior `inferior'. | |
void | unlink_all_inferiors () |
Unlink `this' from all its inferiors. | |
void | unlink () |
Unlink `this' of the network. | |
void | vertices (vertex_list &list) const |
Get list of vertices. | |
void | zero_chains (zero_chain_list &list) const |
Get list of zero chains. | |
void | edges (edge_list &list) const |
Get list of edges. | |
void | one_chains (one_chain_list &list) const |
Get list of one chains. | |
void | faces (face_list &list) const |
Get list of faces. | |
void | two_chains (two_chain_list &list) const |
Get list of two chains. | |
void | blocks (block_list &list) const |
Get list of blocks. | |
virtual void | print (vcl_ostream &strm=vcl_cout) const |
print and describe the objects. | |
void | describe_inferiors (vcl_ostream &strm=vcl_cout, int blanking=0) const |
void | describe_superiors (vcl_ostream &strm=vcl_cout, int blanking=0) const |
virtual void | describe (vcl_ostream &strm=vcl_cout, int blanking=0) const |
virtual void | compute_bounding_box () const |
compute the bounding box from the set of vertices. | |
virtual vcl_vector < vtol_vertex * > * | compute_vertices () |
compute lists of vertices. | |
virtual vcl_vector < vtol_zero_chain * > * | compute_zero_chains () |
compute lists of zero chains. | |
virtual vcl_vector< vtol_edge * > * | compute_edges () |
compute lists of edges. | |
virtual vcl_vector < vtol_one_chain * > * | compute_one_chains () |
compute lists of one chains. | |
virtual vcl_vector< vtol_face * > * | compute_faces () |
compute lists of faces. | |
virtual vcl_vector < vtol_two_chain * > * | compute_two_chains () |
compute lists of two chains. | |
virtual vcl_vector< vtol_block * > * | compute_blocks () |
compute lists of blocks. | |
const char * | get_name () const |
void | un_protect () |
virtual vsol_spatial_object_2d * | clone () const =0 |
virtual vcl_string | is_a () const =0 |
short | version () const |
virtual void | b_write (vsl_b_ostream &os) const |
virtual void | b_read (vsl_b_istream &is) |
virtual bool | operator== (vsol_spatial_object_2d const &obj) const |
bool | operator!= (vsol_spatial_object_2d const &obj) |
vsol_box_2d_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 |
virtual vsol_spatial_object_2d * | cast_to_spatial_object () |
virtual vsol_spatial_object_2d const * | cast_to_spatial_object () const |
virtual vsol_spatial_object_2d * | cast_to_vsol_spatial_object () |
virtual vsol_spatial_object_2d const * | cast_to_vsol_spatial_object () const |
virtual vsol_point_2d * | cast_to_point () |
virtual vsol_point_2d const * | cast_to_point () const |
virtual vsol_curve_2d * | cast_to_curve () |
virtual vsol_curve_2d const * | cast_to_curve () const |
virtual vsol_region_2d * | cast_to_region () |
virtual vsol_region_2d const * | cast_to_region () const |
virtual vsol_group_2d * | cast_to_group () |
virtual vsol_group_2d const * | cast_to_group () const |
int | get_id () const |
void | set_id (int i) |
void | set_user_flag (unsigned int flag) |
bool | get_user_flag (unsigned int flag) |
void | unset_user_flag (unsigned int flag) |
void | set_tagged_union_flag () |
bool | get_tagged_union_flag () |
void | unset_tagged_union_flag () |
int | get_tag_id () |
void | set_tag_id (int id) |
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 |
Public Attributes | |
SPATIAL_NO_TYPE | |
TOPOLOGYOBJECT | |
POINT | |
CURVE | |
REGION | |
SPATIALGROUP | |
VOLUME | |
NUM_SPATIALOBJECT_TYPES | |
Static Public Attributes | |
static const char * | SpatialTypes [] |
static const float | eps |
Protected Types | |
enum | vtol_topology_object_type { TOPOLOGY_NO_TYPE = 0, VERTEX, ZEROCHAIN, EDGE, ONECHAIN, FACE, TRIFACE, INTENSITYFACE, INTENSITYFACE3D, DDBINTENSITYFACE, TWOCHAIN, TRIMESHTWOCHAIN, BLOCK, NUM_TOPOLOGYOBJECT_TYPES } |
Protected Member Functions | |
virtual | ~vtol_topology_object () |
Destructor. | |
void | not_applicable (vcl_string const &message) const |
void | empty_bounding_box () const |
void | set_bounding_box (vsol_box_2d_sptr const &box) const |
void | set_bounding_box (double x, double y) const |
void | add_to_bounding_box (double x, double y) const |
void | add_to_bounding_box (vsol_box_2d_sptr const &box) const |
void | grow_minmax_bounds (vsol_box_2d_sptr const &b) const |
void | check_update_bounding_box () const |
Protected Attributes | |
vcl_list< vtol_topology_object * > | superiors_ |
topology_list | inferiors_ |
unsigned int | tag_ |
int | id_ |
unsigned long | timestamp_ |
Static Protected Attributes | |
static int | tagcount_ |
Private Member Functions | |
virtual vtol_topology_object_type | topology_type () const |
Return the topology type. | |
const topology_list * | superiors () const |
Return the superiors list (must be deallocated after use). | |
vertex_list * | vertices () const |
Get list of vertices. | |
zero_chain_list * | zero_chains () const |
Get list of zero chains. | |
edge_list * | edges () const |
Get list of edges. | |
one_chain_list * | one_chains () const |
Get list of one chains. | |
face_list * | faces () const |
Get list of faces. | |
two_chain_list * | two_chains () const |
Get list of two chains. | |
block_list * | blocks () const |
Get list of blocks. | |
Private Attributes | |
vtol_topology_cache * | inf_sup_cache_ |
Friends | |
class | vtol_topology_cache |
friend vcl_ostream & | operator<< (vcl_ostream &, vsol_spatial_object_2d const &) |
friend vcl_ostream & | operator<< (vcl_ostream &, vsol_spatial_object_2d const *) |
Base class for topology objects.
The vtol_topology_object class is the interface base class for all topological entities. There are only access methods in this class. vtol_topology_object inherits from vtol_spatial_object, which is the base class for all topology and geometry.
The topology class hierarchy:
vtol_topology_object | | | | | | | | vertex zero_chain edge one_chain face two_chain block | | | vertex_2d edge_2d face_2d
(Actually, one_chain and two_chain share a common parent class vtol_chain, but that's just a matter of convenience; conceptually, the scheme is this.)
Incidence of: (vsol_point) (vsol_curve) (vsol_surface) (vsol_volume) Directed Sequence of: vertex edge face
The vertex, edge and face entities account for incidence between points, curves and surfaces, respectively. For example, two vtol_edge(s) are incident at exactly one vtol_vertex. That is, an edge does not intersect itself or another edge, except possibly at a vertex. The chain entities are directed sequences which define composite structures. Each element of the chain has a sign associated with with it denoting the "direction" of use in a boundary traversal. For example, a closed vtol_one_chain (a 1-cycle) forms the boundary of a surface region. Two adjacent surface regions (vtol_face(s)) use an edge in the opposite sense in their bounding 1-chains.
The data member "inferiors_" stores a list of all topology objects of the type "below" the current one, which form the boundary of this one. All these objects should have the current object listed in their "superiors_" list. It is the responsibility of the superior to break the link with its inferior, not vice versa, hence conceptually the "superiors_" entries are under control of the referred superior object. Otherwise said, an object cannot live without its inferiors (and will disappear when its inferiors disappear), while an object can live without its superiors (and is just notified of their appearance and disappearance by the entries listed in its superiors_ list).
As a consequence, the "inferior" does not obtain a new time stamp when its superiors change (hence its "superiors_" list is mutable). This also explains why the "superiors_" list consists of ordinary pointers, not smart pointers: the refcount toggling is done from superior to inferior (which requires its inferiors to be kept alive), not from inferior to superior (which need not bother about its superiors' existence).
Definition at line 109 of file vtol_topology_object.h.
enum vtol_topology_object::vtol_topology_object_type [protected] |
TOPOLOGY_NO_TYPE | |
VERTEX | |
ZEROCHAIN | |
EDGE | |
ONECHAIN | |
FACE | |
TRIFACE | |
INTENSITYFACE | |
INTENSITYFACE3D | |
DDBINTENSITYFACE | |
TWOCHAIN | |
TRIMESHTWOCHAIN | |
BLOCK | |
NUM_TOPOLOGYOBJECT_TYPES |
Definition at line 132 of file vtol_topology_object.h.
vtol_topology_object::vtol_topology_object | ( | void | ) |
Default constructor.
Definition at line 17 of file vtol_topology_object.cxx.
vtol_topology_object::vtol_topology_object | ( | int | num_inferiors, |
int | num_superiors | ||
) |
Constructor with given sizes for arrays of inferiors and superiors.
Definition at line 27 of file vtol_topology_object.cxx.
vtol_topology_object::~vtol_topology_object | ( | ) | [protected, virtual] |
Destructor.
Definition at line 39 of file vtol_topology_object.cxx.
void vtol_topology_object::blocks | ( | block_list & | list | ) | const |
block_list * vtol_topology_object::blocks | ( | void | ) | const [private] |
Get list of blocks.
get list of blocks.
returned list must be deleted after use.
Definition at line 255 of file vtol_topology_object.cxx.
virtual const vtol_block* vtol_topology_object::cast_to_block | ( | ) | const [inline, virtual] |
Return `this' if `this' is a block, 0 otherwise.
Reimplemented in vtol_block.
Definition at line 236 of file vtol_topology_object.h.
virtual vtol_block* vtol_topology_object::cast_to_block | ( | ) | [inline, virtual] |
Return `this' if `this' is a block, 0 otherwise.
Reimplemented in vtol_block.
Definition at line 240 of file vtol_topology_object.h.
virtual const vtol_chain* vtol_topology_object::cast_to_chain | ( | ) | const [inline, virtual] |
Return `this' if `this' is a chain, 0 otherwise.
Reimplemented in vtol_chain.
Definition at line 204 of file vtol_topology_object.h.
virtual vtol_chain* vtol_topology_object::cast_to_chain | ( | ) | [inline, virtual] |
Return `this' if `this' is a chain, 0 otherwise.
Reimplemented in vtol_chain.
Definition at line 208 of file vtol_topology_object.h.
virtual const vtol_edge* vtol_topology_object::cast_to_edge | ( | ) | const [inline, virtual] |
Return `this' if `this' is an edge, 0 otherwise.
Reimplemented in vtol_edge.
Definition at line 196 of file vtol_topology_object.h.
virtual vtol_edge* vtol_topology_object::cast_to_edge | ( | ) | [inline, virtual] |
Return `this' if `this' is an edge, 0 otherwise.
Reimplemented in vtol_edge.
Definition at line 200 of file vtol_topology_object.h.
virtual const vtol_face* vtol_topology_object::cast_to_face | ( | ) | const [inline, virtual] |
Return `this' if `this' is a face, 0 otherwise.
Reimplemented in vtol_face.
Definition at line 220 of file vtol_topology_object.h.
virtual vtol_face* vtol_topology_object::cast_to_face | ( | ) | [inline, virtual] |
Return `this' if `this' is a face, 0 otherwise.
Reimplemented in vtol_face.
Definition at line 224 of file vtol_topology_object.h.
virtual const vtol_one_chain* vtol_topology_object::cast_to_one_chain | ( | ) | const [inline, virtual] |
Return `this' if `this' is a one_chain, 0 otherwise.
Reimplemented in vtol_one_chain.
Definition at line 212 of file vtol_topology_object.h.
virtual vtol_one_chain* vtol_topology_object::cast_to_one_chain | ( | ) | [inline, virtual] |
Return `this' if `this' is a one_chain, 0 otherwise.
Reimplemented in vtol_one_chain.
Definition at line 216 of file vtol_topology_object.h.
virtual vtol_topology_object* vtol_topology_object::cast_to_topology_object | ( | ) | [inline, virtual] |
Reimplemented from vsol_spatial_object_2d.
Definition at line 175 of file vtol_topology_object.h.
virtual const vtol_topology_object* vtol_topology_object::cast_to_topology_object | ( | ) | const [inline, virtual] |
Reimplemented from vsol_spatial_object_2d.
Definition at line 176 of file vtol_topology_object.h.
virtual const vtol_two_chain* vtol_topology_object::cast_to_two_chain | ( | ) | const [inline, virtual] |
Return `this' if `this' is a two_chain, 0 otherwise.
Reimplemented in vtol_two_chain.
Definition at line 228 of file vtol_topology_object.h.
virtual vtol_two_chain* vtol_topology_object::cast_to_two_chain | ( | ) | [inline, virtual] |
Return `this' if `this' is a two_chain, 0 otherwise.
Reimplemented in vtol_two_chain.
Definition at line 232 of file vtol_topology_object.h.
virtual const vtol_vertex* vtol_topology_object::cast_to_vertex | ( | ) | const [inline, virtual] |
Return `this' if `this' is a vertex, 0 otherwise.
Reimplemented in vtol_vertex.
Definition at line 180 of file vtol_topology_object.h.
virtual vtol_vertex* vtol_topology_object::cast_to_vertex | ( | ) | [inline, virtual] |
Return `this' if `this' is a vertex, 0 otherwise.
Reimplemented in vtol_vertex.
Definition at line 184 of file vtol_topology_object.h.
virtual const vtol_zero_chain* vtol_topology_object::cast_to_zero_chain | ( | ) | const [inline, virtual] |
Return `this' if `this' is a zero_chain, 0 otherwise.
Reimplemented in vtol_zero_chain.
Definition at line 188 of file vtol_topology_object.h.
virtual vtol_zero_chain* vtol_topology_object::cast_to_zero_chain | ( | ) | [inline, virtual] |
Return `this' if `this' is a zero_chain, 0 otherwise.
Reimplemented in vtol_zero_chain.
Definition at line 192 of file vtol_topology_object.h.
vcl_vector< vtol_block * > * vtol_topology_object::compute_blocks | ( | void | ) | [virtual] |
compute lists of blocks.
Reimplemented in vtol_one_chain, vtol_two_chain, vtol_edge, vtol_zero_chain, vtol_vertex, vtol_face, and vtol_block.
Definition at line 380 of file vtol_topology_object.cxx.
void vtol_topology_object::compute_bounding_box | ( | void | ) | const [virtual] |
compute the bounding box from the set of vertices.
A generic method that applies to all topology_object(s)
Reimplemented from vsol_spatial_object_2d.
Reimplemented in vtol_face, vtol_vertex_2d, vtol_one_chain, and vtol_edge_2d.
Definition at line 389 of file vtol_topology_object.cxx.
vcl_vector< vtol_edge * > * vtol_topology_object::compute_edges | ( | void | ) | [virtual] |
compute lists of edges.
Reimplemented in vtol_one_chain, vtol_two_chain, vtol_edge, vtol_zero_chain, vtol_vertex, vtol_face, and vtol_block.
Definition at line 346 of file vtol_topology_object.cxx.
vcl_vector< vtol_face * > * vtol_topology_object::compute_faces | ( | void | ) | [virtual] |
compute lists of faces.
Reimplemented in vtol_one_chain, vtol_two_chain, vtol_edge, vtol_zero_chain, vtol_vertex, vtol_face, and vtol_block.
Definition at line 363 of file vtol_topology_object.cxx.
vcl_vector< vtol_one_chain * > * vtol_topology_object::compute_one_chains | ( | void | ) | [virtual] |
compute lists of one chains.
Reimplemented in vtol_one_chain, vtol_two_chain, vtol_edge, vtol_zero_chain, vtol_vertex, vtol_face, and vtol_block.
Definition at line 355 of file vtol_topology_object.cxx.
vcl_vector< vtol_two_chain * > * vtol_topology_object::compute_two_chains | ( | void | ) | [virtual] |
compute lists of two chains.
Reimplemented in vtol_one_chain, vtol_two_chain, vtol_edge, vtol_zero_chain, vtol_vertex, vtol_face, and vtol_block.
Definition at line 372 of file vtol_topology_object.cxx.
vcl_vector< vtol_vertex * > * vtol_topology_object::compute_vertices | ( | void | ) | [virtual] |
compute lists of vertices.
Compute lists of vertices.
Reimplemented in vtol_one_chain, vtol_two_chain, vtol_edge, vtol_zero_chain, vtol_vertex, vtol_face, and vtol_block.
Definition at line 327 of file vtol_topology_object.cxx.
vcl_vector< vtol_zero_chain * > * vtol_topology_object::compute_zero_chains | ( | void | ) | [virtual] |
compute lists of zero chains.
Compute lists of zero chains.
Reimplemented in vtol_one_chain, vtol_two_chain, vtol_edge, vtol_zero_chain, vtol_vertex, vtol_face, and vtol_block.
Definition at line 337 of file vtol_topology_object.cxx.
void vtol_topology_object::describe | ( | vcl_ostream & | strm = vcl_cout , |
int | blanking = 0 |
||
) | const [virtual] |
Reimplemented from vsol_spatial_object_2d.
Reimplemented in vtol_two_chain, vtol_edge, vtol_one_chain, vtol_face, vtol_block, vtol_edge_2d, vtol_vertex_2d, vtol_zero_chain, vtol_face_2d, and vtol_vertex.
Definition at line 314 of file vtol_topology_object.cxx.
void vtol_topology_object::describe_inferiors | ( | vcl_ostream & | strm = vcl_cout , |
int | blanking = 0 |
||
) | const |
Definition at line 277 of file vtol_topology_object.cxx.
void vtol_topology_object::describe_superiors | ( | vcl_ostream & | strm = vcl_cout , |
int | blanking = 0 |
||
) | const |
Definition at line 294 of file vtol_topology_object.cxx.
void vtol_topology_object::edges | ( | edge_list & | list | ) | const |
edge_list * vtol_topology_object::edges | ( | void | ) | const [private] |
Get list of edges.
get list of edges.
returned list must be deleted after use.
Definition at line 191 of file vtol_topology_object.cxx.
void vtol_topology_object::faces | ( | face_list & | list | ) | const |
face_list * vtol_topology_object::faces | ( | void | ) | const [private] |
Get list of faces.
get list of faces.
returned list must be deleted after use.
Definition at line 223 of file vtol_topology_object.cxx.
topology_list* vtol_topology_object::inferiors | ( | ) | [inline] |
Return the inferiors list.
Definition at line 280 of file vtol_topology_object.h.
const topology_list* vtol_topology_object::inferiors | ( | ) | const [inline] |
Definition at line 281 of file vtol_topology_object.h.
bool vtol_topology_object::is_inferior | ( | vtol_topology_object_sptr | inferior | ) | const |
Is `inferior' already an inferior of `this' ?.
Definition at line 51 of file vtol_topology_object.cxx.
bool vtol_topology_object::is_superior | ( | vtol_topology_object *const & | superior | ) | const |
Is `superior' already a superior of `this' ?.
Definition at line 64 of file vtol_topology_object.cxx.
void vtol_topology_object::link_inferior | ( | vtol_topology_object_sptr | inferior | ) |
Link `this' with an inferior `inferior'.
REQUIRE: valid_inferior_type(inferior) and !is_inferior(inferior)
Require: valid_inferior_type(inferior) and !is_inferior(inferior)
Reimplemented in vtol_edge, vtol_two_chain, vtol_one_chain, vtol_face, and vtol_block.
Definition at line 98 of file vtol_topology_object.cxx.
int vtol_topology_object::numinf | ( | ) | const [inline] |
Number of inferiors.
Definition at line 265 of file vtol_topology_object.h.
int vtol_topology_object::numsup | ( | ) | const [inline] |
Number of superiors.
Definition at line 269 of file vtol_topology_object.h.
void vtol_topology_object::one_chains | ( | one_chain_list & | list | ) | const |
Get list of one chains.
get list of one chains.
Definition at line 216 of file vtol_topology_object.cxx.
one_chain_list * vtol_topology_object::one_chains | ( | void | ) | const [private] |
Get list of one chains.
get list of one chains.
returned list must be deleted after use.
Definition at line 207 of file vtol_topology_object.cxx.
void vtol_topology_object::print | ( | vcl_ostream & | strm = vcl_cout | ) | const [virtual] |
print and describe the objects.
print the object.
Reimplemented from vsol_spatial_object_2d.
Reimplemented in vtol_two_chain, vtol_edge, vtol_one_chain, vtol_face, vtol_block, vtol_vertex_2d, vtol_edge_2d, vtol_zero_chain, vtol_face_2d, and vtol_vertex.
Definition at line 270 of file vtol_topology_object.cxx.
virtual vsol_spatial_object_2d_type vtol_topology_object::spatial_type | ( | void | ) | const [inline, virtual] |
Return the spatial type.
Implements vsol_spatial_object_2d.
Definition at line 285 of file vtol_topology_object.h.
const topology_list* vtol_topology_object::superiors | ( | ) | const [private] |
Return the superiors list (must be deallocated after use).
const vcl_list<vtol_topology_object*>* vtol_topology_object::superiors_list | ( | ) | const [inline] |
Definition at line 276 of file vtol_topology_object.h.
virtual vtol_topology_object_type vtol_topology_object::topology_type | ( | ) | const [inline, private, virtual] |
Return the topology type.
To be overridden by all subclasses
Reimplemented in vtol_one_chain, vtol_two_chain, vtol_zero_chain, vtol_block, vtol_intensity_face, vtol_edge, vtol_face, and vtol_vertex.
Definition at line 151 of file vtol_topology_object.h.
void vtol_topology_object::two_chains | ( | two_chain_list & | list | ) | const |
Get list of two chains.
get list of two chains.
Definition at line 248 of file vtol_topology_object.cxx.
two_chain_list * vtol_topology_object::two_chains | ( | void | ) | const [private] |
Get list of two chains.
get list of two chains.
returned list must be deleted after use.
Definition at line 239 of file vtol_topology_object.cxx.
void vtol_topology_object::unlink | ( | void | ) |
Unlink `this' of the network.
Reimplemented in vtol_chain.
Definition at line 152 of file vtol_topology_object.cxx.
void vtol_topology_object::unlink_all_inferiors | ( | void | ) |
Unlink `this' from all its inferiors.
Definition at line 143 of file vtol_topology_object.cxx.
void vtol_topology_object::unlink_inferior | ( | vtol_topology_object_sptr | inferior | ) |
Unlink `this' from the inferior `inferior'.
Unlink `this' with the inferior `inferior'.
REQUIRE: valid_inferior_type(inferior) and is_inferior(inferior)
Require: valid_inferior_type(inferior) and is_inferior(inferior)
Reimplemented in vtol_edge, vtol_two_chain, vtol_one_chain, vtol_face, and vtol_block.
Definition at line 118 of file vtol_topology_object.cxx.
virtual bool vtol_topology_object::valid_inferior_type | ( | vtol_topology_object const * | inf | ) | const [pure virtual] |
Is `inferior' type valid for `this' ?.
Implemented in vtol_edge, vtol_two_chain, vtol_one_chain, vtol_zero_chain, vtol_face, vtol_block, and vtol_vertex.
bool vtol_topology_object::valid_superior_type | ( | vtol_topology_object const * | sup | ) | const [inline] |
Is `superior' type valid for `this' ?.
Definition at line 252 of file vtol_topology_object.h.
void vtol_topology_object::vertices | ( | vertex_list & | list | ) | const |
Get list of vertices.
get list of vertices.
Definition at line 170 of file vtol_topology_object.cxx.
vertex_list * vtol_topology_object::vertices | ( | void | ) | const [private] |
Get list of vertices.
get list of vertices.
returned list must be deleted after use.
Definition at line 161 of file vtol_topology_object.cxx.
void vtol_topology_object::zero_chains | ( | zero_chain_list & | list | ) | const |
Get list of zero chains.
get list of zero chains.
Definition at line 184 of file vtol_topology_object.cxx.
zero_chain_list * vtol_topology_object::zero_chains | ( | void | ) | const [private] |
Get list of zero chains.
get list of zero_chains.
returned list must be deleted after use.
Definition at line 176 of file vtol_topology_object.cxx.
friend class vtol_topology_cache [friend] |
Definition at line 412 of file vtol_topology_object.h.
vtol_topology_cache* vtol_topology_object::inf_sup_cache_ [mutable, private] |
Definition at line 118 of file vtol_topology_object.h.
topology_list vtol_topology_object::inferiors_ [protected] |
Definition at line 130 of file vtol_topology_object.h.
vcl_list<vtol_topology_object*> vtol_topology_object::superiors_ [protected] |
Definition at line 125 of file vtol_topology_object.h.