Merge branch 'Tryibion-tube-to-capsule'
This commit is contained in:
@@ -1730,6 +1730,11 @@ void DebugDraw::DrawWireTriangles(const Array<Double3>& vertices, const Array<in
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DebugDraw::DrawTube(const Vector3& position, const Quaternion& orientation, float radius, float length, const Color& color, float duration, bool depthTest)
|
void DebugDraw::DrawTube(const Vector3& position, const Quaternion& orientation, float radius, float length, const Color& color, float duration, bool depthTest)
|
||||||
|
{
|
||||||
|
DrawCapsule(position, orientation, radius, length, color, duration, depthTest);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DebugDraw::DrawCapsule(const Vector3& position, const Quaternion& orientation, float radius, float length, const Color& color, float duration, bool depthTest)
|
||||||
{
|
{
|
||||||
// Check if has no length (just sphere)
|
// Check if has no length (just sphere)
|
||||||
if (length < ZeroTolerance)
|
if (length < ZeroTolerance)
|
||||||
@@ -1749,6 +1754,11 @@ void DebugDraw::DrawTube(const Vector3& position, const Quaternion& orientation,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DebugDraw::DrawWireTube(const Vector3& position, const Quaternion& orientation, float radius, float length, const Color& color, float duration, bool depthTest)
|
void DebugDraw::DrawWireTube(const Vector3& position, const Quaternion& orientation, float radius, float length, const Color& color, float duration, bool depthTest)
|
||||||
|
{
|
||||||
|
DrawWireCapsule(position, orientation, radius, length, color, duration, depthTest);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DebugDraw::DrawWireCapsule(const Vector3& position, const Quaternion& orientation, float radius, float length, const Color& color, float duration, bool depthTest)
|
||||||
{
|
{
|
||||||
// Check if has no length (just sphere)
|
// Check if has no length (just sphere)
|
||||||
if (length < ZeroTolerance)
|
if (length < ZeroTolerance)
|
||||||
|
|||||||
@@ -564,7 +564,19 @@ API_CLASS(Static) class FLAXENGINE_API DebugDraw
|
|||||||
/// <param name="color">The color.</param>
|
/// <param name="color">The color.</param>
|
||||||
/// <param name="duration">The duration (in seconds). Use 0 to draw it only once.</param>
|
/// <param name="duration">The duration (in seconds). Use 0 to draw it only once.</param>
|
||||||
/// <param name="depthTest">If set to <c>true</c> depth test will be performed, otherwise depth will be ignored.</param>
|
/// <param name="depthTest">If set to <c>true</c> depth test will be performed, otherwise depth will be ignored.</param>
|
||||||
API_FUNCTION() static void DrawTube(const Vector3& position, const Quaternion& orientation, float radius, float length, const Color& color = Color::White, float duration = 0.0f, bool depthTest = true);
|
API_FUNCTION() DEPRECATED("Depricated v1.10, use DrawCapsule instead.") static void DrawTube(const Vector3& position, const Quaternion& orientation, float radius, float length, const Color& color = Color::White, float duration = 0.0f, bool depthTest = true);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Draws a capsule.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="position">The center position.</param>
|
||||||
|
/// <param name="orientation">The orientation.</param>
|
||||||
|
/// <param name="radius">The radius.</param>
|
||||||
|
/// <param name="length">The length.</param>
|
||||||
|
/// <param name="color">The color.</param>
|
||||||
|
/// <param name="duration">The duration (in seconds). Use 0 to draw it only once.</param>
|
||||||
|
/// <param name="depthTest">If set to <c>true</c> depth test will be performed, otherwise depth will be ignored.</param>
|
||||||
|
API_FUNCTION() static void DrawCapsule(const Vector3& position, const Quaternion& orientation, float radius, float length, const Color& color = Color::White, float duration = 0.0f, bool depthTest = true);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Draws the wireframe tube.
|
/// Draws the wireframe tube.
|
||||||
@@ -576,7 +588,19 @@ API_CLASS(Static) class FLAXENGINE_API DebugDraw
|
|||||||
/// <param name="color">The color.</param>
|
/// <param name="color">The color.</param>
|
||||||
/// <param name="duration">The duration (in seconds). Use 0 to draw it only once.</param>
|
/// <param name="duration">The duration (in seconds). Use 0 to draw it only once.</param>
|
||||||
/// <param name="depthTest">If set to <c>true</c> depth test will be performed, otherwise depth will be ignored.</param>
|
/// <param name="depthTest">If set to <c>true</c> depth test will be performed, otherwise depth will be ignored.</param>
|
||||||
API_FUNCTION() static void DrawWireTube(const Vector3& position, const Quaternion& orientation, float radius, float length, const Color& color = Color::White, float duration = 0.0f, bool depthTest = true);
|
API_FUNCTION() DEPRECATED("Depricated v1.10, use DrawWireCapsule instead.") static void DrawWireTube(const Vector3& position, const Quaternion& orientation, float radius, float length, const Color& color = Color::White, float duration = 0.0f, bool depthTest = true);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Draws the wireframe capsule.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="position">The center position.</param>
|
||||||
|
/// <param name="orientation">The orientation.</param>
|
||||||
|
/// <param name="radius">The radius.</param>
|
||||||
|
/// <param name="length">The length.</param>
|
||||||
|
/// <param name="color">The color.</param>
|
||||||
|
/// <param name="duration">The duration (in seconds). Use 0 to draw it only once.</param>
|
||||||
|
/// <param name="depthTest">If set to <c>true</c> depth test will be performed, otherwise depth will be ignored.</param>
|
||||||
|
API_FUNCTION() static void DrawWireCapsule(const Vector3& position, const Quaternion& orientation, float radius, float length, const Color& color = Color::White, float duration = 0.0f, bool depthTest = true);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Draws the cylinder.
|
/// Draws the cylinder.
|
||||||
@@ -733,7 +757,9 @@ API_CLASS(Static) class FLAXENGINE_API DebugDraw
|
|||||||
#define DEBUG_DRAW_TRIANGLES_EX(vertices, indices, color, duration, depthTest) DebugDraw::DrawTriangles(vertices, indices, color, duration, depthTest)
|
#define DEBUG_DRAW_TRIANGLES_EX(vertices, indices, color, duration, depthTest) DebugDraw::DrawTriangles(vertices, indices, color, duration, depthTest)
|
||||||
#define DEBUG_DRAW_TRIANGLES_EX2(vertices, indices, transform, color, duration, depthTest) DebugDraw::DrawTriangles(vertices, indices, transform, color, duration, depthTest)
|
#define DEBUG_DRAW_TRIANGLES_EX2(vertices, indices, transform, color, duration, depthTest) DebugDraw::DrawTriangles(vertices, indices, transform, color, duration, depthTest)
|
||||||
#define DEBUG_DRAW_SPHERE(sphere, color, duration, depthTest) DebugDraw::DrawSphere(sphere, color, duration, depthTest)
|
#define DEBUG_DRAW_SPHERE(sphere, color, duration, depthTest) DebugDraw::DrawSphere(sphere, color, duration, depthTest)
|
||||||
#define DEBUG_DRAW_TUBE(position, orientation, radius, length, color, duration, depthTest) DebugDraw::DrawTube(position, orientation, radius, length, color, duration, depthTest)
|
// Deprecated v1.10. Use DEBUG_DRAW_CAPSULE
|
||||||
|
#define DEBUG_DRAW_TUBE(position, orientation, radius, length, color, duration, depthTest) DebugDraw::DrawCapsule(position, orientation, radius, length, color, duration, depthTest)
|
||||||
|
#define DEBUG_DRAW_CAPSULE(position, orientation, radius, length, color, duration, depthTest) DebugDraw::DrawCapsule(position, orientation, radius, length, color, duration, depthTest)
|
||||||
#define DEBUG_DRAW_BOX(box, color, duration, depthTest) DebugDraw::DrawBox(box, color, duration, depthTest)
|
#define DEBUG_DRAW_BOX(box, color, duration, depthTest) DebugDraw::DrawBox(box, color, duration, depthTest)
|
||||||
#define DEBUG_DRAW_CYLINDER(position, orientation, radius, height, color, duration, depthTest) DebugDraw::DrawCylinder(position, orientation, radius, height, color, duration, depthTest)
|
#define DEBUG_DRAW_CYLINDER(position, orientation, radius, height, color, duration, depthTest) DebugDraw::DrawCylinder(position, orientation, radius, height, color, duration, depthTest)
|
||||||
#define DEBUG_DRAW_CONE(position, orientation, radius, angleXY, angleXZ, color, duration, depthTest) DebugDraw::DrawCone(position, orientation, radius, angleXY, angleXZ, color, duration, depthTest)
|
#define DEBUG_DRAW_CONE(position, orientation, radius, angleXY, angleXZ, color, duration, depthTest) DebugDraw::DrawCone(position, orientation, radius, angleXY, angleXZ, color, duration, depthTest)
|
||||||
@@ -744,7 +770,9 @@ API_CLASS(Static) class FLAXENGINE_API DebugDraw
|
|||||||
#define DEBUG_DRAW_WIRE_BOX(box, color, duration, depthTest) DebugDraw::DrawWireBox(box, color, duration, depthTest)
|
#define DEBUG_DRAW_WIRE_BOX(box, color, duration, depthTest) DebugDraw::DrawWireBox(box, color, duration, depthTest)
|
||||||
#define DEBUG_DRAW_WIRE_FRUSTUM(frustum, color, duration, depthTest) DebugDraw::DrawWireFrustum(frustum, color, duration, depthTest)
|
#define DEBUG_DRAW_WIRE_FRUSTUM(frustum, color, duration, depthTest) DebugDraw::DrawWireFrustum(frustum, color, duration, depthTest)
|
||||||
#define DEBUG_DRAW_WIRE_SPHERE(sphere, color, duration, depthTest) DebugDraw::DrawWireSphere(sphere, color, duration, depthTest)
|
#define DEBUG_DRAW_WIRE_SPHERE(sphere, color, duration, depthTest) DebugDraw::DrawWireSphere(sphere, color, duration, depthTest)
|
||||||
#define DEBUG_DRAW_WIRE_TUBE(position, orientation, radius, length, color, duration, depthTest) DebugDraw::DrawWireTube(position, orientation, radius, length, color, duration, depthTest)
|
// Deprecated v1.10. Use DEBUG_DRAW_WIRE_CAPSULE
|
||||||
|
#define DEBUG_DRAW_WIRE_TUBE(position, orientation, radius, length, color, duration, depthTest) DebugDraw::DrawWireCapsule(position, orientation, radius, length, color, duration, depthTest)
|
||||||
|
#define DEBUG_DRAW_WIRE_CAPSULE(position, orientation, radius, length, color, duration, depthTest) DebugDraw::DrawWireCapsule(position, orientation, radius, length, color, duration, depthTest)
|
||||||
#define DEBUG_DRAW_WIRE_CYLINDER(position, orientation, radius, height, color, duration, depthTest) DebugDraw::DrawWireCylinder(position, orientation, radius, height, color, duration, depthTest)
|
#define DEBUG_DRAW_WIRE_CYLINDER(position, orientation, radius, height, color, duration, depthTest) DebugDraw::DrawWireCylinder(position, orientation, radius, height, color, duration, depthTest)
|
||||||
#define DEBUG_DRAW_WIRE_CONE(position, orientation, radius, angleXY, angleXZ, color, duration, depthTest) DebugDraw::DrawWireCone(position, orientation, radius, angleXY, angleXZ, color, duration, depthTest)
|
#define DEBUG_DRAW_WIRE_CONE(position, orientation, radius, angleXY, angleXZ, color, duration, depthTest) DebugDraw::DrawWireCone(position, orientation, radius, angleXY, angleXZ, color, duration, depthTest)
|
||||||
#define DEBUG_DRAW_WIRE_ARC(position, orientation, radius, angle, color, duration, depthTest) DebugDraw::DrawWireArc(position, orientation, radius, angle, color, duration, depthTest)
|
#define DEBUG_DRAW_WIRE_ARC(position, orientation, radius, angle, color, duration, depthTest) DebugDraw::DrawWireArc(position, orientation, radius, angle, color, duration, depthTest)
|
||||||
|
|||||||
@@ -131,8 +131,8 @@ void PointLight::OnDebugDraw()
|
|||||||
{
|
{
|
||||||
if (SourceRadius > ZeroTolerance || SourceLength > ZeroTolerance)
|
if (SourceRadius > ZeroTolerance || SourceLength > ZeroTolerance)
|
||||||
{
|
{
|
||||||
// Draw source tube
|
// Draw source capsule
|
||||||
DEBUG_DRAW_WIRE_TUBE(GetPosition(), GetOrientation(), SourceRadius, SourceLength, Color::Orange, 0, true);
|
DEBUG_DRAW_WIRE_CAPSULE(GetPosition(), GetOrientation(), SourceRadius, SourceLength, Color::Orange, 0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Base
|
// Base
|
||||||
|
|||||||
@@ -48,9 +48,9 @@ void CapsuleCollider::DrawPhysicsDebug(RenderView& view)
|
|||||||
const float radius = Math::Max(Math::Abs(_radius) * scaling, minSize);
|
const float radius = Math::Max(Math::Abs(_radius) * scaling, minSize);
|
||||||
const float height = Math::Max(Math::Abs(_height) * scaling, minSize);
|
const float height = Math::Max(Math::Abs(_height) * scaling, minSize);
|
||||||
if (view.Mode == ViewMode::PhysicsColliders && !GetIsTrigger())
|
if (view.Mode == ViewMode::PhysicsColliders && !GetIsTrigger())
|
||||||
DEBUG_DRAW_TUBE(_transform.LocalToWorld(_center), rotation, radius, height, _staticActor ? Color::CornflowerBlue : Color::Orchid, 0, true);
|
DEBUG_DRAW_CAPSULE(_transform.LocalToWorld(_center), rotation, radius, height, _staticActor ? Color::CornflowerBlue : Color::Orchid, 0, true);
|
||||||
else
|
else
|
||||||
DEBUG_DRAW_WIRE_TUBE(_transform.LocalToWorld(_center), rotation, radius, height, Color::GreenYellow * 0.8f, 0, true);
|
DEBUG_DRAW_WIRE_CAPSULE(_transform.LocalToWorld(_center), rotation, radius, height, Color::GreenYellow * 0.8f, 0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CapsuleCollider::OnDebugDrawSelected()
|
void CapsuleCollider::OnDebugDrawSelected()
|
||||||
@@ -62,11 +62,11 @@ void CapsuleCollider::OnDebugDrawSelected()
|
|||||||
const float radius = Math::Max(Math::Abs(_radius) * scaling, minSize);
|
const float radius = Math::Max(Math::Abs(_radius) * scaling, minSize);
|
||||||
const float height = Math::Max(Math::Abs(_height) * scaling, minSize);
|
const float height = Math::Max(Math::Abs(_height) * scaling, minSize);
|
||||||
const Vector3 position = _transform.LocalToWorld(_center);
|
const Vector3 position = _transform.LocalToWorld(_center);
|
||||||
DEBUG_DRAW_WIRE_TUBE(position, rotation, radius, height, Color::GreenYellow, 0, false);
|
DEBUG_DRAW_WIRE_CAPSULE(position, rotation, radius, height, Color::GreenYellow, 0, false);
|
||||||
|
|
||||||
if (_contactOffset > 0)
|
if (_contactOffset > 0)
|
||||||
{
|
{
|
||||||
DEBUG_DRAW_WIRE_TUBE(position, rotation, radius + _contactOffset, height, Color::Blue.AlphaMultiplied(0.2f), 0, false);
|
DEBUG_DRAW_WIRE_CAPSULE(position, rotation, radius + _contactOffset, height, Color::Blue.AlphaMultiplied(0.2f), 0, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Base
|
// Base
|
||||||
|
|||||||
@@ -187,9 +187,9 @@ void CharacterController::DrawPhysicsDebug(RenderView& view)
|
|||||||
const float height = Math::Max(Math::Abs(_height) * scaling, CC_MIN_SIZE);
|
const float height = Math::Max(Math::Abs(_height) * scaling, CC_MIN_SIZE);
|
||||||
const Vector3 position = _transform.LocalToWorld(_center);
|
const Vector3 position = _transform.LocalToWorld(_center);
|
||||||
if (view.Mode == ViewMode::PhysicsColliders)
|
if (view.Mode == ViewMode::PhysicsColliders)
|
||||||
DEBUG_DRAW_TUBE(position, Quaternion::Euler(90, 0, 0), radius, height, Color::LightYellow, 0, true);
|
DEBUG_DRAW_CAPSULE(position, Quaternion::Euler(90, 0, 0), radius, height, Color::LightYellow, 0, true);
|
||||||
else
|
else
|
||||||
DEBUG_DRAW_WIRE_TUBE(position, Quaternion::Euler(90, 0, 0), radius, height, Color::GreenYellow * 0.8f, 0, true);
|
DEBUG_DRAW_WIRE_CAPSULE(position, Quaternion::Euler(90, 0, 0), radius, height, Color::GreenYellow * 0.8f, 0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CharacterController::OnDebugDrawSelected()
|
void CharacterController::OnDebugDrawSelected()
|
||||||
@@ -198,7 +198,7 @@ void CharacterController::OnDebugDrawSelected()
|
|||||||
const float radius = Math::Max(Math::Abs(_radius) * scaling, CC_MIN_SIZE);
|
const float radius = Math::Max(Math::Abs(_radius) * scaling, CC_MIN_SIZE);
|
||||||
const float height = Math::Max(Math::Abs(_height) * scaling, CC_MIN_SIZE);
|
const float height = Math::Max(Math::Abs(_height) * scaling, CC_MIN_SIZE);
|
||||||
const Vector3 position = _transform.LocalToWorld(_center);
|
const Vector3 position = _transform.LocalToWorld(_center);
|
||||||
DEBUG_DRAW_WIRE_TUBE(position, Quaternion::Euler(90, 0, 0), radius, height, Color::GreenYellow, 0, false);
|
DEBUG_DRAW_WIRE_CAPSULE(position, Quaternion::Euler(90, 0, 0), radius, height, Color::GreenYellow, 0, false);
|
||||||
|
|
||||||
// Base
|
// Base
|
||||||
Collider::OnDebugDrawSelected();
|
Collider::OnDebugDrawSelected();
|
||||||
|
|||||||
Reference in New Issue
Block a user