OpenWalnut
1.2.5
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
src
core
common
math
WUnitSphereCoordinates.cpp
1
//---------------------------------------------------------------------------
2
//
3
// Project: OpenWalnut ( http://www.openwalnut.org )
4
//
5
// Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
6
// For more information see http://www.openwalnut.org/copying
7
//
8
// This file is part of OpenWalnut.
9
//
10
// OpenWalnut is free software: you can redistribute it and/or modify
11
// it under the terms of the GNU Lesser General Public License as published by
12
// the Free Software Foundation, either version 3 of the License, or
13
// (at your option) any later version.
14
//
15
// OpenWalnut is distributed in the hope that it will be useful,
16
// but WITHOUT ANY WARRANTY; without even the implied warranty of
17
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
// GNU Lesser General Public License for more details.
19
//
20
// You should have received a copy of the GNU Lesser General Public License
21
// along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
22
//
23
//---------------------------------------------------------------------------
24
25
#include <cmath>
26
27
#include "WUnitSphereCoordinates.h"
28
29
WUnitSphereCoordinates::WUnitSphereCoordinates
()
30
: m_theta( 0.0 ),
31
m_phi( 0.0 )
32
{
33
}
34
35
WUnitSphereCoordinates::WUnitSphereCoordinates
(
double
theta,
double
phi )
36
: m_theta( theta ),
37
m_phi( phi )
38
{
39
}
40
41
WUnitSphereCoordinates::WUnitSphereCoordinates
(
WVector3d
vector )
42
{
43
vector = normalize( vector );
44
// calculate angles
45
m_theta
= std::acos( vector[2] );
46
m_phi
= std::atan2( vector[1], vector[0] );
47
}
48
49
WUnitSphereCoordinates::~WUnitSphereCoordinates
()
50
{
51
}
52
53
double
WUnitSphereCoordinates::getTheta
()
const
54
{
55
return
m_theta
;
56
}
57
58
double
WUnitSphereCoordinates::getPhi
()
const
59
{
60
return
m_phi
;
61
}
62
63
void
WUnitSphereCoordinates::setTheta
(
double
theta )
64
{
65
m_theta
= theta;
66
}
67
68
void
WUnitSphereCoordinates::setPhi
(
double
phi )
69
{
70
m_phi
= phi;
71
}
72
73
WVector3d
WUnitSphereCoordinates::getEuclidean
()
const
74
{
75
return
WVector3d
( std::sin(
m_theta
)*std::cos(
m_phi
), std::sin(
m_theta
)*std::sin(
m_phi
), std::cos(
m_theta
) );
76
}
Generated by
1.8.1