|
entity - entity whose axes to draw recursive (optional) - True also draws axes for every descendant of the entity; False (default) size# (optional) - length of each axis line in world units; must be positive; 1 (default) depth_test (optional) - True hides the axes behind closer geometry, False draws them through everything; True (default) |
|
Queues an entity's local X, Y and Z axes, drawn from its live world transform, for the next RenderWorld. DebugEntityAxes draws three coloured lines out of the entity's origin: red for local X, green for local Y and blue for local Z. The colours are fixed so you always know which axis is which. It answers orientation questions instantly - why a model strafes when it should walk forward, which way an emitter is pointing, whether a turret really turned to face its target. With recursive True the axes are drawn for the whole hierarchy under the entity too - a quick way to inspect every part of a loaded model, or every bone-attached prop on a character. Like every Debug command, the axes live for exactly one RenderWorld: the queue is drawn by the next RenderWorld and then cleared, so call DebugEntityAxes every frame for as long as you want them visible. A zero or negative size stops the program with a runtime error. See also: DebugEntityBounds, DebugSkeleton, DebugGrid, ClearDebugDraw. |
; DebugEntityAxes Example
; -----------------------
Graphics3D 640,480,0,2
SetBuffer BackBuffer()
camera=CreateCamera()
PositionEntity camera,0,1,-6
light=CreateLight()
RotateEntity light,45,45,0
; A tumbling cargo crate - its local axes are hard to guess without help
crate=CreateCube()
EntityColor crate,180,130,70
show=True
size#=1.5
While Not KeyDown(1)
; Space toggles the axes, [ and ] change their length
If KeyHit(57) Then show=Not show
If KeyHit(26) And size>0.5 Then size=size-0.5
If KeyHit(27) And size<4 Then size=size+0.5
; Tumble the crate on two axes
TurnEntity crate,1,2,0.5
; DebugEntityAxes queues red X, green Y and blue Z axes at the crate's world transform
If show Then DebugEntityAxes crate,False,size
; Arrow keys move the camera
If KeyDown(200) Then MoveEntity camera,0,0,0.1
If KeyDown(208) Then MoveEntity camera,0,0,-0.1
If KeyDown(203) Then TurnEntity camera,0,1,0
If KeyDown(205) Then TurnEntity camera,0,-1,0
RenderWorld
Text 0,0,"Arrow keys: move camera Space: toggle axes [ / ] : size Esc: exit"
If show Then Text 0,20,"DebugEntityAxes crate,False,"+size+" (red=X green=Y blue=Z)" Else Text 0,20,"Axes off - press Space"
Flip
Wend
End