doom3-gpl
Doom 3 GPL source release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Camera.h
Go to the documentation of this file.
1 /*
2 ===========================================================================
3 
4 Doom 3 GPL Source Code
5 Copyright (C) 1999-2011 id Software LLC, a ZeniMax Media company.
6 
7 This file is part of the Doom 3 GPL Source Code (?Doom 3 Source Code?).
8 
9 Doom 3 Source Code is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
13 
14 Doom 3 Source Code is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18 
19 You should have received a copy of the GNU General Public License
20 along with Doom 3 Source Code. If not, see <http://www.gnu.org/licenses/>.
21 
22 In addition, the Doom 3 Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 Source Code. If not, please request a copy in writing from id Software at the address below.
23 
24 If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
25 
26 ===========================================================================
27 */
28 
29 #ifndef __GAME_CAMERA_H__
30 #define __GAME_CAMERA_H__
31 
32 
33 /*
34 ===============================================================================
35 
36 Camera providing an alternative view of the level.
37 
38 ===============================================================================
39 */
40 
41 class idCamera : public idEntity {
42 public:
44 
45  void Spawn( void );
46  virtual void GetViewParms( renderView_t *view ) = 0;
47  virtual renderView_t * GetRenderView();
48  virtual void Stop( void ){} ;
49 };
50 
51 /*
52 ===============================================================================
53 
54 idCameraView
55 
56 ===============================================================================
57 */
58 
59 class idCameraView : public idCamera {
60 public:
62  idCameraView();
63 
64  // save games
65  void Save( idSaveGame *savefile ) const; // archives object for save game file
66  void Restore( idRestoreGame *savefile ); // unarchives object from save game file
67 
68  void Spawn( );
69  virtual void GetViewParms( renderView_t *view );
70  virtual void Stop( void );
71 
72 protected:
73  void Event_Activate( idEntity *activator );
74  void Event_SetAttachments();
75  void SetAttachment( idEntity **e, const char *p );
76  float fov;
79 };
80 
81 
82 
83 /*
84 ===============================================================================
85 
86 A camera which follows a path defined by an animation.
87 
88 ===============================================================================
89 */
90 
91 typedef struct {
94  float fov;
96 
97 class idCameraAnim : public idCamera {
98 public:
100 
101  idCameraAnim();
102  ~idCameraAnim();
103 
104  // save games
105  void Save( idSaveGame *savefile ) const; // archives object for save game file
106  void Restore( idRestoreGame *savefile ); // unarchives object from save game file
107 
108  void Spawn( void );
109  virtual void GetViewParms( renderView_t *view );
110 
111 private:
116  int cycle;
120 
121  void Start( void );
122  void Stop( void );
123  void Think( void );
124 
125  void LoadAnim( void );
126  void Event_Start( void );
127  void Event_Stop( void );
128  void Event_SetCallback( void );
130 };
131 
132 #endif /* !__GAME_CAMERA_H__ */
int frameRate
Definition: Camera.h:114
void Start(void)
Definition: Camera.cpp:454
Definition: Quat.h:306
void Save(idSaveGame *savefile) const
Definition: Camera.cpp:272
void Spawn()
Definition: Camera.cpp:176
idList< cameraFrame_t > camera
Definition: Camera.h:118
void Spawn(void)
Definition: Camera.cpp:302
virtual void Stop(void)
Definition: Camera.h:48
void Event_SetAttachments()
Definition: Camera.cpp:117
void Think(void)
Definition: Camera.cpp:500
Definition: Vector.h:316
virtual void Stop(void)
Definition: Camera.cpp:149
idList< int > cameraCuts
Definition: Camera.h:117
void Event_Activate(idEntity *activator)
Definition: Camera.cpp:684
void Restore(idRestoreGame *savefile)
Definition: Camera.cpp:106
void Event_SetCallback(void)
Definition: Camera.cpp:716
virtual void GetViewParms(renderView_t *view)
Definition: Camera.cpp:194
void LoadAnim(void)
Definition: Camera.cpp:320
idVec3 t
Definition: Camera.h:93
int starttime
Definition: Camera.h:115
void Event_Stop(void)
Definition: Camera.cpp:707
virtual void GetViewParms(renderView_t *view)
Definition: Camera.cpp:543
idEntityPtr< idEntity > activator
Definition: Camera.h:119
virtual renderView_t * GetRenderView()
Definition: Camera.cpp:60
ABSTRACT_PROTOTYPE(idCamera)
void Stop(void)
Definition: Camera.cpp:479
int cycle
Definition: Camera.h:116
idCQuat q
Definition: Camera.h:92
float fov
Definition: Camera.h:76
int threadNum
Definition: Camera.h:112
void Event_Activate(idEntity *activator)
Definition: Camera.cpp:127
void Spawn(void)
Definition: Camera.cpp:52
CLASS_PROTOTYPE(idCameraView)
idVec3 offset
Definition: Camera.h:113
void Restore(idRestoreGame *savefile)
Definition: Camera.cpp:286
void Event_Start(void)
Definition: Camera.cpp:698
CLASS_PROTOTYPE(idCameraAnim)
idEntity * attachedTo
Definition: Camera.h:77
float fov
Definition: Camera.h:94
void SetAttachment(idEntity **e, const char *p)
Definition: Camera.cpp:163
void Save(idSaveGame *savefile) const
Definition: Camera.cpp:95
GLfloat GLfloat p
Definition: glext.h:4674
virtual void GetViewParms(renderView_t *view)=0
idCameraView()
Definition: Camera.cpp:84
idEntity * attachedView
Definition: Camera.h:78