LibCarna Version 3.4.0
Loading...
Searching...
No Matches
LibCarna.hpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2010 - 2016 Leonid Kostrykin
3 *
4 * Chair of Medical Engineering (mediTEC)
5 * RWTH Aachen University
6 * Pauwelsstr. 20
7 * 52074 Aachen
8 * Germany
9 *
10 *
11 * Copyright (C) 2021 - 2025 Leonid Kostrykin
12 *
13 */
14
15#ifndef LIBCARNA_GLOBAL_H_6014714286
16#define LIBCARNA_GLOBAL_H_6014714286
17
23#if defined( LIBCARNA_EXPORT )
24# if defined( _MSC_VER )
25# define LIBCARNA __declspec( dllexport )
26# pragma warning( disable : 4251 )
27# elif defined( _GCC )
28# define LIBCARNA __attribute__( ( visibility( "default" ) ) )
29# else
30# define LIBCARNA
31# endif
32#else
33# if defined( _MSC_VER )
34# define LIBCARNA __declspec( dllimport )
35# else
36# define LIBCARNA
37# endif
38#endif
39#if defined( NO_OVERRIDE_KEYWORD )
40# define override
41#endif
42
43#include <vector>
44#include <cstdint>
45
46
47
48// ----------------------------------------------------------------------------------
49// Forward Declarations
50// ----------------------------------------------------------------------------------
51
52namespace LibCarna
53{
54
58 namespace base
59 {
60
61 class Application;
62 class AssertionFailure;
63 class BaseBuffer;
64 class BlendFunction;
65 class BoundingBox;
66 class BoundingVolume;
67 class Camera;
68 class CameraControl;
69 class Color;
70 struct ColoredVertex;
71 class ColorMap;
72 class Framebuffer;
73 class FrameRenderer;
74 class Geometry;
75 class GeometryFeature;
76 class GLContext;
77 struct HUV;
78 struct HUVOffset;
79 class IndexBufferBase;
80 class LibCarnaException;
81 class Log;
82 class ManagedMeshBase;
83 class ManagedMeshInterface;
84 class ManagedTexture3D;
85 class ManagedTexture3DInterface;
86 class Material;
87 class MeshBase;
88 class MeshRenderingMixin;
89 class Node;
90 class NodeListener;
91 class NormalMap3D;
92 class NormalMap3DTexture;
93 struct PCVertex;
94 struct PNVertex;
95 class ProjectionControl;
96 struct PVertex;
97 class Releasable;
98 class Renderable;
99 class RenderStage;
100 class RenderStageListener;
101 class RenderStageSequence;
102 class RenderState;
103 class RenderTask;
104 class RotatingColor;
105 class Sampler;
106 class Shader;
107 class ShaderCompilationError;
108 class ShaderManager;
109 class ShaderProgram;
110 class ShaderUniformBase;
111 class Spatial;
112 class SpatialMovement;
113 class TextureBase;
114 struct VertexAttribute;
115 class VertexBufferBase;
116 struct VertexColor;
117 struct VertexNormal;
118 struct VertexPosition;
119 class Viewport;
120
121 template< typename AssociatedObjectType > class Aggregation;
122 template< typename AssociatedObjectType > class Association;
123 template< typename BufferedVectorComponentType, typename BufferType = std::vector< BufferedVectorComponentType > >
124 class BufferedNormalMap3D;
125 template< typename VoxelType, typename BufferType = std::vector< VoxelType > > class BufferedIntensityVolume;
126 template< typename BufferedVectorFieldType > struct BufferedVectorFieldFormat;
127 template< typename BufferedVectorFieldType > class BufferedVectorFieldTexture;
128 template< typename AssociatedObjectType > class Composition;
129 template< typename RenderableCompare > class GeometryStage;
130 template< typename SegmentIntensityVolumeType, typename SegmentNormalsVolumeType > class VolumeGrid;
131 template< typename SegmentIntensityVolumeType, typename SegmentNormalsVolumeType > class VolumeSegment;
132 template< typename IndexType > class IndexBuffer;
133 template< typename VertexType, typename IndexType > class Mesh;
134 template< typename VertexType, typename IndexType > class ManagedMesh;
135 template< typename VertexType > class MeshFactory;
136 template< typename RenderableCompare > class MeshRenderingStage;
137 template< typename RenderableCompare > class RenderQueue;
138 template< typename VertexType > class VertexBuffer;
139 template< typename ValueType > class ShaderUniform;
140 template< typename ValueType > struct ShaderUniformType;
141 template< typename InstanceType > class Singleton;
142 template< unsigned int dimension > class Texture;
143
148
153
158
162 namespace math
163 {
164
165 class Ray3f;
166
167 template< typename VectorType > class Ray;
168 template< typename ValueType > class VectorField;
169 template< typename T > class Span;
170 template< typename VectorType, typename ScalarType = typename VectorType::Scalar > class RayPlaneHitTest;
171
172 }
173
174 }
175
180 namespace presets
181 {
182
185 class PerspectiveControl;
186 class OrthogonalControl;
189 class MIPStage;
190 class DRRStage;
191 class DVRStage;
192 class MaskRenderingStage;
193 class CuttingPlanesStage;
196 class CompositionStage;
197
198 }
199
204 namespace helpers
205 {
206
207 class PointMarkerHelper;
208 class DefaultRenderStageOrder;
209 class VolumeGridHelperBase;
210
211 template< typename RenderStageOrder = DefaultRenderStageOrder > class FrameRendererHelper;
212 template< typename SegmentIntensityVolumeType, typename SegmentNormalsVolumeType = void > class VolumeGridHelper;
213
217 namespace details
218 {
219 }
220
221 }
222
223} // namespace LibCarna
224
225#endif // LIBCARNA_GLOBAL_H_6014714286
Represents an association.
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.hpp:110
Performs direct volume renderings of the volume geometries in the scene.
Definition DVRStage.hpp:106
Renders maximum intensity projections of volume geometries in the scene.
Definition MIPStage.hpp:67
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 LibCarna.hpp:157
BufferedIntensityVolume< uint16_t > IntensityVolumeUInt16
Defines 16bit intensity volume.
Definition LibCarna.hpp:147
BufferedIntensityVolume< uint8_t > IntensityVolumeUInt8
Defines 8bit intensity volume.
Definition LibCarna.hpp:152