Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
Camera.cs
浏览该文件的文档.
1using Engine;
3
4namespace Game {
5 public abstract class Camera {
6 public GameWidget GameWidget { get; set; }
7
8 public VrEye? Eye { get; set; }
9
10 public abstract Vector3 ViewPosition { get; }
11
12 public abstract Vector3 ViewDirection { get; }
13
14 public abstract Vector3 ViewUp { get; }
15
16 public abstract Vector3 ViewRight { get; }
17
18 public abstract Matrix ViewMatrix { get; }
19
20 public abstract Matrix InvertedViewMatrix { get; }
21
22 public abstract Matrix ProjectionMatrix { get; }
23
24 public abstract Matrix ScreenProjectionMatrix { get; }
25
26 public abstract Matrix InvertedProjectionMatrix { get; }
27
28 public abstract Matrix ViewProjectionMatrix { get; }
29
30 public abstract Vector2 ViewportSize { get; }
31
32 public abstract Matrix ViewportMatrix { get; }
33
34 public abstract BoundingFrustum ViewFrustum { get; }
35
36 public abstract bool UsesMovementControls { get; }
37
38 public abstract bool IsEntityControlEnabled { get; }
39
40 public Camera(GameWidget gameWidget) => GameWidget = gameWidget;
41
42 public Vector3 WorldToScreen(Vector3 worldPoint, Matrix worldMatrix) =>
43 new Viewport(0, 0, Window.Size.X, Window.Size.Y).Project(worldPoint, ScreenProjectionMatrix, ViewMatrix, worldMatrix);
44
45 public Vector3 ScreenToWorld(Vector3 screenPoint, Matrix worldMatrix) =>
46 new Viewport(0, 0, Window.Size.X, Window.Size.Y).Unproject(screenPoint, ScreenProjectionMatrix, ViewMatrix, worldMatrix);
47
48 public virtual void Activate(Camera previousCamera) { }
49
50 public abstract void Update(float dt);
51 public virtual void PrepareForDrawing() { }
52 }
53}
static Point2 Size
void Update(float dt)
Vector3 ScreenToWorld(Vector3 screenPoint, Matrix worldMatrix)
Vector3 ViewPosition
GameWidget GameWidget
Vector3 ViewUp
Camera(GameWidget gameWidget)
BoundingFrustum ViewFrustum
virtual void PrepareForDrawing()
virtual void Activate(Camera previousCamera)
bool UsesMovementControls
Matrix ViewMatrix
Matrix ViewportMatrix
Matrix InvertedViewMatrix
Vector3 ViewDirection
Matrix ScreenProjectionMatrix
Matrix InvertedProjectionMatrix
Matrix ProjectionMatrix
Vector3 ViewRight
bool IsEntityControlEnabled
Matrix ViewProjectionMatrix
Vector2 ViewportSize
Vector3 WorldToScreen(Vector3 worldPoint, Matrix worldMatrix)
Vector3 Unproject(Vector3 source, Matrix worldViewProjection)
Vector3 Project(Vector3 source, Matrix worldViewProjection)