|
JPH_OVERRIDE_NEW_DELETE | DebugRendererSimple () |
| Constructor.
|
|
void | SetCameraPos (RVec3Arg inCameraPos) |
|
virtual void | DrawTriangle (RVec3Arg inV1, RVec3Arg inV2, RVec3Arg inV3, ColorArg inColor, ECastShadow inCastShadow) override |
| Fallback implementation that uses DrawLine to draw a triangle (override this if you have a version that renders solid triangles)
|
|
JPH_OVERRIDE_NEW_DELETE | DebugRenderer () |
| Constructor.
|
|
virtual | ~DebugRenderer () |
|
void | NextFrame () |
| Call once after frame is complete. Releases unused dynamically generated geometry assets.
|
|
virtual void | DrawLine (RVec3Arg inFrom, RVec3Arg inTo, ColorArg inColor)=0 |
| Draw line.
|
|
void | DrawWireBox (const AABox &inBox, ColorArg inColor) |
| Draw wireframe box.
|
|
void | DrawWireBox (const OrientedBox &inBox, ColorArg inColor) |
|
void | DrawWireBox (RMat44Arg inMatrix, const AABox &inBox, ColorArg inColor) |
|
void | DrawMarker (RVec3Arg inPosition, ColorArg inColor, float inSize) |
| Draw a marker on a position.
|
|
void | DrawArrow (RVec3Arg inFrom, RVec3Arg inTo, ColorArg inColor, float inSize) |
| Draw an arrow.
|
|
void | DrawCoordinateSystem (RMat44Arg inTransform, float inSize=1.0f) |
| Draw coordinate system (3 arrows, x = red, y = green, z = blue)
|
|
void | DrawPlane (RVec3Arg inPoint, Vec3Arg inNormal, ColorArg inColor, float inSize) |
| Draw a plane through inPoint with normal inNormal.
|
|
void | DrawWireTriangle (RVec3Arg inV1, RVec3Arg inV2, RVec3Arg inV3, ColorArg inColor) |
| Draw wireframe triangle.
|
|
template<class VERTEX_ARRAY > |
void | DrawWirePolygon (RMat44Arg inTransform, const VERTEX_ARRAY &inVertices, ColorArg inColor, float inArrowSize=0.0f) |
| Draw a wireframe polygon.
|
|
void | DrawWireSphere (RVec3Arg inCenter, float inRadius, ColorArg inColor, int inLevel=3) |
| Draw wireframe sphere.
|
|
void | DrawWireUnitSphere (RMat44Arg inMatrix, ColorArg inColor, int inLevel=3) |
|
void | DrawBox (const AABox &inBox, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
| Draw a box.
|
|
void | DrawBox (RMat44Arg inMatrix, const AABox &inBox, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
void | DrawSphere (RVec3Arg inCenter, float inRadius, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
| Draw a sphere.
|
|
void | DrawUnitSphere (RMat44Arg inMatrix, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
void | DrawCapsule (RMat44Arg inMatrix, float inHalfHeightOfCylinder, float inRadius, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
void | DrawCylinder (RMat44Arg inMatrix, float inHalfHeight, float inRadius, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
void | DrawOpenCone (RVec3Arg inTop, Vec3Arg inAxis, Vec3Arg inPerpendicular, float inHalfAngle, float inLength, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
void | DrawSwingConeLimits (RMat44Arg inMatrix, float inSwingYHalfAngle, float inSwingZHalfAngle, float inEdgeLength, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
void | DrawSwingPyramidLimits (RMat44Arg inMatrix, float inMinSwingYAngle, float inMaxSwingYAngle, float inMinSwingZAngle, float inMaxSwingZAngle, float inEdgeLength, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
void | DrawPie (RVec3Arg inCenter, float inRadius, Vec3Arg inNormal, Vec3Arg inAxis, float inMinAngle, float inMaxAngle, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
void | DrawTaperedCylinder (RMat44Arg inMatrix, float inTop, float inBottom, float inTopRadius, float inBottomRadius, ColorArg inColor, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
Batch | CreateTriangleBatch (const Array< Triangle > &inTriangles) |
|
Batch | CreateTriangleBatch (const Array< Vertex > &inVertices, const Array< uint32 > &inIndices) |
|
Batch | CreateTriangleBatch (const VertexList &inVertices, const IndexedTriangleNoMaterialList &inTriangles) |
|
Batch | CreateTriangleBatchForConvex (SupportFunction inGetSupport, int inLevel, AABox *outBounds=nullptr) |
|
GeometryRef | CreateTriangleGeometryForConvex (SupportFunction inGetSupport) |
|
void | DrawGeometry (RMat44Arg inModelMatrix, ColorArg inModelColor, const GeometryRef &inGeometry, ECullMode inCullMode=ECullMode::CullBackFace, ECastShadow inCastShadow=ECastShadow::On, EDrawMode inDrawMode=EDrawMode::Solid) |
|
virtual void | DrawText3D (RVec3Arg inPosition, const string_view &inString, ColorArg inColor=Color::sWhite, float inHeight=0.5f)=0 |
| Draw text.
|
|
| NonCopyable ()=default |
|
| NonCopyable (const NonCopyable &)=delete |
|
void | operator= (const NonCopyable &)=delete |
|
Inherit from this class to simplify implementing a debug renderer, start with this implementation:
class MyDebugRenderer : public JPH::DebugRendererSimple
{
public:
virtual void DrawLine(JPH::RVec3Arg inFrom, JPH::RVec3Arg inTo, JPH::ColorArg inColor) override
{
// Implement
}
virtual void DrawTriangle(JPH::RVec3Arg inV1, JPH::RVec3Arg inV2, JPH::RVec3Arg inV3, JPH::ColorArg inColor, ECastShadow inCastShadow) override
{
// Implement
}
virtual void DrawText3D(JPH::RVec3Arg inPosition, const string_view &inString, JPH::ColorArg inColor, float inHeight) override
{
// Implement
}
};
Note that this class is meant to be a quick start for implementing a debug renderer, it is not the most efficient way to implement a debug renderer.