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

Public Types

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::RegularGrid< Vec3 >
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

 ImplicitGrid (const Implicit< Vec3 > &_implicit, 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)
 Default constructor.
 
virtual ~ImplicitGrid ()
 Destructor.
 
This function calls will be passed to the implicit object.
virtual bool is_inside (PointIdx _pidx) const
 See IsoEx::Implicit::is_inside()
 
virtual real scalar_distance (PointIdx _pidx) const
 See IsoEx::Implicit::scalar_distance()
 
virtual bool directed_distance (const Vec3 &_p0, const Vec3 &_p1, Vec3 &_point, Vec3 &_normal, real &_distance) const
 See IsoEx::Implicit::directed_distance()
 
Enable caching of inside/outside/distance computations
void build_is_inside_cache () const
 Cache results of is_inside()
 
void build_scalar_distance_cache () const
 Cache results of scalar_distance()
 
- Public Member Functions inherited from 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)
 
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()
 

Protected Attributes

const Implicit< Vec3 > & implicit_
 
std::vector< bool > is_inside_cache_
 
std::vector< real > scalar_distance_cache_
 
- Protected Attributes inherited from IsoEx::RegularGrid< Vec3 >
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::ImplicitGrid< Vec3 >

This is the base class for all grids representing implicit objects, i.e. they store a reference to an implicit. All inside/outside tests and distance queries will be passed on to the implicit.

In addition, this grid also provides caching of inside/outside tests and scalar distance queries.


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