GlScene Мышь, чтобы указать на TGLHeightField - PullRequest
2 голосов
/ 09 апреля 2011

У меня есть GLScene с TGLHeightField с точками, загруженными из его OnGetHeight.

То, что я пытаюсь выяснить, - это то, что 3d-точка на поле HeightField мыши находится над событием mousemove.

Высота (y) на поле HeightField на самом деле не нужна, только точка на плоскости (x, z)

Я пытался GLSceneViewer1.Buffer.OrthoScreenToWorld(x, y), но это всего лишь точка на плоскости камеры.

1 Ответ

4 голосов
/ 09 апреля 2011

Посмотрите демонстрацию hfpick (в Demos \ Interface). Это демонстрирует, как сделать это, используя PixelRayToWorld.

В основном то, что вы делаете:

var
   v: TAffineVector;

...
      v := GLSceneViewer.Buffer.PixelRayToWorld(x, y)
      v := HeightField.AbsoluteToLocal(v);
...