PeriDyno 1.0.0
Loading...
Searching...
No Matches
Camera.h
Go to the documentation of this file.
1#pragma once
2
3#include <glm/glm.hpp>
4
5// TODO: we prefer not depend on Core library
6#include <Vector.h>
7#include <Quat.h>
8
10
11namespace dyno
12{
13 typedef Quat<float> Quat1f;
14
15 class Camera {
16 public:
17 Camera() {};
18 ~Camera() {};
19
25
26 virtual glm::mat4 getViewMat() = 0;
27 virtual glm::mat4 getProjMat() = 0;
28
29 virtual void rotateToPoint(float x, float y) = 0;
30 virtual void translateToPoint(float x, float y) = 0;
31 virtual void zoom(float amount) = 0;
32
33 virtual void registerPoint(float x, float y) = 0;
34
35 void setWidth(int width) { mViewportWidth = width; }
36 void setHeight(int height) { mViewportHeight = height; }
37
38 void setClipNear(float zNear) { mNear = zNear; }
39 void setClipFar(float zFar) { mFar = zFar; }
40
41 int viewportWidth() const { return mViewportWidth; }
42 int viewportHeight() const { return mViewportHeight; }
43
44 float clipNear() const { return mNear; }
45 float clipFar() const { return mFar; }
46
47 virtual void setEyePos(const Vec3f& p) = 0;
48 virtual void setTargetPos(const Vec3f& p) = 0;
49
50 virtual Vec3f getEyePos() const = 0;
51 virtual Vec3f getTargetPos() const = 0;
52
53 TRay3D<float> castRayInWorldSpace(float x, float y);
54
55 void setUnitScale(float unit) { mUnitScale = unit; }
56
57 float unitScale() { return mUnitScale; }
58
61
62 protected:
63 float mNear = 0.01f;
64 float mFar = 10.0f;
65 float mFov = 0.0f;
66
69
71
72 //Distance unit
73 float mUnitScale = 1.0f;
74 };
75
76}
77
Implementation of quaternion.
void setHeight(int height)
Definition Camera.h:36
void setClipFar(float zFar)
Definition Camera.h:39
ProjectionType mProjectionType
Definition Camera.h:70
void setProjectionType(ProjectionType type)
Definition Camera.h:59
int mViewportHeight
Definition Camera.h:68
float unitScale()
Definition Camera.h:57
float mNear
Definition Camera.h:63
float mFar
Definition Camera.h:64
virtual void rotateToPoint(float x, float y)=0
float mUnitScale
Definition Camera.h:73
TRay3D< float > castRayInWorldSpace(float x, float y)
Definition Camera.cpp:5
void setWidth(int width)
Definition Camera.h:35
void setUnitScale(float unit)
Definition Camera.h:55
virtual void setTargetPos(const Vec3f &p)=0
int mViewportWidth
Definition Camera.h:67
@ Perspective
Definition Camera.h:22
virtual void registerPoint(float x, float y)=0
virtual Vec3f getTargetPos() const =0
int viewportHeight() const
Definition Camera.h:42
float mFov
Definition Camera.h:65
virtual glm::mat4 getProjMat()=0
void setClipNear(float zNear)
Definition Camera.h:38
float clipNear() const
Definition Camera.h:44
ProjectionType projectionType()
Definition Camera.h:60
virtual void setEyePos(const Vec3f &p)=0
int viewportWidth() const
Definition Camera.h:41
virtual void zoom(float amount)=0
virtual glm::mat4 getViewMat()=0
float clipFar() const
Definition Camera.h:45
virtual void translateToPoint(float x, float y)=0
virtual Vec3f getEyePos() const =0
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
Quat< float > Quat1f
Definition Quat.h:136
Vector< float, 3 > Vec3f
Definition Vector3D.h:93