~ubuntu-branches/ubuntu/oneiric/blobandconquer/oneiric

« back to all changes in this revision

Viewing changes to src/system/CCamera.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Guus Sliepen
  • Date: 2008-06-15 12:04:29 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080615120429-5ss7cbb4z9mpywj5
Tags: 0.95-1
New upstream release. Closes: #486310

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
Copyright (C) 2006 Parallel Realities
3
 
 
4
 
This program is free software; you can redistribute it and/or
5
 
modify it under the terms of the GNU General Public License
6
 
as published by the Free Software Foundation; either version 2
7
 
of the License, or (at your option) any later version.
8
 
 
9
 
This program is distributed in the hope that it will be useful,
10
 
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
 
 
13
 
See the 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, write to the Free Software
17
 
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18
 
 
19
 
*/
20
 
 
21
 
#include "../headers.h"
22
 
 
23
 
Camera::Camera()
24
 
{
25
 
        name = "Camera";
26
 
        
27
 
        targetCamera = NULL;
28
 
        
29
 
        cluster = 0;
30
 
        
31
 
        shake = false;
32
 
        
33
 
        boundingBox.mins.set(-1, -1, -1);
34
 
        boundingBox.maxs.set(1, 1, 1);
35
 
        updateBoundingBox();
36
 
}
37
 
 
38
 
Camera::~Camera()
39
 
{
40
 
}
41
 
 
42
 
Camera *Camera::getInstance()
43
 
{
44
 
        return &instance;
45
 
}
46
 
 
47
 
Vector Camera::getRenderingTarget()
48
 
{
49
 
        if (targetCamera == NULL)
50
 
        {
51
 
                return position;
52
 
        }
53
 
        
54
 
        if (targetCamera->custom > 0)
55
 
        {
56
 
                return position;
57
 
        }
58
 
        
59
 
        return targetCamera->position;
60
 
}
61
 
 
62
 
void Camera::use()
63
 
{
64
 
        gluLookAt(
65
 
        position.x, position.y, position.z, 
66
 
        target.x, target.y, target.z, 
67
 
        0.0f, 0.0f, 1.0f);
68
 
        
69
 
        frustum.calculate();
70
 
}
71
 
 
72
 
int Camera::getSoundDistance(Vector position)
73
 
{
74
 
        float distance = Math::getDistance(this->position, position);
75
 
        
76
 
        distance /= 10;
77
 
        
78
 
        if (distance > 128)
79
 
        {
80
 
                return 0;
81
 
        }
82
 
        
83
 
        distance = 128 - distance;
84
 
        
85
 
        return (int)distance;
86
 
}
87
 
 
88
 
void Camera::loadAdditional(Properties *props){}
89
 
void Camera::saveAdditional(Properties *props){}
90
 
 
91
 
Camera Camera::instance;