DebugEntityIcon entity,view_camera[,size#][,red][,green][,blue][,depth_test]

Parameters

entity - camera or light entity to draw

view_camera - camera the icon is drawn for

size# (optional) - icon size in viewport pixels; 40 (default)

red (optional) - icon colour red; 255 (default)
green (optional) - icon colour green; 230 (default)
blue (optional) - icon colour blue; 160 (default)

depth_test (optional) - True hides the icon behind scene geometry; False draws it on top (default)

Description

Draws an editor-style outline icon for a camera or light.

Cameras draw as a camera outline; lights draw as a bulb outline with directional rays, point rays or a spot cone. It is ideal for level-editor tools and for debugging where your lights really are. The size is measured in viewport pixels using view_camera.

Icons follow world position and rotation, ignore entity scale, and create no scene objects. Other entity classes draw nothing. Use EntityIconHit to let the user click an icon.


See also: EntityIconHit, DebugEntityAxes, DebugLightVolume, DebugCameraFrustum, ClearDebugDraw.

Example

; DebugEntityIcon Example
; -----------------------

Graphics3D 640,480,0,2
SetBuffer BackBuffer()

camera=CreateCamera()
PositionEntity camera,0,2,-8

; A floor so there is something to hide the icons behind
floor=CreateCube()
ScaleEntity floor,6,0.1,6
PositionEntity floor,0,-1,0
EntityColor floor,70,90,110

; A spot light, a point light and a second (non-rendering) camera to mark
spot=CreateLight(3)
PositionEntity spot,-2,2,0
lamp=CreateLight(2)
PositionEntity lamp,2,0.5,0
LightRange lamp,4
spy=CreateCamera()
CameraProjMode spy,0
PositionEntity spy,0,1,3

size#=40
depth=False

While Not KeyDown(1)

    ; [ / ] change the icon size; Space toggles depth testing
    If KeyDown(26) And size>10 Then size=size-1
    If KeyDown(27) And size<120 Then size=size+1
    If KeyHit(57) Then depth=Not depth

    TurnEntity spot,0.5,1,0
    TurnEntity spy,0,-1,0

    ; Icons are queued each frame and drawn by RenderWorld
    DebugEntityIcon spot,camera,size,255,230,160,depth
    DebugEntityIcon lamp,camera,size,255,230,160,depth
    DebugEntityIcon spy,camera,size,120,200,255,depth

    ; 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   [ / ] : icon size   Space: depth test   Esc: exit"
    Text 0,20,"DebugEntityIcon light,camera,"+size+",255,230,160,"+depth

    Flip

Wend

End

Index