dxCameraPick%(camera%,viewport_x,viewport_y)

Parameters

camera - camera handle
viewport_x# - 2D viewport coordinate
viewport_z# - 2D viewport coordinate

Description

Picks the entity positioned at the specified viewport coordinates.

Returns the entity picked, or 0 if none there.

An entity must have its dxEntityPickMode set to a non-0 value value to be 'pickable'.

See also: dxEntityPick, dxLinePick, dxCameraPick, dxEntityPickMode.

Example

; dxCameraPick Example
; ------------------

dxGraphics3D 640,480,0,2
dxSetBuffer dxBackBuffer()

camera=dxCreateCamera()
dxPositionEntity camera,0,2,-10

light=dxCreateLight()
dxRotateEntity light,90,0,0

plane=dxCreatePlane()
dxEntityPickMode plane,2 ; Make the plane entity 'pickable'. Use pick_geometry mode no.2 for polygon collision.
ground_tex=dxLoadTexture("media/Chorme-2.bmp")
dxEntityTexture plane,ground_tex

cube=dxCreateCube()
dxEntityPickMode cube,2 ; Make the cube entity 'pickable'. Use pick_geometry mode no.2 for polygon collision.
cube_tex=dxLoadTexture("media/b3dlogo.jpg")
dxEntityTexture cube,cube_tex
dxPositionEntity cube,0,1,0

While Not dxKeyDown( 1 )

If dxKeyDown( 205 )=True Then dxTurnEntity camera,0,-1,0
If dxKeyDown( 203 )=True Then dxTurnEntity camera,0,1,0
If dxKeyDown( 208 )=True Then dxMoveEntity camera,0,0,-0.05
If dxKeyDown( 200 )=True Then dxMoveEntity camera,0,0,0.05

; If left mouse button hit then use dxCameraPick with mouse coordinates
; In this example, only three things can be picked: the plane, the cube, or nothing
If dxMouseHit(1)=True Then dxCameraPick(camera,dxMouseX(),dxMouseY())

dxRenderWorld

dxText 0,0,"Use cursor keys to move about"
dxText 0,20,"Press left mouse button to use dxCameraPick with mouse coordinates"
dxText 0,40,"dxPickedX: "+dxPickedX#()
dxText 0,60,"dxPickedY: "+dxPickedY#()
dxText 0,80,"dxPickedZ: "+dxPickedZ#()
dxText 0,100,"dxPickedNX: "+dxPickedNX#()
dxText 0,120,"dxPickedNY: "+dxPickedNY#()
dxText 0,140,"dxPickedNZ: "+dxPickedNZ#()
dxText 0,160,"dxPickedTime: "+dxPickedTime#()
dxText 0,180,"dxPickedEntity: "+dxPickedEntity()
dxText 0,200,"dxPickedSurface: "+dxPickedSurface()
dxText 0,220,"dxPickedTriangle: "+dxPickedTriangle()

dxFlip

Wend

End

Index