Pushed code to draw a plane
This commit is contained in:
@ -107,6 +107,12 @@ public :
|
||||
// Draw a solid capsule with segment and radius.
|
||||
virtual void DrawSolidCapsule(const b3Vec3& p1, const b3Vec3& p2, float32 radius, const b3Color& color) = 0;
|
||||
|
||||
// Draw a plane with center, normal and radius.
|
||||
virtual void DrawPlane(const b3Vec3& center, const b3Vec3& normal, float32 radius, const b3Color& color) = 0;
|
||||
|
||||
// Draw a solid plane with center, normal and radius.
|
||||
virtual void DrawSolidPlane(const b3Vec3& center, const b3Vec3& normal, float32 radius, const b3Color& color) = 0;
|
||||
|
||||
// Draw a AABB.
|
||||
virtual void DrawAABB(const b3AABB3& aabb, const b3Color& color) = 0;
|
||||
|
||||
|
@ -233,22 +233,20 @@ inline b3Mat33 b3Outer(const b3Vec3& a, const b3Vec3& b)
|
||||
|
||||
// Compute an orthogonal basis given one of its vectors.
|
||||
// The vector must be normalized.
|
||||
inline b3Mat33 b3Basis(const b3Vec3& a)
|
||||
inline void b3ComputeBasis(const b3Vec3& a, b3Vec3& b, b3Vec3& c)
|
||||
{
|
||||
// Box2D
|
||||
b3Mat33 A;
|
||||
// https://box2d.org/2014/02/computing-a-basis/
|
||||
if (b3Abs(a.x) >= float32(0.57735027))
|
||||
{
|
||||
A.y.Set(a.y, -a.x, 0.0f);
|
||||
b.Set(a.y, -a.x, 0.0f);
|
||||
}
|
||||
else
|
||||
{
|
||||
A.y.Set(0.0f, a.z, -a.y);
|
||||
b.Set(0.0f, a.z, -a.y);
|
||||
}
|
||||
A.x = a;
|
||||
A.y = b3Normalize(A.y);
|
||||
A.z = b3Cross(a, A.y);
|
||||
return A;
|
||||
|
||||
b.Normalize();
|
||||
c = b3Cross(a, b);
|
||||
}
|
||||
|
||||
// Rotation about the x-axis.
|
||||
|
Reference in New Issue
Block a user