Richard Boegli's CnC_Generals_Zero_Hour Fork WIP
This is documentation of Richard Boegil's Zero Hour Fork
 
Loading...
Searching...
No Matches
projector.h
Go to the documentation of this file.
1/*
2** Command & Conquer Generals Zero Hour(tm)
3** Copyright 2025 Electronic Arts Inc.
4**
5** This program is free software: you can redistribute it and/or modify
6** it under the terms of the GNU General Public License as published by
7** the Free Software Foundation, either version 3 of the License, or
8** (at your option) any later version.
9**
10** This program is distributed in the hope that it will be useful,
11** but WITHOUT ANY WARRANTY; without even the implied warranty of
12** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13** GNU General Public License for more details.
14**
15** You should have received a copy of the GNU General Public License
16** along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19/***********************************************************************************************
20 *** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
21 ***********************************************************************************************
22 * *
23 * Project Name : WW3D *
24 * *
25 * $Archive:: /Commando/Code/ww3d2/projector.h $*
26 * *
27 * Original Author:: Greg Hjelstrom *
28 * *
29 * $Author:: Kenny Mitchell *
30 * *
31 * $Modtime:: 06/26/02 4:04p $*
32 * *
33 * $Revision:: 2 $*
34 * *
35 * 06/26/02 KM Matrix name change to avoid MAX conflicts *
36 *---------------------------------------------------------------------------------------------*
37 * Functions: *
38 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
39
40#ifndef PROJECTOR_H
41#define PROJECTOR_H
42
43#include "always.h"
44#include "matrix3d.h"
45#include "matrix4.h"
46#include "aabox.h"
47#include "obbox.h"
48
49
51
52
59{
60public:
61
62 ProjectorClass(void);
63 virtual ~ProjectorClass(void);
64
65 virtual void Set_Transform(const Matrix3D & tm);
66 virtual const Matrix3D & Get_Transform(void) const;
67
68 virtual void Set_Perspective_Projection(float hfov,float vfov,float znear,float zfar);
69 virtual void Set_Ortho_Projection(float xmin,float xmax,float ymin,float ymax,float znear,float zfar);
70
71 const OBBoxClass & Get_Bounding_Volume(void) const { return WorldBoundingVolume; }
72 void Compute_Texture_Coordinate(const Vector3 & point,Vector3 * set_stq);
73
75
76protected:
77
78 virtual void Update_WS_Bounding_Volume(void);
79
82
85
87};
88
89
90#endif
91
92
OBBoxClass WorldBoundingVolume
Definition projector.h:84
void Compute_Texture_Coordinate(const Vector3 &point, Vector3 *set_stq)
virtual void Set_Perspective_Projection(float hfov, float vfov, float znear, float zfar)
ProjectorClass(void)
Definition projector.cpp:64
MatrixMapperClass * Mapper
Definition projector.h:86
virtual void Set_Ortho_Projection(float xmin, float xmax, float ymin, float ymax, float znear, float zfar)
MatrixMapperClass * Peek_Mapper() const
Definition projector.h:74
virtual ~ProjectorClass(void)
Definition projector.cpp:85
Matrix3D Transform
Definition projector.h:80
const OBBoxClass & Get_Bounding_Volume(void) const
Definition projector.h:71
virtual void Update_WS_Bounding_Volume(void)
virtual const Matrix3D & Get_Transform(void) const
Matrix4x4 Projection
Definition projector.h:81
AABoxClass LocalBoundingVolume
Definition projector.h:83
virtual void Set_Transform(const Matrix3D &tm)