Public Types | Public Member Functions | Protected Attributes | Private Attributes
imesh_regular_face_array< s > Class Template Reference

An array of mesh faces of arbitrary size. More...

#include <imesh_face.h>

Inheritance diagram for imesh_regular_face_array< s >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef vcl_vector
< imesh_regular_face< s >
>::iterator 
iterator
typedef vcl_vector
< imesh_regular_face< s >
>::const_iterator 
const_iterator

Public Member Functions

 imesh_regular_face_array ()
 Default Constructor.
 imesh_regular_face_array (unsigned int size)
 Constructor.
 imesh_regular_face_array (const vcl_vector< imesh_regular_face< s > > &faces)
 Constructor (from a vector).
virtual unsigned int regularity () const
 returns the number of vertices per face if the same for all faces.
virtual unsigned int size () const
 returns the number of faces.
virtual unsigned int num_verts (unsigned int) const
 returns the number of vertices in face
virtual unsigned int operator() (unsigned int f, unsigned int i) const
 Access a vertex index by face index and within-face index.
virtual void flip_orientation (unsigned int f)
 Flip a face over, inverting its orientation.
virtual imesh_face_array_baseclone () const
 Produce a clone of this object (dynamic copy).
virtual void append (const imesh_face_array_base &other, unsigned int ind_shift=0)
 Append this array of faces (must be the same type).
void push_back (const imesh_regular_face< s > &f)
 Add a face to the array.
imesh_regular_face< s > & operator[] (unsigned int f)
 Access face.
const imesh_regular_face< s > & operator[] (unsigned int f) const
iterator begin ()
const_iterator begin () const
iterator end ()
const_iterator end () const
bool has_normals () const
 Return true if the faces have normals.
void set_normals (const vcl_vector< vgl_vector_3d< double > > &n)
 Set the face normals.
vgl_vector_3d< double > & normal (unsigned int f)
 Access a face normal.
const vgl_vector_3d< double > & normal (unsigned int f) const
const vcl_vector
< vgl_vector_3d< double > > & 
normals () const
 Access the entire vector of normals.
bool has_groups () const
 Returns true if the faces have named groups.
vcl_string group_name (unsigned int f) const
 Return the group name for a given face index.
unsigned int make_group (const vcl_string &name)
 Assign a group name to all faces currently unnamed.
vcl_set< unsigned int > group_face_set (const vcl_string &name) const
 Return a set of all faces in a group.
const vcl_vector< vcl_pair
< vcl_string, unsigned int > > & 
groups () const
 Access the groups.

Protected Attributes

vcl_vector< vcl_pair
< vcl_string, unsigned int > > 
groups_
 named groups of adjacent faces (a partition of the face array).
vcl_vector< vgl_vector_3d
< double > > 
normals_
 vectors that are normal to each face.

Private Attributes

vcl_vector< imesh_regular_face
< s > > 
faces_

Detailed Description

template<unsigned int s>
class imesh_regular_face_array< s >

An array of mesh faces of arbitrary size.

Definition at line 236 of file imesh_face.h.


Member Typedef Documentation

template<unsigned int s>
typedef vcl_vector<imesh_regular_face<s> >::const_iterator imesh_regular_face_array< s >::const_iterator

Definition at line 306 of file imesh_face.h.

template<unsigned int s>
typedef vcl_vector<imesh_regular_face<s> >::iterator imesh_regular_face_array< s >::iterator

Definition at line 305 of file imesh_face.h.


Constructor & Destructor Documentation

template<unsigned int s>
imesh_regular_face_array< s >::imesh_regular_face_array ( ) [inline]

Default Constructor.

Definition at line 242 of file imesh_face.h.

template<unsigned int s>
imesh_regular_face_array< s >::imesh_regular_face_array ( unsigned int  size) [inline]

Constructor.

Definition at line 245 of file imesh_face.h.

template<unsigned int s>
imesh_regular_face_array< s >::imesh_regular_face_array ( const vcl_vector< imesh_regular_face< s > > &  faces) [inline]

Constructor (from a vector).

Definition at line 248 of file imesh_face.h.


Member Function Documentation

template<unsigned int s>
virtual void imesh_regular_face_array< s >::append ( const imesh_face_array_base other,
unsigned int  ind_shift = 0 
) [inline, virtual]

Append this array of faces (must be the same type).

Optionally shift the indices in

Parameters:
otherby
ind_shift

Reimplemented from imesh_face_array_base.

Definition at line 278 of file imesh_face.h.

template<unsigned int s>
iterator imesh_regular_face_array< s >::begin ( ) [inline]

Definition at line 308 of file imesh_face.h.

template<unsigned int s>
const_iterator imesh_regular_face_array< s >::begin ( ) const [inline]

Definition at line 309 of file imesh_face.h.

template<unsigned int s>
virtual imesh_face_array_base* imesh_regular_face_array< s >::clone ( ) const [inline, virtual]

Produce a clone of this object (dynamic copy).

Implements imesh_face_array_base.

Definition at line 271 of file imesh_face.h.

template<unsigned int s>
iterator imesh_regular_face_array< s >::end ( ) [inline]

Definition at line 311 of file imesh_face.h.

template<unsigned int s>
const_iterator imesh_regular_face_array< s >::end ( ) const [inline]

Definition at line 312 of file imesh_face.h.

template<unsigned int s>
virtual void imesh_regular_face_array< s >::flip_orientation ( unsigned int  f) [inline, virtual]

Flip a face over, inverting its orientation.

Reimplemented from imesh_face_array_base.

Definition at line 264 of file imesh_face.h.

vcl_set< unsigned int > imesh_face_array_base::group_face_set ( const vcl_string &  name) const [inherited]

Return a set of all faces in a group.

Definition at line 26 of file imesh_face.cxx.

vcl_string imesh_face_array_base::group_name ( unsigned int  f) const [inherited]

Return the group name for a given face index.

Definition at line 8 of file imesh_face.cxx.

const vcl_vector<vcl_pair<vcl_string,unsigned int> >& imesh_face_array_base::groups ( ) const [inline, inherited]

Access the groups.

Definition at line 144 of file imesh_face.h.

bool imesh_face_array_base::has_groups ( ) const [inline, inherited]

Returns true if the faces have named groups.

Definition at line 131 of file imesh_face.h.

bool imesh_face_array_base::has_normals ( ) const [inline, inherited]

Return true if the faces have normals.

Definition at line 117 of file imesh_face.h.

unsigned int imesh_face_array_base::make_group ( const vcl_string &  name) [inherited]

Assign a group name to all faces currently unnamed.

Return the number of faces in the new group

Definition at line 44 of file imesh_face.cxx.

vgl_vector_3d<double>& imesh_face_array_base::normal ( unsigned int  f) [inline, inherited]

Access a face normal.

Definition at line 124 of file imesh_face.h.

const vgl_vector_3d<double>& imesh_face_array_base::normal ( unsigned int  f) const [inline, inherited]

Definition at line 125 of file imesh_face.h.

const vcl_vector<vgl_vector_3d<double> >& imesh_face_array_base::normals ( ) const [inline, inherited]

Access the entire vector of normals.

Definition at line 128 of file imesh_face.h.

template<unsigned int s>
virtual unsigned int imesh_regular_face_array< s >::num_verts ( unsigned int  ) const [inline, virtual]

returns the number of vertices in face

Parameters:
f.

Implements imesh_face_array_base.

Definition at line 258 of file imesh_face.h.

template<unsigned int s>
virtual unsigned int imesh_regular_face_array< s >::operator() ( unsigned int  f,
unsigned int  i 
) const [inline, virtual]

Access a vertex index by face index and within-face index.

Implements imesh_face_array_base.

Definition at line 261 of file imesh_face.h.

template<unsigned int s>
imesh_regular_face<s>& imesh_regular_face_array< s >::operator[] ( unsigned int  f) [inline]

Access face.

Parameters:
f.

Definition at line 300 of file imesh_face.h.

template<unsigned int s>
const imesh_regular_face<s>& imesh_regular_face_array< s >::operator[] ( unsigned int  f) const [inline]

Definition at line 301 of file imesh_face.h.

template<unsigned int s>
void imesh_regular_face_array< s >::push_back ( const imesh_regular_face< s > &  f) [inline]

Add a face to the array.

Definition at line 297 of file imesh_face.h.

template<unsigned int s>
virtual unsigned int imesh_regular_face_array< s >::regularity ( ) const [inline, virtual]

returns the number of vertices per face if the same for all faces.

Returns zero otherwise

Implements imesh_face_array_base.

Definition at line 252 of file imesh_face.h.

void imesh_face_array_base::set_normals ( const vcl_vector< vgl_vector_3d< double > > &  n) [inline, inherited]

Set the face normals.

Definition at line 120 of file imesh_face.h.

template<unsigned int s>
virtual unsigned int imesh_regular_face_array< s >::size ( ) const [inline, virtual]

returns the number of faces.

Implements imesh_face_array_base.

Definition at line 255 of file imesh_face.h.


Member Data Documentation

template<unsigned int s>
vcl_vector<imesh_regular_face<s> > imesh_regular_face_array< s >::faces_ [private]

Definition at line 238 of file imesh_face.h.

vcl_vector<vcl_pair<vcl_string,unsigned int> > imesh_face_array_base::groups_ [protected, inherited]

named groups of adjacent faces (a partition of the face array).

Integers mark the group's ending vertex + 1

Definition at line 149 of file imesh_face.h.

vcl_vector<vgl_vector_3d<double> > imesh_face_array_base::normals_ [protected, inherited]

vectors that are normal to each face.

Definition at line 152 of file imesh_face.h.


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