~ubuntu-branches/ubuntu/wily/ifrit/wily

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*=========================================================================

  Program:   Ionization FRont Interactive Tool (IFRIT)
  Language:  C++


Copyright (c) 2002-2006 Nick Gnedin 
All rights reserved.

This file may be distributed and/or modified under the terms of the
GNU General Public License version 2 as published by the Free Software
Foundation and appearing in the file LICENSE.GPL included in the
packaging of this file.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

=========================================================================*/


#ifndef IDATAFORMATTER_H
#define IDATAFORMATTER_H


#include <vtkObjectBase.h>


#include "iarray.h"
#include "istring.h"

#include "ipointermacro.h"

class iDataLimits;
class iViewModule;


class iDataFormatter : public vtkObjectBase
{

	IPOINTER_AS_PART(ViewModule);

public:

	static iDataFormatter* New(iViewModule *vm = 0);

	inline int GetNumReportLines() const { return mVarNameLines.Size(); }
	void GetReport(int i, iString& varName, iString &varData, iString &varUnit) const;

	void AddOneLine(const iString &name, const iString &data, const iString &unit);

	void ClearReport();
	void FormatScalarData(iDataLimits *lim, int n, float *v, bool useClass = false);
	void FormatVectorData(iDataLimits *lim, int ivar, float *v, float *div = 0, float *vort = 0);
	void FormatTensorData(iDataLimits *lim, int ivar, float *v, bool compressed = false);

protected:

	virtual ~iDataFormatter();

private:

	iDataFormatter(iViewModule *vm);

	iArray<iString> mVarNameLines, mVarDataLines, mVarUnitLines;
	iString mFormatHelper;
};

#endif  // IDATAFORMATTER_H