OpenWalnut
1.4.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
src
core
dataHandler
WTractAdapter.h
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
#ifndef WTRACTADAPTER_H
26
#define WTRACTADAPTER_H
27
28
#include <vector>
29
30
#include <boost/shared_ptr.hpp>
31
32
#include "../common/math/linearAlgebra/WPosition.h"
33
34
/**
35
* Adapter
36
*/
37
class
WTractAdapter
38
{
39
public
:
40
/**
41
* Constructs a new WTract which has \ref numPoints points and a startIndex inside of the
42
* given components array.
43
*
44
* \param pointComponents Array where the components of the tract points are inside of
45
* \param startIndex The position inside of the components array of the first x coordinate.
46
* \param numPoints How many points this tract has
47
*/
48
WTractAdapter
( boost::shared_ptr<
const
std::vector< float > > pointComponents,
size_t
startIndex,
size_t
numPoints
);
49
50
/**
51
* How many positions this tract incorporates.
52
*
53
* \return number of points
54
*/
55
size_t
numPoints
()
const
;
56
57
/**
58
* Constructs and returns a \ref WPosition out of the i'th position of this tract.
59
*
60
* \param index The index of the position of this tract. It may start at \c 0 and is always
61
* smaller than \ref numPoints().
62
*
63
* \return The i'th position of this tract as \ref WPosition.
64
*/
65
WPosition
operator[]
(
size_t
index )
const
;
66
67
// void reset( boost::shared_ptr< const WTractData > tracts, size_t startIndex, size_t numPoints )
68
69
protected
:
70
private
:
71
/**
72
* The array where the components of this tracts live. But you will need the starting position
73
* and the length of the tract to access them.
74
*/
75
boost::shared_ptr< const std::vector< float > >
m_pointComponents
;
76
77
/**
78
* How many \e points aka WPositions this tract consists of.
79
*/
80
size_t
m_numPoints
;
81
82
/**
83
* The index of the x-component of the first point of this tract inside the \ref m_pointComponents array.
84
*/
85
size_t
m_startIndex
;
86
};
87
88
inline
size_t
WTractAdapter::numPoints
()
const
89
{
90
return
m_numPoints
;
91
}
92
93
#endif // WTRACTADAPTER_H
Generated by
1.8.1.2