IsoEx
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Modules Pages
Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
IsoEx::RegularGrid< Vec3 > Class Template Reference
Inheritance diagram for IsoEx::RegularGrid< Vec3 >:
IsoEx::Grid< Vec3 > IsoEx::ImplicitGrid< Vec3 > IsoEx::ScalarGridT< Scalar > IsoEx::VectorFieldT< Scalar, Dim > IsoEx::VectorFieldT< Scalar, 3 > IsoEx::VolumeImageT< Scalar >

Classes

struct  Intersection
 

Public Types

typedef ACG::Matrix4x4T
< typename Vec3::value_type > 
Matrix
 
typedef Vec3::value_type real
 
typedef Grid< Vec3 >::CubeIdx CubeIdx
 CubeIdx can be used to refer to cubes.
 
typedef Grid< Vec3 >::PointIdx PointIdx
 The grid points can be referred to by PointIdx.
 
- Public Types inherited from IsoEx::Grid< Vec3 >
typedef Vec3 Vec3
 
typedef Vec3::value_type real
 
typedef unsigned int CubeIdx
 CubeIdx can be used to refer to cubes.
 
typedef unsigned int PointIdx
 The grid points can be referred to by PointIdx.
 

Public Member Functions

 RegularGrid (const Vec3 &_origin=Vec3(0, 0, 0), const Vec3 &_x_axis=Vec3(1, 0, 0), const Vec3 &_y_axis=Vec3(0, 1, 0), const Vec3 &_z_axis=Vec3(0, 0, 1), unsigned int _x_res=1, unsigned int _y_res=1, unsigned int _z_res=1)
 
void initialize (const Vec3 &_origin, const Vec3 &_x_axis, const Vec3 &_y_axis, const Vec3 &_z_axis, unsigned int _x_res, unsigned int _y_res, unsigned int _z_res)
 function to initialize the grid
 
unsigned int n_cubes () const
 Return number of cubes.
 
unsigned int n_points () const
 Return number of points.
 
PointIdx point_idx (CubeIdx _idx, unsigned char _corner) const
 Return the PointIdx of the _corners'th corner of the cube _idx.
 
Vec3 point (PointIdx _idx) const
 Return the 3D point refered to by _idx.
 
Vec3 point (int x, int y, int z) const
 Return the 3D point refered to by x,y,z.
 
PointIdx nearest_point (const Vec3 &_p)
 Return the nearest grid point.
 
const Vec3 & origin () const
 
const Vec3 & x_axis () const
 
const Vec3 & y_axis () const
 
const Vec3 & z_axis () const
 
const Vec3 & dx () const
 
const Vec3 & dy () const
 
const Vec3 & dz () const
 
unsigned int x_resolution () const
 
unsigned int y_resolution () const
 
unsigned int z_resolution () const
 
Vec3 to_local (const Vec3 &_pw)
 transforms a point to local cube coordinates
 
Vec3 to_world (const Vec3 &_pl)
 transforms a point for local cube coordinates to world coordinates
 
bool ray_intersect_local (const Vec3 &_o, const Vec3 &_d, Vec3 &_entry, Vec3 &_exit)
 function to intersect a Ray with the cube ( local coordinates )
 
real volume ()
 returns the volume of the grid
 
virtual real outer_surface ()
 returns the outer surface of the grid
 
- Public Member Functions inherited from IsoEx::Grid< Vec3 >
 Grid ()
 Default constructor.
 
virtual ~Grid ()
 Destructor.
 
CubeIterator begin () const
 Returns begin iterator for the grid's cubes.
 
CubeIterator end () const
 Returns end iterator for the grid's cubes.
 
virtual PointIdx point_idx (CubeIdx _idx, unsigned char _corner) const =0
 Return the PointIdx of the _corners'th corner of the cube _idx.
 
virtual Vec3 point (PointIdx _idx) const =0
 Return the 3D point refered to by _idx.
 
virtual bool is_inside (PointIdx _pidx) const =0
 See IsoEx::Implicit::is_inside()
 
virtual real scalar_distance (PointIdx _pidx) const =0
 See IsoEx::Implicit::scalar_distance()
 
virtual bool directed_distance (const Vec3 &_p0, const Vec3 &_p1, Vec3 &_point, Vec3 &_normal, real &_distance) const =0
 See IsoEx::Implicit::directed_distance()
 

Protected Attributes

Matrix to_local_
 
Matrix to_world_
 
Vec3 origin_
 
Vec3 x_axis_
 
Vec3 y_axis_
 
Vec3 z_axis_
 
Vec3 dx_
 
Vec3 dy_
 
Vec3 dz_
 
unsigned int x_res_
 
unsigned int y_res_
 
unsigned int z_res_
 
unsigned int n_cubes_
 
unsigned int n_points_
 
CubeIdx offsets_ [8]
 

Detailed Description

template<class Vec3>
class IsoEx::RegularGrid< Vec3 >

This class implements a regular 3D grid.

Constructor & Destructor Documentation

template<class Vec3>
IsoEx::RegularGrid< Vec3 >::RegularGrid ( const Vec3 &  _origin = Vec3( 0, 0, 0 ),
const Vec3 &  _x_axis = Vec3( 1, 0, 0 ),
const Vec3 &  _y_axis = Vec3( 0, 1, 0 ),
const Vec3 &  _z_axis = Vec3( 0, 0, 1 ),
unsigned int  _x_res = 1,
unsigned int  _y_res = 1,
unsigned int  _z_res = 1 
)
inline

Constructor: given the implicit to be sampled, the grids extend in 3-space (origin and 3 axes) as well as the resolution (number of steps) of the axes. The grid will contain _x_res*_y_res*_z_res points and (_x_res-1)*(_y_res-1)*(_z_res-1) cubes.

Note
The resolution of each axis has to be less than 1024. This is to make sure that a cube or point can be represented by one integer.

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