summaryrefslogtreecommitdiff
path: root/inc/Voxel_VisData.h
blob: 01e0f9f45a295782ce74696e279e074120a6059f (plain)
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#ifndef _VOXEL_VISDATA_H_
#define _VOXEL_VISDATA_H_

#include <Quantity_Color.hxx>
#include <Quantity_HArray1OfColor.hxx>
#include <TShort_HArray1OfShortReal.hxx>
#include <TColStd_HArray1OfReal.hxx>
#include <TColgp_HArray1OfDir.hxx>
#include <Poly_Triangulation.hxx>

#include <Voxel_BoolDS.hxx>
#include <Voxel_ColorDS.hxx>
#include <Voxel_ROctBoolDS.hxx>
#include <Voxel_VoxelDisplayMode.hxx>

enum VoxelDirection
{
    None,
	Xminus,
	Xplus,
	Yminus,
	Yplus,
	Zminus,
	Zplus
};

typedef struct
{

	/* Display mode */
	Voxel_VoxelDisplayMode myDisplayMode;

    /* Range of displayed values */
    /* BoolDS */
    /* No range */
    /* ColorDS */
    Standard_Byte  myColorMinValue;
    Standard_Byte  myColorMaxValue;

    /* Range of displayed size */
    Standard_Real         myDisplayedXMin;
    Standard_Real         myDisplayedXMax;
    Standard_Real         myDisplayedYMin;
    Standard_Real         myDisplayedYMax;
    Standard_Real         myDisplayedZMin;
    Standard_Real         myDisplayedZMax;

	/* Colors */
	Quantity_Color myColor;
    Handle(Quantity_HArray1OfColor) myColors;

	/* Size, width... */
	Standard_Real         myPointSize;
    Standard_Integer          myQuadrangleSize; /* 0% .. 100% */
    Standard_Byte  mySmoothPoints;

    /* Transparency */
    Standard_Real         myTransparency;

    /* GL lists of each display mode */
    /* BoolDS */
    /* POINTS */
    Standard_Integer            myBoolPointsList;
    Standard_Byte  myBoolPointsFirst;
    /* NEAREST POINTS */
    Standard_Integer            myBoolNearestPointsList[7];
    Standard_Byte  myBoolNearestPointsFirst;
    /* ColorDS */
    /* POINTS */
    Standard_Integer            myColorPointsList;
    Standard_Byte  myColorPointsFirst;
    /* NEAREST POINTS */
    Standard_Integer            myColorNearestPointsList[7];
    Standard_Byte  myColorNearestPointsFirst;
    /* ROctBoolDS */
    /* POINTS */
    Standard_Integer            myROctBoolPointsList;
    Standard_Byte  myROctBoolPointsFirst;
    /* NEAREST POINTS */
    Standard_Integer            myROctBoolNearestPointsList[7];
    Standard_Byte  myROctBoolNearestPointsFirst;
    /* TRIANGULATION */
    Standard_Integer            myTriangulationList;
    /* Usage of GL lists */
    Standard_Byte  myUsageOfGLlists;

    /* Degenerate mode */
    Standard_Byte  myDegenerateMode;

    /* Highlighted voxel */
    Standard_Integer            myHighlightx;
    Standard_Integer            myHighlighty;
    Standard_Integer            myHighlightz;

} DisplayData;

typedef struct
{

	// Voxels
	Voxel_BoolDS*     myBoolVoxels;
	Voxel_ColorDS*    myColorVoxels;
	Voxel_ROctBoolDS* myROctBoolVoxels;

    // Triangulation
    Handle(Poly_Triangulation) myTriangulation;
    Handle(TColgp_HArray1OfDir) myNormalsOfNodes;

	// Display
	DisplayData    myDisplay;

} Voxel_VisData;

#endif // _VOXEL_VISDATA_H_