|
IsoEx
|
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] |
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.
1.8.8