SCIRun  5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
ScanlineMesh< Basis > Class Template Reference

#include <ScanlineMesh.h>

Inheritance diagram for ScanlineMesh< Basis >:
Mesh Datatype MeshTraits< VMesh > Persistent HasId< IdType, IdGenerator > StructCurveMesh< Basis >

Classes

struct  Cell
 
struct  Edge
 
class  ElemData
 
struct  Face
 
struct  Node
 Index and Iterator types required for Mesh Concept. More...
 

Public Types

typedef SCIRun::index_type under_type
 
typedef SCIRun::index_type index_type
 
typedef SCIRun::size_type size_type
 
typedef SCIRun::mask_type mask_type
 
typedef boost::shared_ptr
< ScanlineMesh< Basis > > 
handle_type
 
typedef Basis basis_type
 
typedef Edge Elem
 
typedef Node DElem
 
- Public Types inherited from Mesh
enum  {
  UNKNOWN = 0, STRUCTURED = 1 << 1, UNSTRUCTURED = 1 << 2, REGULAR = 1 << 3,
  IRREGULAR = 1 << 4
}
 These will become obsolete at some point. More...
 
enum  {
  NONE_E = 0, NODES_E = 1 << 0, EDGES_E = 1 << 1, FACES_E = 1 << 2,
  CELLS_E = 1 << 3, ELEMS_E = 1 << 4, DELEMS_E = 1 << 5, ENODES_E = 1 << 6,
  ALL_ELEMENTS_E = NODES_E | EDGES_E | FACES_E | CELLS_E | ENODES_E | ELEMS_E | DELEMS_E, NORMALS_E = 1 << 7, NODE_NEIGHBORS_E = 1 << 8, ELEM_NEIGHBORS_E = 1 << 9,
  NEIGHBORS_E = NODE_NEIGHBORS_E | ELEM_NEIGHBORS_E, NODE_LOCATE_E = 1 << 10, ELEM_LOCATE_E = 1 << 11, LOCATE_E = NODE_LOCATE_E | ELEM_LOCATE_E,
  EPSILON_E = 1 << 12, BOUNDING_BOX_E = 1 << 12, FIND_CLOSEST_NODE_E = 1 << 13, FIND_CLOSEST_ELEM_E = 1 << 14,
  FIND_CLOSEST_E = FIND_CLOSEST_NODE_E | FIND_CLOSEST_ELEM_E
}
 Synchronize system. More...
 
- Public Types inherited from Datatype
typedef HasIntegerId::id_type id_type
 
- Public Types inherited from HasId< IdType, IdGenerator >
typedef IdType id_type
 
- Public Types inherited from MeshTraits< VMesh >
typedef SCIRun::mask_type mask_type
 
typedef SCIRun::index_type under_type
 
typedef SCIRun::index_type index_type
 
typedef SCIRun::index_type size_type
 
typedef std::vector< index_typearray_type
 
typedef std::vector< size_typedimension_type
 
typedef boost::shared_ptr
< MeshFacade< VMesh > > 
MeshFacadeHandle
 

Public Member Functions

 ScanlineMesh ()
 
 ScanlineMesh (index_type nx, const Core::Geometry::Point &min, const Core::Geometry::Point &max)
 
 ScanlineMesh (ScanlineMesh *mh, index_type offset, index_type nx)
 
 ScanlineMesh (const ScanlineMesh &copy)
 
virtual ScanlineMeshclone () const
 
virtual ~ScanlineMesh ()
 
virtual VMeshvmesh ()
 Access point to virtual interface. More...
 
virtual MeshFacadeHandle getFacade () const
 
virtual int basis_order ()
 
virtual bool has_normals () const
 
virtual bool has_face_normals () const
 
virtual bool is_editable () const
 
index_type get_min_i () const
 get the mesh statistics More...
 
bool get_min (std::vector< index_type > &) const
 
size_type get_ni () const
 
virtual bool get_dim (std::vector< size_type > &) const
 
Core::Geometry::Vector diagonal () const
 
virtual Core::Geometry::BBox get_bounding_box () const
 
virtual void transform (const Core::Geometry::Transform &t)
 
virtual void get_canonical_transform (Core::Geometry::Transform &t)
 
void set_min_i (index_type i)
 set the mesh statistics More...
 
void set_min (std::vector< index_type > mins)
 
void set_ni (size_type i)
 
virtual void set_dim (std::vector< size_type > dims)
 
void begin (typename Node::iterator &) const
 
void begin (typename Edge::iterator &) const
 
void begin (typename Face::iterator &) const
 
void begin (typename Cell::iterator &) const
 
void end (typename Node::iterator &) const
 
void end (typename Edge::iterator &) const
 
void end (typename Face::iterator &) const
 
void end (typename Cell::iterator &) const
 
void size (typename Node::size_type &) const
 
void size (typename Edge::size_type &) const
 
void size (typename Face::size_type &) const
 
void size (typename Cell::size_type &) const
 
void to_index (typename Node::index_type &index, index_type i) const
 
void to_index (typename Edge::index_type &index, index_type i) const
 
void to_index (typename Face::index_type &, index_type) const
 
void to_index (typename Cell::index_type &, index_type) const
 
void get_nodes (typename Node::array_type &, typename Edge::index_type) const
 get the child elements of the given index More...
 
void get_nodes (typename Node::array_type &, typename Face::index_type) const
 
void get_nodes (typename Node::array_type &, typename Cell::index_type) const
 
void get_edges (typename Edge::array_type &, typename Edge::index_type) const
 
void get_edges (typename Edge::array_type &, typename Face::index_type) const
 
void get_edges (typename Edge::array_type &, typename Cell::index_type) const
 
void get_faces (typename Face::array_type &, typename Elem::index_type) const
 
void get_elems (typename Elem::array_type &result, typename Node::index_type idx) const
 get the parent element(s) of the given index More...
 
void get_elems (typename Elem::array_type &, typename Edge::index_type) const
 
void get_elems (typename Elem::array_type &, typename Face::index_type) const
 
void get_delems (typename DElem::array_type &result, typename Elem::index_type idx) const
 Wrapper to get the derivative elements from this element. More...
 
double get_size (typename Node::index_type) const
 Get the size of an elemnt (length, area, volume) More...
 
double get_size (typename Edge::index_type idx) const
 
double get_size (typename Face::index_type) const
 
double get_size (typename Cell::index_type) const
 
double get_length (typename Edge::index_type idx) const
 
double get_area (typename Face::index_type idx) const
 
double get_volume (typename Cell::index_type) const
 
int get_valence (typename Node::index_type idx) const
 
int get_valence (typename Edge::index_type) const
 
int get_valence (typename Face::index_type) const
 
int get_valence (typename Cell::index_type) const
 
void get_center (Core::Geometry::Point &, typename Node::index_type) const
 get the center point (in object space) of an element More...
 
void get_center (Core::Geometry::Point &, typename Edge::index_type) const
 
void get_center (Core::Geometry::Point &, typename Face::index_type) const
 
void get_center (Core::Geometry::Point &, typename Cell::index_type) const
 
bool locate (typename Node::index_type &, const Core::Geometry::Point &) const
 
bool locate (typename Edge::index_type &, const Core::Geometry::Point &) const
 
bool locate (typename Face::index_type &, const Core::Geometry::Point &) const
 
bool locate (typename Cell::index_type &, const Core::Geometry::Point &) const
 
bool locate (typename Elem::index_type &, std::vector< double > &coords, const Core::Geometry::Point &) const
 
int get_weights (const Core::Geometry::Point &p, typename Node::array_type &l, double *w)
 
int get_weights (const Core::Geometry::Point &p, typename Edge::array_type &l, double *w)
 
int get_weights (const Core::Geometry::Point &, typename Face::array_type &, double *)
 
int get_weights (const Core::Geometry::Point &, typename Cell::array_type &, double *)
 
void get_random_point (Core::Geometry::Point &p, typename Elem::index_type i, FieldRNG &rng) const
 
void get_point (Core::Geometry::Point &p, typename Node::index_type i) const
 
void get_normal (Core::Geometry::Vector &, typename Node::index_type) const
 
void get_normal (Core::Geometry::Vector &, std::vector< double > &, typename Elem::index_type, unsigned int)
 
Core::Geometry::Transformget_transform ()
 
Core::Geometry::Transformset_transform (const Core::Geometry::Transform &trans)
 
virtual int dimensionality () const
 
virtual int topology_geometry () const
 
Basis & get_basis ()
 
void pwl_approx_edge (std::vector< std::vector< double > > &coords, typename Elem::index_type, unsigned int, unsigned int div_per_unit) const
 piecewise linear approximation of an edge. More...
 
void pwl_approx_face (std::vector< std::vector< std::vector< double > > > &, typename Elem::index_type, typename Face::index_type, unsigned int) const
 
virtual bool synchronize (mask_type)
 
virtual bool unsynchronize (mask_type)
 
bool clear_synchronization ()
 
template<class VECTOR >
bool get_coords (VECTOR &coords, const Core::Geometry::Point &p, typename Elem::index_type idx) const
 
template<class VECTOR >
void interpolate (Core::Geometry::Point &pt, const VECTOR &coords, typename Elem::index_type idx) const
 
template<class VECTOR1 , class VECTOR2 >
void derivate (const VECTOR1 &coords, typename Elem::index_type idx, VECTOR2 &J) const
 
template<class VECTOR >
double det_jacobian (const VECTOR &coords, typename Elem::index_type idx) const
 
template<class VECTOR >
void jacobian (const VECTOR &coords, typename Elem::index_type idx, double *J) const
 
template<class VECTOR >
double inverse_jacobian (const VECTOR &coords, typename Elem::index_type idx, double *Ji) const
 
double scaled_jacobian_metric (typename Elem::index_type) const
 
double jacobian_metric (typename Elem::index_type) const
 
double get_epsilon () const
 
virtual void io (Piostream &)
 Export this class using the old Pio system. More...
 
virtual std::string dynamic_type_name () const
 
virtual const TypeDescriptionget_type_description () const
 
template<class INDEX >
bool find_closest_node (double &pdist, Core::Geometry::Point &result, INDEX &node, const Core::Geometry::Point &p, double maxdist) const
 
template<class INDEX >
bool find_closest_node (double &pdist, Core::Geometry::Point &result, INDEX &node, const Core::Geometry::Point &p) const
 
template<class INDEX , class ARRAY >
bool find_closest_elem (double &pdist, Core::Geometry::Point &result, ARRAY &coords, INDEX &elem, const Core::Geometry::Point &p) const
 
template<class INDEX , class ARRAY >
bool find_closest_elem (double &pdist, Core::Geometry::Point &result, ARRAY &coords, INDEX &elem, const Core::Geometry::Point &p, double maxdist) const
 
template<class INDEX >
bool find_closest_elem (double &pdist, Core::Geometry::Point &result, INDEX &elem, const Core::Geometry::Point &p) const
 
template<class ARRAY >
bool find_closest_elems (double &pdist, Core::Geometry::Point &result, ARRAY &elems, const Core::Geometry::Point &p) const
 
- Public Member Functions inherited from Mesh
 Mesh ()
 
 Mesh (const Mesh &copy)
 
virtual ~Mesh ()
 
- Public Member Functions inherited from Datatype
 Datatype ()
 
virtual ~Datatype ()
 
 Datatype (const Datatype &other)
 
Datatypeoperator= (const Datatype &rhs)
 
template<typename T >
const T * as () const
 
- Public Member Functions inherited from Persistent
virtual ~Persistent ()
 
- Public Member Functions inherited from HasId< IdType, IdGenerator >
 HasId ()
 
IdType id () const
 

Static Public Member Functions

static const std::string type_name (int n=-1)
 Core functionality for getting the name of a templated mesh class. More...
 
static const TypeDescriptionnode_type_description ()
 
static const TypeDescriptionedge_type_description ()
 
static const TypeDescriptionface_type_description ()
 
static const TypeDescriptioncell_type_description ()
 
static const TypeDescriptionelem_type_description ()
 
static Persistentmaker ()
 This function returns a maker for Pio. More...
 
static MeshHandle mesh_maker ()
 This function returns a handle for the virtual interface. More...
 
static MeshHandle scanline_maker (size_type x, const Core::Geometry::Point &min, const Core::Geometry::Point &max)
 This function returns a handle for the virtual interface. More...
 
- Static Public Member Functions inherited from Mesh
static const std::string type_name (int n=-1)
 
- Static Public Member Functions inherited from Persistent
static PersistentTypeIDPtr find_derived (const std::string &classname, const std::string &basename)
 
static bool is_base_of (const std::string &parent, const std::string &type)
 
static void add_class (const std::string &type, const std::string &parent, Persistent *(*maker)(), Persistent *(*bc_maker1)()=0, Persistent *(*bc_maker2)()=0)
 
static void add_mesh_class (const std::string &type, Persistent *(*maker)(), Persistent *(*bc_maker1)()=0, Persistent *(*bc_maker2)()=0)
 
static void add_field_class (const std::string &type, Persistent *(*maker)(), Persistent *(*bc_maker1)()=0, Persistent *(*bc_maker2)()=0)
 

Static Public Attributes

static PersistentTypeID scanline_typeid
 
- Static Public Attributes inherited from Mesh
static PersistentTypeID type_id
 

Protected Member Functions

void compute_jacobian ()
 

Protected Attributes

index_type min_i_
 the min typename Node::index_type ( incase this is a subLattice ) More...
 
size_type ni_
 
Core::Geometry::Transform transform_
 the object space extents of a ScanlineMesh More...
 
Basis basis_
 the basis fn More...
 
boost::shared_ptr< VMeshvmesh_
 
double jacobian_ [9]
 
double inverse_jacobian_ [9]
 
double det_jacobian_
 
double scaled_jacobian_
 
double det_inverse_jacobian_
 

Friends

template<class MESH >
class VScanlineMesh
 Make sure the virtual interface has access. More...
 
class ElemData
 

Detailed Description

template<class Basis>
class SCIRun::ScanlineMesh< Basis >

Functions for creating the virtual interface Declare the functions that instantiate the virtual interface

These declarations are needed for a combined dynamic compilation as as well as virtual functions solution. Declare that these can be found in a library that is already precompiled. So dynamic compilation will not instantiate them again.

Member Typedef Documentation

typedef Basis basis_type
typedef Node DElem
typedef Edge Elem
typedef boost::shared_ptr<ScanlineMesh<Basis> > handle_type

Constructor & Destructor Documentation

ScanlineMesh ( )
inline
ScanlineMesh ( index_type  nx,
const Core::Geometry::Point min,
const Core::Geometry::Point max 
)

Create a new virtual interface for this copy all pointers have changed hence create a new virtual interface class

ScanlineMesh ( ScanlineMesh< Basis > *  mh,
index_type  offset,
index_type  nx 
)
inline

Create a new virtual interface for this copy all pointers have changed hence create a new virtual interface class

ScanlineMesh ( const ScanlineMesh< Basis > &  copy)
inline

Create a new virtual interface for this copy all pointers have changed hence create a new virtual interface class

virtual ~ScanlineMesh ( )
inlinevirtual

Member Function Documentation

virtual int basis_order ( )
inlinevirtual

Reimplemented from Mesh.

void begin ( typename Node::iterator itr) const
void begin ( typename Edge::iterator itr) const
void begin ( typename Face::iterator ) const
void begin ( typename Cell::iterator ) const
const TypeDescription * cell_type_description ( )
static
bool clear_synchronization ( )
inline
virtual ScanlineMesh* clone ( ) const
inlinevirtual

Implements Mesh.

Reimplemented in StructCurveMesh< Basis >.

void compute_jacobian ( )
protected
void derivate ( const VECTOR1 &  coords,
typename Elem::index_type  idx,
VECTOR2 &  J 
) const
inline

Interpolate the derivate of the function, This infact will return the jacobian of the local to global coordinate transformation. This function is mainly intended for the non linear elements

double det_jacobian ( const VECTOR &  coords,
typename Elem::index_type  idx 
) const
inline

Get the determinant of the jacobian, which is the local volume of an element and is intended to help with the integration of functions over an element.

Core::Geometry::Vector diagonal ( ) const
virtual int dimensionality ( ) const
inlinevirtual
virtual std::string dynamic_type_name ( ) const
inlinevirtual
const TypeDescription * edge_type_description ( )
static
static const TypeDescription* elem_type_description ( )
inlinestatic
void end ( typename Node::iterator itr) const
void end ( typename Edge::iterator itr) const
void end ( typename Face::iterator ) const
void end ( typename Cell::iterator ) const
const TypeDescription * face_type_description ( )
static
bool find_closest_elem ( double &  pdist,
Core::Geometry::Point result,
ARRAY &  coords,
INDEX &  elem,
const Core::Geometry::Point p 
) const
inline

If there are no elements, we cannot find the closest

bool find_closest_elem ( double &  pdist,
Core::Geometry::Point result,
ARRAY &  coords,
INDEX &  elem,
const Core::Geometry::Point p,
double  maxdist 
) const
inline
bool find_closest_elem ( double &  pdist,
Core::Geometry::Point result,
INDEX &  elem,
const Core::Geometry::Point p 
) const
inline

This function will find the closest element and the location on that element that is the closest

If there are no elements, we cannot find the closest

bool find_closest_elems ( double &  pdist,
Core::Geometry::Point result,
ARRAY &  elems,
const Core::Geometry::Point p 
) const
inline

This function will return multiple elements if the closest point is located on a node or edge. All bordering elements are returned in that case.

If there are no elements, we cannot find the closest

bool find_closest_node ( double &  pdist,
Core::Geometry::Point result,
INDEX &  node,
const Core::Geometry::Point p,
double  maxdist 
) const
inline

This function will find the closest element and the location on that element that is the closest

bool find_closest_node ( double &  pdist,
Core::Geometry::Point result,
INDEX &  node,
const Core::Geometry::Point p 
) const
inline

This function will find the closest element and the location on that element that is the closest

If there are no elements, we cannot find the closest

double get_area ( typename Face::index_type  idx) const
inline
Basis& get_basis ( )
inline
Core::Geometry::BBox get_bounding_box ( ) const
virtual

Reimplemented in StructCurveMesh< Basis >.

void get_canonical_transform ( Core::Geometry::Transform t)
virtual
void get_center ( Core::Geometry::Point result,
typename Node::index_type  idx 
) const

get the center point (in object space) of an element

void get_center ( Core::Geometry::Point result,
typename Edge::index_type  idx 
) const
void get_center ( Core::Geometry::Point ,
typename Face::index_type   
) const
inline
void get_center ( Core::Geometry::Point ,
typename Cell::index_type   
) const
inline
bool get_coords ( VECTOR &  coords,
const Core::Geometry::Point p,
typename Elem::index_type  idx 
) const
inline

Get the local coordinates for a certain point within an element This function uses a couple of newton iterations to find the local coordinate of a point

void get_delems ( typename DElem::array_type result,
typename Elem::index_type  idx 
) const
inline

Wrapper to get the derivative elements from this element.

bool get_dim ( std::vector< size_type > &  array) const
virtual

Reimplemented in StructCurveMesh< Basis >.

void get_edges ( typename Edge::array_type ,
typename Edge::index_type   
) const
inline
void get_edges ( typename Edge::array_type ,
typename Face::index_type   
) const
inline
void get_edges ( typename Edge::array_type ,
typename Cell::index_type   
) const
inline
void get_elems ( typename Elem::array_type result,
typename Node::index_type  idx 
) const

get the parent element(s) of the given index

void get_elems ( typename Elem::array_type ,
typename Edge::index_type   
) const
inline
void get_elems ( typename Elem::array_type ,
typename Face::index_type   
) const
inline
double get_epsilon ( ) const
void get_faces ( typename Face::array_type ,
typename Elem::index_type   
) const
inline
double get_length ( typename Edge::index_type  idx) const
inline
bool get_min ( std::vector< index_type > &  array) const
index_type get_min_i ( ) const
inline

get the mesh statistics

size_type get_ni ( ) const
inline
void get_nodes ( typename Node::array_type array,
typename Edge::index_type  idx 
) const

get the child elements of the given index

void get_nodes ( typename Node::array_type ,
typename Face::index_type   
) const
inline
void get_nodes ( typename Node::array_type ,
typename Cell::index_type   
) const
inline
void get_normal ( Core::Geometry::Vector ,
typename Node::index_type   
) const
inline
void get_normal ( Core::Geometry::Vector ,
std::vector< double > &  ,
typename Elem::index_type  ,
unsigned  int 
)
inline
void get_point ( Core::Geometry::Point p,
typename Node::index_type  i 
) const
inline
void get_random_point ( Core::Geometry::Point p,
typename Elem::index_type  i,
FieldRNG rng 
) const
double get_size ( typename Node::index_type  ) const
inline

Get the size of an elemnt (length, area, volume)

double get_size ( typename Edge::index_type  idx) const
inline
double get_size ( typename Face::index_type  ) const
inline
double get_size ( typename Cell::index_type  ) const
inline
Core::Geometry::Transform& get_transform ( )
inline
const TypeDescription * get_type_description ( ) const
virtual

Type description, used for finding names of the mesh class for dynamic compilation purposes. Some of this should be obsolete

Implements Mesh.

Reimplemented in StructCurveMesh< Basis >.

int get_valence ( typename Node::index_type  idx) const
inline
int get_valence ( typename Edge::index_type  ) const
inline
int get_valence ( typename Face::index_type  ) const
inline
int get_valence ( typename Cell::index_type  ) const
inline
double get_volume ( typename Cell::index_type  ) const
inline
int get_weights ( const Core::Geometry::Point p,
typename Node::array_type l,
double *  w 
)
int get_weights ( const Core::Geometry::Point p,
typename Edge::array_type l,
double *  w 
)
int get_weights ( const Core::Geometry::Point ,
typename Face::array_type ,
double *   
)
inline
int get_weights ( const Core::Geometry::Point ,
typename Cell::array_type ,
double *   
)
inline
virtual MeshFacadeHandle getFacade ( ) const
inlinevirtual

Implements Mesh.

virtual bool has_face_normals ( ) const
inlinevirtual
virtual bool has_normals ( ) const
inlinevirtual
void interpolate ( Core::Geometry::Point pt,
const VECTOR &  coords,
typename Elem::index_type  idx 
) const
inline

Find the location in the global coordinate system for a local coordinate This function is the opposite of get_coords.

double inverse_jacobian ( const VECTOR &  coords,
typename Elem::index_type  idx,
double *  Ji 
) const
inline

Get the inverse jacobian of the transformation. This one is needed to translate local gradients into global gradients. Hence it is crucial for calculating gradients of fields, or constructing finite elements.

void io ( Piostream stream)
virtual

Export this class using the old Pio system.

Reimplemented from Mesh.

Reimplemented in StructCurveMesh< Basis >.

virtual bool is_editable ( ) const
inlinevirtual
void jacobian ( const VECTOR &  coords,
typename Elem::index_type  idx,
double *  J 
) const
inline

Get the jacobian of the transformation. In case one wants the non inverted version of this matrix. This is currentl here for completeness of the interface

double jacobian_metric ( typename Elem::index_type  ) const
inline
bool locate ( typename Node::index_type node,
const Core::Geometry::Point p 
) const

If there are no nodes, return false, otherwise there will always be a node that is closest

bool locate ( typename Edge::index_type elem,
const Core::Geometry::Point p 
) const

If there are no elements, we are definitely not inside an element

Not inside any elements

bool locate ( typename Face::index_type ,
const Core::Geometry::Point  
) const
inline
bool locate ( typename Cell::index_type ,
const Core::Geometry::Point  
) const
inline
bool locate ( typename Elem::index_type elem,
std::vector< double > &  coords,
const Core::Geometry::Point p 
) const

If there are no elements, we are definitely not inside an element

Not inside any elements

static Persistent* maker ( )
inlinestatic

This function returns a maker for Pio.

static MeshHandle mesh_maker ( )
inlinestatic

This function returns a handle for the virtual interface.

const TypeDescription * node_type_description ( )
static
void pwl_approx_edge ( std::vector< std::vector< double > > &  coords,
typename Elem::index_type  ,
unsigned  int,
unsigned int  div_per_unit 
) const
inline

piecewise linear approximation of an edge.

Generate the list of points that make up a sufficiently accurate

void pwl_approx_face ( std::vector< std::vector< std::vector< double > > > &  ,
typename Elem::index_type  ,
typename Face::index_type  ,
unsigned  int 
) const
inline

Generate the list of points that make up a sufficiently accurate piecewise linear approximation of an face.

double scaled_jacobian_metric ( typename Elem::index_type  ) const
inline
static MeshHandle scanline_maker ( size_type  x,
const Core::Geometry::Point min,
const Core::Geometry::Point max 
)
inlinestatic

This function returns a handle for the virtual interface.

void set_dim ( std::vector< size_type dims)
virtual

Create a new virtual interface for this copy all pointers have changed hence create a new virtual interface class

Reimplemented in StructCurveMesh< Basis >.

void set_min ( std::vector< index_type mins)
void set_min_i ( index_type  i)
inline

set the mesh statistics

void set_ni ( size_type  i)
inline

Create a new virtual interface for this copy all pointers have changed hence create a new virtual interface class

Core::Geometry::Transform& set_transform ( const Core::Geometry::Transform trans)
inline
void size ( typename Node::size_type s) const
void size ( typename Edge::size_type s) const
void size ( typename Face::size_type ) const
void size ( typename Cell::size_type ) const
virtual bool synchronize ( mask_type  )
inlinevirtual

Synchronize functions, as there is nothing to synchronize, these functions always succeed

Reimplemented from Mesh.

Reimplemented in StructCurveMesh< Basis >.

void to_index ( typename Node::index_type index,
index_type  i 
) const
inline
void to_index ( typename Edge::index_type index,
index_type  i 
) const
inline
void to_index ( typename Face::index_type ,
index_type   
) const
inline
void to_index ( typename Cell::index_type ,
index_type   
) const
inline
virtual int topology_geometry ( ) const
inlinevirtual

Reimplemented in StructCurveMesh< Basis >.

void transform ( const Core::Geometry::Transform t)
virtual

Reimplemented in StructCurveMesh< Basis >.

const std::string type_name ( int  n = -1)
static

Core functionality for getting the name of a templated mesh class.

virtual bool unsynchronize ( mask_type  )
inlinevirtual

Reimplemented from Mesh.

Reimplemented in StructCurveMesh< Basis >.

virtual VMesh* vmesh ( )
inlinevirtual

Access point to virtual interface.

Reimplemented from Mesh.

Friends And Related Function Documentation

friend class ElemData
friend
friend class VScanlineMesh
friend

Make sure the virtual interface has access.

Member Data Documentation

Basis basis_
protected

the basis fn

double det_inverse_jacobian_
protected
double det_jacobian_
protected
double inverse_jacobian_[9]
protected
double jacobian_[9]
protected
index_type min_i_
protected

the min typename Node::index_type ( incase this is a subLattice )

size_type ni_
protected

the typename Node::index_type space extents of a ScanlineMesh (min=min_typename Node::index_type, max=min+extents-1)

double scaled_jacobian_
protected
PersistentTypeID scanline_typeid
static

These IDs are created as soon as this class will be instantiated The first one is for Pio and the second for the virtual interface These are currently different as they serve different needs.

Core::Geometry::Transform transform_
protected

the object space extents of a ScanlineMesh

boost::shared_ptr<VMesh> vmesh_
protected

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