19 #ifndef GEOM_COMPOSITE3_HH
20 #define GEOM_COMPOSITE3_HH
24 #include <boost/filesystem/path.hpp>
75 YZ=0x1, ZY=0x1, XZ=0x2, ZX=0x2, XY=0x4, YX=0x4
124 return Vec3(axes_[0].GetHalfExtent(), axes_[1].GetHalfExtent(),
125 axes_[2].GetHalfExtent());
149 const Vec3& origin=
Vec3(0.0,0.0,0.0));
151 const Vec3& origin=
Vec3(0.0,0.0,0.0));
176 Quat generate_from_axis_angle(
const Vec3& axis,
Real angle);
177 Vec3 find_invariant_vector(
Mat3 rot);
178 Vec3 find_orthogonal_vector(
const Vec3& xyz);
179 Vec3 find_vector_for_BOD(
const Vec3& xyz,
const Vec3& uvw);
180 Quat generate_from_matrix(
const Mat3& rot);
190 const boost::filesystem::path& loc);
cuboid axis defined by a normalized direction vector and a half extent
CuboidAxis(const Vec3 &axis, Real half_extent)
Real GetHalfExtent() const
const Vec3 & GetVector() const
arbitrary oriented bounding cuboid
Cuboid(const Vec3 ¢er, const CuboidAxis &a, const CuboidAxis &b, const CuboidAxis &c)
const CuboidAxis & GetAxisA() const
const CuboidAxis & GetAxisC() const
const Vec3 & GetVecA() const
const Vec3 & GetVecB() const
Vec3 GetHalfExtents() const
const CuboidAxis & GetAxisB() const
const Vec3 & GetVecC() const
Line3(const Vec3 &from, const Vec3 &to)
Vec3 GetDirection() const
void SetNormal(const Vec3 &n)
Vec3 At(Real x, Real y) const
Plane(const Line3 &l, const Vec3 &p)
initialize based on a line and point
Plane(Real a, Real b, Real c, Real d)
initialize a,b,c,d (ax+by+cz+d=0)
Plane(const Vec3 &p1, const Vec3 &p2, const Vec3 &p3)
initialize based on 3 points defining a plane
Plane(Real x, Real y, Real z)
initialize based x-,y-,z- intercepts
Plane(const Vec3 &p, const Vec3 &n)
initialize based on a point and a normal
Rotation3(const Mat3 &rot, const Vec3 &origin=Vec3(0.0, 0.0, 0.0))
void SetRotationMatrix(const Mat3 &rot)
Vec3 GetRotationAxis() const
void SetOrigin(const Vec3 &o)
Rotation3(const Vec3 &axis, Real angle, const Vec3 &origin=Vec3(0.0, 0.0, 0.0))
Mat3 GetRotationMatrix() const
void SetQuat(const Quat &q)
void SetRotationAngle(Real angle)
Rotation3(const Quat &q, const Vec3 &origin=Vec3(0.0, 0.0, 0.0))
Real GetRotationAngle() const
Vec3 Apply(const Vec3 &) const
void SetRotationAxis(const Vec3 &v)
Rotation3(Real phi, Real theta, Real psi, const Vec3 &origin=Vec3(0.0, 0.0, 0.0))
Rotation3(const Line3 &line, Real angle)
bool operator==(const Rotation3 &rhs) const
void SetTheta(Real theta)
Sphere(const Vec3 &origin, Real r)
void SetOrigin(const Vec3 &v)
Three dimensional vector class, using Real precision.
#define DLLEXPORT_OST_GEOM
DLLIMPORT Rotation3List ImportEulerAngles(const boost::filesystem::path &loc)
std::vector< Rotation3 > Rotation3List
std::ostream & operator<<(std::ostream &os, const AlignedCuboid &c)
DLLIMPORT void ExportEulerAngles(const Rotation3List &rot_list, const boost::filesystem::path &loc)