Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
IVT
src
Math
FloatMatrix.h
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: FloatMatrix.h
37
// Author: Pedram Azad
38
// Date: 2005
39
// ****************************************************************************
40
44
#ifndef __FLOAT_MATRIX_H__
45
#define __FLOAT_MATRIX_H__
46
47
48
// ****************************************************************************
49
// CFloatMatrix
50
// ****************************************************************************
51
56
class
CFloatMatrix
57
{
58
public
:
59
// constructors
60
CFloatMatrix
();
61
CFloatMatrix
(
int
nColumns,
int
nRows,
bool
bHeaderOnly =
false
);
62
63
// copy constructors (will copy header and allocate memory)
64
CFloatMatrix
(
const
CFloatMatrix
*pMatrix,
bool
bHeaderOnly =
false
);
65
CFloatMatrix
(
const
CFloatMatrix
&
matrix
,
bool
bHeaderOnly =
false
);
66
67
// destructor
68
~CFloatMatrix
();
69
70
// public methods
71
bool
LoadFromFile
(
const
char
*pFileName);
72
bool
SaveToFile
(
const
char
*pFileName);
73
74
// operators
75
inline
float
&
operator()
(
const
int
nColumn,
const
int
nRow) {
return
data
[nRow *
columns
+ nColumn]; }
76
inline
float
*
operator[]
(
const
int
nRow) {
return
data
+ nRow *
columns
; }
77
78
inline
const
float
&
operator()
(
const
int
nColumn,
const
int
nRow)
const
{
return
data
[nRow *
columns
+ nColumn]; }
79
inline
const
float
*
operator[]
(
const
int
nRow)
const
{
return
data
+ nRow *
columns
; }
80
81
82
private
:
83
// private methods
84
void
FreeMemory
();
85
86
87
public
:
88
// public attributes - not clean OOP design but easy access
89
int
columns
;
90
int
rows
;
91
float
*
data
;
92
93
private
:
94
// private attributes - only used internally
95
bool
m_bOwnMemory
;
96
};
97
98
99
100
#endif
/* __FLOAT_MATRIX_H__ */
CFloatMatrix::m_bOwnMemory
bool m_bOwnMemory
Definition:
FloatMatrix.h:95
CFloatMatrix::CFloatMatrix
CFloatMatrix()
Definition:
FloatMatrix.cpp:62
matrix
GLuint GLenum matrix
Definition:
glext.h:5683
CFloatMatrix::~CFloatMatrix
~CFloatMatrix()
Definition:
FloatMatrix.cpp:121
CFloatMatrix::rows
int rows
Definition:
FloatMatrix.h:90
CFloatMatrix::columns
int columns
Definition:
FloatMatrix.h:89
CFloatMatrix::SaveToFile
bool SaveToFile(const char *pFileName)
Definition:
FloatMatrix.cpp:200
CFloatMatrix::LoadFromFile
bool LoadFromFile(const char *pFileName)
Definition:
FloatMatrix.cpp:143
CFloatMatrix::FreeMemory
void FreeMemory()
Definition:
FloatMatrix.cpp:131
CFloatMatrix
Data structure for the representation of a matrix of values of the data type float.
Definition:
FloatMatrix.h:56
data
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition:
glext.h:3129
CFloatMatrix::data
float * data
Definition:
FloatMatrix.h:91
CFloatMatrix::operator[]
float * operator[](const int nRow)
Definition:
FloatMatrix.h:76
CFloatMatrix::operator()
float & operator()(const int nColumn, const int nRow)
Definition:
FloatMatrix.h:75
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:28