Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
IVT
src
Math
DoubleMatrix.cpp
Go to the documentation of this file.
1
// ****************************************************************************
2
// This file is part of the Integrating Vision Toolkit (IVT).
3
//
4
// The IVT is maintained by the Karlsruhe Institute of Technology (KIT)
5
// (www.kit.edu) in cooperation with the company Keyetech (www.keyetech.de).
6
//
7
// Copyright (C) 2014 Karlsruhe Institute of Technology (KIT).
8
// All rights reserved.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are met:
12
//
13
// 1. Redistributions of source code must retain the above copyright
14
// notice, this list of conditions and the following disclaimer.
15
//
16
// 2. Redistributions in binary form must reproduce the above copyright
17
// notice, this list of conditions and the following disclaimer in the
18
// documentation and/or other materials provided with the distribution.
19
//
20
// 3. Neither the name of the KIT nor the names of its contributors may be
21
// used to endorse or promote products derived from this software
22
// without specific prior written permission.
23
//
24
// THIS SOFTWARE IS PROVIDED BY THE KIT AND CONTRIBUTORS “AS IS” AND ANY
25
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27
// DISCLAIMED. IN NO EVENT SHALL THE KIT OR CONTRIBUTORS BE LIABLE FOR ANY
28
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
33
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
// ****************************************************************************
35
// ****************************************************************************
36
// Filename: DoubleMatrix.cpp
37
// Author: Pedram Azad
38
// Date: 2005
39
// ****************************************************************************
40
41
42
// ****************************************************************************
43
// Includes
44
// ****************************************************************************
45
46
#include <new>
// for explicitly using correct new/delete operators on VC DSPs
47
48
#include "
DoubleMatrix.h
"
49
50
#include "
Helpers/helpers.h
"
51
52
#include <stdio.h>
53
#include <string>
54
55
56
57
// ****************************************************************************
58
// Constructors / Destructor
59
// ****************************************************************************
60
61
CDoubleMatrix::CDoubleMatrix
()
62
{
63
columns
= 0;
64
rows
= 0;
65
data
= 0;
66
m_bOwnMemory
=
false
;
67
}
68
69
CDoubleMatrix::CDoubleMatrix
(
int
nColumns,
int
nRows,
bool
bHeaderOnly)
70
{
71
columns
= nColumns;
72
rows
= nRows;
73
74
if
(bHeaderOnly)
75
{
76
data
= 0;
77
m_bOwnMemory
=
false
;
78
}
79
else
80
{
81
data
=
new
double
[
columns
*
rows
];
82
m_bOwnMemory
=
true
;
83
}
84
}
85
86
CDoubleMatrix::CDoubleMatrix
(
const
CDoubleMatrix
&
matrix
,
bool
bHeaderOnly)
87
{
88
columns
= matrix.
columns
;
89
rows
= matrix.
rows
;
90
91
if
(bHeaderOnly)
92
{
93
data
= 0;
94
m_bOwnMemory
=
false
;
95
}
96
else
97
{
98
data
=
new
double
[
columns
*
rows
];
99
m_bOwnMemory
=
true
;
100
}
101
}
102
103
104
CDoubleMatrix::CDoubleMatrix
(
const
CDoubleMatrix
*pMatrix,
bool
bHeaderOnly)
105
{
106
columns
= pMatrix->
columns
;
107
rows
= pMatrix->
rows
;
108
109
if
(bHeaderOnly)
110
{
111
data
= 0;
112
m_bOwnMemory
=
false
;
113
}
114
else
115
{
116
data
=
new
double
[
columns
*
rows
];
117
m_bOwnMemory
=
true
;
118
}
119
}
120
121
CDoubleMatrix::~CDoubleMatrix
()
122
{
123
FreeMemory
();
124
}
125
126
127
// ****************************************************************************
128
// Methods
129
// ****************************************************************************
130
131
void
CDoubleMatrix::FreeMemory
()
132
{
133
if
(
data
)
134
{
135
if
(
m_bOwnMemory
)
136
delete
[]
data
;
137
138
data
= 0;
139
m_bOwnMemory
=
false
;
140
}
141
}
CDoubleMatrix::data
double * data
Definition:
DoubleMatrix.h:85
CDoubleMatrix::columns
int columns
Definition:
DoubleMatrix.h:83
matrix
GLuint GLenum matrix
Definition:
glext.h:5683
CDoubleMatrix::CDoubleMatrix
CDoubleMatrix()
Definition:
DoubleMatrix.cpp:61
CDoubleMatrix::FreeMemory
void FreeMemory()
Definition:
DoubleMatrix.cpp:131
data
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition:
glext.h:3129
DoubleMatrix.h
CDoubleMatrix::m_bOwnMemory
bool m_bOwnMemory
Definition:
DoubleMatrix.h:89
CDoubleMatrix::rows
int rows
Definition:
DoubleMatrix.h:84
CDoubleMatrix
Data structure for the representation of a matrix of values of the data type double.
Definition:
DoubleMatrix.h:54
helpers.h
CDoubleMatrix::~CDoubleMatrix
~CDoubleMatrix()
Definition:
DoubleMatrix.cpp:121
asr_ivt
Author(s): Allgeyer Tobias, Hutmacher Robin, Kleinert Daniel, Meißner Pascal, Scholz Jonas, Stöckle Patrick
autogenerated on Mon Dec 2 2019 03:47:27