EntityInView ( entity,camera )

Параметры

entity - указатель объекта
camera - указатель камеры

Описание

Возвращает true, если объект находится в поле зрения данной камеры (т.е. видим).

Если объект типа mesh (сетчатая модель), то для него будет проверяться на видимость описанный вокруг объекта параллелепипед (границы объекта).

Для всех других типов объектов будет проверяться только центральная точка объекта.

Пример

; Пример EntityInView
; --------------------

Graphics3D 640,480
SetBuffer BackBuffer()

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

light=CreateLight()
RotateEntity light,90,0,0

plane=CreatePlane()
ground_tex=LoadTexture("media/Chorme-2.bmp")
EntityTexture plane,ground_tex

cube=CreateCube()
cube_tex=LoadTexture("media/b3dlogo.jpg")
EntityTexture cube,cube_tex
PositionEntity cube,0,1,0

While Not KeyDown( 1 )

If KeyDown( 205 )=True Then TurnEntity camera,0,-1,0
If KeyDown( 203 )=True Then TurnEntity camera,0,1,0
If KeyDown( 208 )=True Then MoveEntity camera,0,0,-0.05
If KeyDown( 200 )=True Then MoveEntity camera,0,0,0.05

; Преобразуем 3D-координаты куба в 2D-координаты экрана
CameraProject(camera,EntityX(cube),EntityY(cube),EntityZ(cube))

RenderWorld

; Если куб видим, то пишем надпись
If EntityInView(cube,camera)=True

; Используйте ProjectedX() и ProjectedY(), чтобы получить 2D-координаты объекна на экране.
; В этих координатах пишем текст поверх 3D-сцены.
Text ProjectedX#(),ProjectedY#(),"Cube"

EndIf

Text 0,0,"Use cursor keys to move about"
Text 0,20,"ProjectedX: "+ProjectedX#()
Text 0,40,"ProjectedY: "+ProjectedY#()
Text 0,60,"ProjectedZ: "+ProjectedZ#()
Text 0,80,"EntityInView: "+EntityInView(cube,camera)

Flip

Wend

End

Главная страница

Нажмите сюда, чтобы увидеть последнюю версию этой страницы в интернете