-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPointLight.h
51 lines (44 loc) · 1012 Bytes
/
PointLight.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#pragma once
#include "CommonD.h"
#include "Frustum.h"
#include "BoundingSphere.h"
class PointLight
{
public:
PointLight();
PointLight(int width, int height);
~PointLight();
void SetMatrix(XMMATRIX matrix);
void SetColor(XMFLOAT3 color);
void SetPosition(XMFLOAT3 position);
void SetDirection(XMFLOAT3 direction);
void SetIntensity(float intensity);
void SetRadius(float radius);
void CastShadow(bool cast);
Math::Frustum GetFrustum(int i);
XMMATRIX GetViewMatrix(int i);
XMMATRIX GetProjection();
XMFLOAT3 GetColor();
XMFLOAT3 GetDirection();
XMFLOAT3 GetPosition();
float GetIntensity();
float GetRadius();
XMMATRIX GetWorld();
void Update();
float mPriority;
RwRaster *mShadowRaster;
bool mCastShadow;
bool mDrawShadow;
XMMATRIX mMatrix[6];
Math::BoundingSphere mSphere;
private:
XMMATRIX mWorld;
XMMATRIX mView[6];
XMMATRIX mProjection;
XMFLOAT3 mColor;
XMVECTOR mPosition;
XMVECTOR mDirection;
Math::Frustum mFrustum[6];
float mRadius;
float mIntensity;
};