Carna Version 3.3.3
Loading...
Searching...
No Matches
Carna.h
1/*
2 * Copyright (C) 2010 - 2015 Leonid Kostrykin
3 *
4 * Chair of Medical Engineering (mediTEC)
5 * RWTH Aachen University
6 * Pauwelsstr. 20
7 * 52074 Aachen
8 * Germany
9 *
10 */
11
12#ifndef CARNA_GLOBAL_H_6014714286
13#define CARNA_GLOBAL_H_6014714286
14
15#if defined( CARNA_EXPORT )
16# if defined( _MSC_VER )
17# define CARNA_LIB __declspec( dllexport )
18# pragma warning( disable : 4251 )
19# elif defined( _GCC )
20# define CARNA_LIB __attribute__( ( visibility( "default" ) ) )
21# else
22# define CARNA_LIB
23# endif
24#else
25# if defined( _MSC_VER )
26# define CARNA_LIB __declspec( dllimport )
27# else
28# define CARNA_LIB
29# endif
30#endif
31#if defined( NO_OVERRIDE_KEYWORD )
32# define override
33#endif
34
35#include <vector>
36#include <cstdint>
37
38
39
40// ----------------------------------------------------------------------------------
41// Forward Declarations
42// ----------------------------------------------------------------------------------
43
44namespace Carna
45{
46
50 namespace base
51 {
52
53 struct HUV;
54 class Application;
55 class AssertionFailure;
56 class BoundingBox;
57 class BoundingVolume;
58 class CameraControl;
59 class CarnaException;
60 class Log;
61 class HUVolume;
62 class BaseBuffer;
63 class BlendFunction;
64 class Camera;
65 class Color;
66 class Framebuffer;
67 class FrameRenderer;
68 class Geometry;
69 class GeometryFeature;
70 class GLContext;
71 class IndexBufferBase;
72 class MeshBase;
73 class ManagedMeshBase;
74 class ManagedMeshInterface;
75 class MeshRenderingStageBase;
76 class Node;
77 class ProjectionControl;
78 class Releasable;
79 class Renderable;
80 class RenderStage;
81 class RenderState;
82 class RenderTask;
83 class RotatingColor;
84 class Sampler;
85 class Shader;
86 class ShaderCompilationError;
87 class Material;
88 class ShaderManager;
89 class ShaderProgram;
90 class ShaderUniformBase;
91 class Spatial;
92 class SpatialMovement;
93 class ManagedTexture3D;
94 class ManagedTexture3DInterface;
95 struct PVertex;
96 struct PNVertex;
97 struct PCVertex;
98 struct VertexColor;
99 struct VertexNormal;
100 struct VertexPosition;
101 struct ColoredVertex;
102 struct VertexAttribute;
103 class VertexBufferBase;
104 class Viewport;
105 class NormalMap3D;
106 class NormalMap3DTexture;
107 class TextureBase;
108 class RenderStageSequence;
109 class RenderStageListener;
110 class NodeListener;
111
112 template< typename AssociatedObjectType > class Aggregation;
113 template< typename AssociatedObjectType > class Association;
114 template< typename BufferedVectorComponentType, typename BufferType = std::vector< BufferedVectorComponentType > >
115 class BufferedNormalMap3D;
116 template< typename VoxelType, typename BufferType = std::vector< VoxelType > > class BufferedIntensityVolume;
117 template< typename VoxelType, typename BufferType = std::vector< VoxelType > > class BufferedHUVolume;
118 template< typename BufferedVectorFieldType > struct BufferedVectorFieldFormat;
119 template< typename BufferedVectorFieldType > class BufferedVectorFieldTexture;
120 template< typename AssociatedObjectType > class Composition;
121 template< typename RenderableCompare > class GeometryStage;
122 template< typename SegmentIntensityVolumeType, typename SegmentNormalsVolumeType > class VolumeGrid;
123 template< typename SegmentIntensityVolumeType, typename SegmentNormalsVolumeType > class VolumeSegment;
124 template< typename IndexType > class IndexBuffer;
125 template< typename VertexType, typename IndexType > class Mesh;
126 template< typename VertexType, typename IndexType > class ManagedMesh;
127 template< typename VertexType > class MeshFactory;
128 template< typename RenderableCompare > class MeshRenderingStage;
129 template< typename RenderableCompare > class RenderQueue;
130 template< typename VertexType > class VertexBuffer;
131 template< typename ValueType > class ShaderUniform;
132 template< typename ValueType > struct ShaderUniformType;
133 template< typename InstanceType > class Singleton;
134 template< unsigned int dimension > class Texture;
135
142
149
156
161
165 namespace math
166 {
167
168 class Ray3f;
169
170 template< typename VectorType > class Ray;
171 template< typename ValueType > class VectorField;
172 template< typename T > class Span;
173 template< typename VectorType, typename ScalarType = typename VectorType::Scalar > class RayPlaneHitTest;
174
175 }
176
177 }
178
183 namespace presets
184 {
185
188 class PerspectiveControl;
189 class OrthogonalControl;
192 class MIPStage;
193 class MIPLayer;
194 class DRRStage;
195 class DVRStage;
196 class MaskRenderingStage;
197 class CuttingPlanesStage;
200 class CompositionStage;
201
202 }
203
208 namespace helpers
209 {
210
211 class PointMarkerHelper;
214
215 template< typename RenderStageOrder = DefaultRenderStageOrder > class FrameRendererHelper;
216 template< typename SegmentIntensityVolumeType, typename SegmentNormalsVolumeType = void > class VolumeGridHelper;
217
221 namespace details
222 {
223 }
224
225 }
226
227} // namespace Carna
228
229#endif // CARNA_GLOBAL_H_6014714286
230
Represents an association.
Definition Association.h:45
Defines default rendering stages order used by FrameRendererHelper.
Adds rendering stages to a base::FrameRenderer object according to RenderStageOrder.
Simplifies the creation and maintenance of point markers.
Defines type-parameters-independent VolumeGridHelper base interface.
Computes the partitioning of volumetric data and the corresponding normal map. Also creates scene nod...
Implements base::CameraControl, rotates the camera around itself and allows completely free camera mo...
Implements base::CameraControl, rotates the camera around its parent node. The camera movement is bou...
Defines rendering stage that combines two other renderings either by putting them next to each other ...
Renders cutting planes of volume geometries in the scene.
Renders digital radiograph reconstructs of volume geometries in the scene.
Definition DRRStage.h:107
Performs direct volume renderings of the volume geometries in the scene.
Definition DVRStage.h:102
Defines an intensity range and the way it is visualized by a maximum intensity projection.
Definition MIPLayer.h:44
Renders maximum intensity projections of volume geometries in the scene.
Definition MIPStage.h:65
Implements a simple interface for mapping frame coordinates to base::Mesh objects.
Renders geometry that is actually depth-occluded. The occluded geometry is rendered with reduced opac...
Controls orthogonal projection matrices, that induce box-shaped visible volume, and base::Camera obje...
Controls projection matrices that induce frustum-shaped visible volume.
Implements rendering stage that renders transparent meshes.
Defines abstract base class for rendering stages that render volume geometries in the scene.
BufferedNormalMap3D< int8_t > NormalMap3DInt8
Defines 8bit signed integer BufferedNormalMap3D.
Definition Carna.h:160
BufferedIntensityVolume< uint8_t > IntensityVolumeUInt8
Defines 8bit intensity volume.
Definition Carna.h:148
BufferedHUVolume< uint16_t > HUVolumeUInt16
Defines 16bit unsigned integer HU volume data.
Definition Carna.h:155
BufferedIntensityVolume< uint16_t > IntensityVolumeUInt16
Defines 16bit intensity volume.
Definition Carna.h:141