44 #ifndef _INCLUDED_Field3D_CoordSys_H_ 45 #define _INCLUDED_Field3D_CoordSys_H_ 67 const FIELD3D_VEC3_T<T> &e2,
68 const FIELD3D_VEC3_T<T> &e3,
69 const FIELD3D_VEC3_T<T> &origin);
82 const FIELD3D_VEC3_T<T> &wsVoxelSize);
95 floor(
const FIELD3D_VEC3_T<T> &v)
103 template <
typename T>
105 ceil(
const FIELD3D_VEC3_T<T> &v)
118 template <
typename T>
120 const FIELD3D_VEC3_T<T> &e2,
121 const FIELD3D_VEC3_T<T> &e3,
122 const FIELD3D_VEC3_T<T> &origin)
142 template <
typename T>
146 const FIELD3D_VEC3_T<T> &wsVoxelSize)
148 const FIELD3D_VEC3_T<T> voxelMin =
149 detail::floor<T>(wsBounds.min / wsVoxelSize) * wsVoxelSize;
150 const FIELD3D_VEC3_T<T> voxelMax =
151 detail::ceil<T>(wsBounds.max / wsVoxelSize) * wsVoxelSize;
153 const FIELD3D_BOX_T<FIELD3D_VEC3_T<T> > box(voxelMin, voxelMax);
160 template <
typename T>
165 FIELD3D_VEC3_T<T> e1(wsBounds.max.x - wsBounds.min.x, 0, 0);
166 FIELD3D_VEC3_T<T> e2(0, wsBounds.max.y - wsBounds.min.y, 0);
167 FIELD3D_VEC3_T<T> e3(0, 0, wsBounds.max.z - wsBounds.min.z);
168 FIELD3D_VEC3_T<T> origin(wsBounds.min);
178 #endif // Include guard #define FIELD3D_NAMESPACE_HEADER_CLOSE
Contains typedefs for the commonly used types in Field3D.
FIELD3D_NAMESPACE_OPEN FIELD3D_MTX_T< T > coordinateSystem(const FIELD3D_VEC3_T< T > &e1, const FIELD3D_VEC3_T< T > &e2, const FIELD3D_VEC3_T< T > &e3, const FIELD3D_VEC3_T< T > &origin)
Constructs a coordinate systems given a set of basis vectors and an origin.
FIELD3D_VEC3_T< T > floor(const FIELD3D_VEC3_T< T > &v)
Floor function for Vec3.
FIELD3D_VEC3_T< T > ceil(const FIELD3D_VEC3_T< T > &v)
Ceil function for Vec3.