32 #ifndef __CU_PLANE_H__
33 #define __CU_PLANE_H__
75 #pragma mark Constructors
112 set(point1, point2, point3);
125 Plane(
float a,
float b,
float c,
float d) {
166 return set(normal,0);
213 Plane&
set(
float a,
float b,
float c,
float d);
229 #pragma mark Static Arithmetic
261 #pragma mark Arithmetic
311 return *(
multiply(*
this,mat,&result));
315 #pragma mark Plane Methods
352 bool contains(
const Vec3& point,
float variance=CU_MATH_EPSILON)
const {
353 return fabsf(
distance(point)) <= variance;
397 float dot = normal.
dot(direction);
402 #pragma mark Comparisons
441 bool equals(
const Plane& p,
float variance=CU_MATH_EPSILON)
const {
443 CU_MATH_APPROX(offset,p.
offset,variance));
447 #pragma mark Conversion Methods
460 std::string
toString(
bool verbose =
false)
const;
463 operator std::string()
const {
return toString(); }};
float dot(const Vec3 &v) const
Definition: CUVec3.h:1016
bool isFrontFacing(const Vec3 &direction) const
Definition: CUPlane.h:396
Plane & set(const Vec3 &normal, float dist=0)
Side
Definition: CUPlane.h:53
bool equals(const Plane &p, float variance=CU_MATH_EPSILON) const
Definition: CUPlane.h:441
Side sideOf(float x, float y, float z) const
Definition: CUPlane.h:381
static const Plane YZ
Definition: CUPlane.h:72
Plane(const Vec3 &normal, const Vec3 &point)
Definition: CUPlane.h:97
Plane & operator=(const Plane &plane)
Definition: CUPlane.h:152
Plane()
Definition: CUPlane.h:79
bool contains(const Vec3 &point, float variance=CU_MATH_EPSILON) const
Definition: CUPlane.h:352
float distance(const Vec3 &point) const
Definition: CUPlane.h:325
float offset
Definition: CUPlane.h:65
Vec3 normal
Definition: CUPlane.h:63
Side sideOf(const Vec3 &point) const
Definition: CUPlane.h:365
Plane & operator=(const Vec3 &normal)
Definition: CUPlane.h:165
float getIntersection(const Ray &ray) const
Definition: CUPlane.h:339
~Plane()
Definition: CUPlane.h:141
Plane & operator*=(const Mat4 &mat)
Definition: CUPlane.h:292
Plane & set(const Plane &plane)
Definition: CUPlane.h:222
static const Plane XY
Definition: CUPlane.h:68
Plane(const Vec3 &normal, float dist=0)
Definition: CUPlane.h:87
Plane(const Vec3 &point1, const Vec3 &point2, const Vec3 &point3)
Definition: CUPlane.h:111
static Plane * multiply(const Plane &plane, const Mat4 &mat, Plane *dst)
std::string toString(bool verbose=false) const
static const Plane XZ
Definition: CUPlane.h:70
const Plane operator*(const Mat4 &mat) const
Definition: CUPlane.h:309
Plane(float a, float b, float c, float d)
Definition: CUPlane.h:125
Plane & multiply(const Mat4 &mat)
Definition: CUPlane.h:275
static float intersection(const Plane &plane, const Ray &ray)
Plane(const Plane &plane)
Definition: CUPlane.h:134
Definition: CUAnimationNode.h:52
bool operator!=(const Plane &p) const
Definition: CUPlane.h:427
bool operator==(const Plane &p) const
Definition: CUPlane.h:413
bool equals(const Vec3 &v, float variance=CU_MATH_EPSILON) const
Definition: CUVec3.h:877