Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
9.2.2023: Due to updates GitLab will be unavailable for some minutes between 9:00 and 11:00.
Open sidebar
CAMP
campvis-public
Commits
4ec50365
Commit
4ec50365
authored
Feb 16, 2015
by
Hossain Mahmud
Browse files
added processor registrar to all processors
parent
6b58827e
Changes
35
Hide whitespace changes
Inline
Side-by-side
core/bindings/campvis.i
View file @
4ec50365
...
...
@@ -328,7 +328,7 @@ namespace campvis {
virtual
size_t
getVideoMemoryFootprint
()
const
=
0
;
virtual
AbstractData
*
clone
()
const
=
0
;
}
;
/* DataHandle */
class
DataHandle
{
...
...
core/pipeline/raycastingprocessor.h
View file @
4ec50365
...
...
@@ -82,6 +82,7 @@ namespace campvis {
* \note When overwriting this method, make sure to call the base class version at the end.
*/
virtual
void
deinit
();
DataNameProperty
p_sourceImageID
;
///< image ID for input image
DataNameProperty
p_entryImageID
;
///< image ID for output entry points image
...
...
core/pipeline/slicerenderprocessor.h
View file @
4ec50365
...
...
@@ -76,7 +76,7 @@ namespace campvis {
/// \see AbstractProcessor::deinit
virtual
void
deinit
();
/// \see cgt::EventListener::onEvent()
virtual
void
onEvent
(
cgt
::
Event
*
e
);
...
...
modules/microscopysegmentation/processors/microscopyimagesegmentation.h
View file @
4ec50365
...
...
@@ -43,6 +43,7 @@
#include
"modules/vis/processors/sliceextractor.h"
#include
<vector>
#include
"modules/processorfactory.h"
namespace
cgt
{
class
Shader
;
...
...
@@ -113,9 +114,13 @@ namespace campvis {
/// \see AbstractProcessor::deinit
virtual
void
deinit
();
/**
* To be used in ProcessorFactory static methods
*/
static
const
std
::
string
getId
()
{
return
"MicroscopyImageSegmentation"
;
};
/// \see AbstractProcessor::getName()
virtual
const
std
::
string
getName
()
const
{
return
"MicroscopyImageSegmentation"
;
};
virtual
const
std
::
string
getName
()
const
{
return
getId
()
;
};
/// \see AbstractProcessor::getDescription()
virtual
const
std
::
string
getDescription
()
const
{
return
"Combines a volume raycaster and 3 slice views for explorative volume visualization."
;
};
/// \see AbstractProcessor::getAuthor()
...
...
@@ -223,6 +228,8 @@ namespace campvis {
int
insertNextVoxelAt
;
};
// Instantiate template to register the pipelines.
template
class
SmartProcessorRegistrar
<
MicroscopyImageSegmentation
>;
}
#endif // MICROSCOPYIMAGESEGMENTATION_H__
modules/preprocessing/processors/glgaussianfilter.h
View file @
4ec50365
...
...
@@ -34,6 +34,7 @@
#include
"core/properties/optionproperty.h"
#include
"modules/modulesapi.h"
#include
"modules/processorfactory.h"
namespace
cgt
{
class
BufferObject
;
...
...
@@ -60,9 +61,13 @@ namespace campvis {
virtual
void
init
();
/// \see AbstractProcessor::deinit
virtual
void
deinit
();
/**
* To be used in ProcessorFactory static methods
*/
static
const
std
::
string
getId
()
{
return
"GlGaussianFilter"
;
};
/// \see AbstractProcessor::getName()
virtual
const
std
::
string
getName
()
const
{
return
"GlGaussianFilter"
;
};
virtual
const
std
::
string
getName
()
const
{
return
getId
()
;
};
/// \see AbstractProcessor::getDescription()
virtual
const
std
::
string
getDescription
()
const
{
return
"Performs a gaussian filtering on the input image using OpenGL."
;
};
/// \see AbstractProcessor::getAuthor()
...
...
@@ -96,6 +101,8 @@ namespace campvis {
static
const
std
::
string
loggerCat_
;
};
// Instantiate template to register the pipelines.
template
class
SmartProcessorRegistrar
<
GlGaussianFilter
>;
}
#endif // GLGAUSSIANFILTER_H__
modules/preprocessing/processors/glgradientvolumegenerator.h
View file @
4ec50365
...
...
@@ -32,6 +32,7 @@
#include
"core/properties/datanameproperty.h"
#include
"modules/modulesapi.h"
#include
"modules/processorfactory.h"
namespace
cgt
{
class
Shader
;
...
...
@@ -57,9 +58,13 @@ namespace campvis {
virtual
void
init
();
/// \see AbstractProcessor::deinit
virtual
void
deinit
();
/**
* To be used in ProcessorFactory static methods
*/
static
const
std
::
string
getId
()
{
return
"GlGradientVolumeGenerator"
;
};
/// \see AbstractProcessor::getName()
virtual
const
std
::
string
getName
()
const
{
return
"GlGradientVolumeGenerator"
;
};
virtual
const
std
::
string
getName
()
const
{
return
getId
()
;
};
/// \see AbstractProcessor::getDescription()
virtual
const
std
::
string
getDescription
()
const
{
return
"Creates the gradient volume for the given intensity volume using OpenGL."
;
};
/// \see AbstractProcessor::getAuthor()
...
...
@@ -83,6 +88,8 @@ namespace campvis {
static
const
std
::
string
loggerCat_
;
};
// Instantiate template to register the pipelines.
template
class
SmartProcessorRegistrar
<
GlGradientVolumeGenerator
>;
}
#endif // GLGRADIENTVOLUMEGENERATOR_H__
modules/preprocessing/processors/glimagecrop.h
View file @
4ec50365
...
...
@@ -32,6 +32,7 @@
#include
"core/properties/datanameproperty.h"
#include
"core/properties/transferfunctionproperty.h"
#include
"core/properties/numericproperty.h"
#include
"modules/processorfactory.h"
namespace
cgt
{
class
Shader
;
...
...
@@ -57,9 +58,13 @@ namespace campvis {
virtual
void
init
();
/// \see AbstractProcessor::deinit
virtual
void
deinit
();
/**
* To be used in ProcessorFactory static methods
*/
static
const
std
::
string
getId
()
{
return
"GlImageCrop"
;
};
/// \see AbstractProcessor::getName()
virtual
const
std
::
string
getName
()
const
{
return
"GlImageCrop"
;
};
virtual
const
std
::
string
getName
()
const
{
return
getId
()
;
};
/// \see AbstractProcessor::getDescription()
virtual
const
std
::
string
getDescription
()
const
{
return
"Quantizes image intensities into a fixed number of bins using the GPU."
;
};
/// \see AbstractProcessor::getAuthor()
...
...
@@ -84,6 +89,8 @@ namespace campvis {
static
const
std
::
string
loggerCat_
;
};
// Instantiate template to register the pipelines.
template
class
SmartProcessorRegistrar
<
GlImageCrop
>;
}
#endif // GLIMAGECROP_H__
modules/preprocessing/processors/glimageresampler.h
View file @
4ec50365
...
...
@@ -33,6 +33,7 @@
#include
"core/properties/floatingpointproperty.h"
#include
"modules/modulesapi.h"
#include
"modules/processorfactory.h"
namespace
cgt
{
class
Shader
;
...
...
@@ -58,9 +59,13 @@ namespace campvis {
virtual
void
init
();
/// \see AbstractProcessor::deinit
virtual
void
deinit
();
/**
* To be used in ProcessorFactory static methods
*/
static
const
std
::
string
getId
()
{
return
"GlImageResampler"
;
};
/// \see AbstractProcessor::getName()
virtual
const
std
::
string
getName
()
const
{
return
"GlImageResampler"
;
};
virtual
const
std
::
string
getName
()
const
{
return
getId
()
;
};
/// \see AbstractProcessor::getDescription()
virtual
const
std
::
string
getDescription
()
const
{
return
"Resamples am image on the GPU using OpenGL."
;
};
/// \see AbstractProcessor::getAuthor()
...
...
@@ -84,6 +89,8 @@ namespace campvis {
static
const
std
::
string
loggerCat_
;
};
// Instantiate template to register the pipelines.
template
class
SmartProcessorRegistrar
<
GlImageResampler
>;
}
#endif // GLIMAGERESAMPLER_H__
...
...
modules/preprocessing/processors/glintensityquantizer.h
View file @
4ec50365
...
...
@@ -34,6 +34,7 @@
#include
"core/properties/numericproperty.h"
#include
"modules/modulesapi.h"
#include
"modules/processorfactory.h"
namespace
cgt
{
class
Shader
;
...
...
@@ -59,9 +60,13 @@ namespace campvis {
virtual
void
init
();
/// \see AbstractProcessor::deinit
virtual
void
deinit
();
/**
* To be used in ProcessorFactory static methods
*/
static
const
std
::
string
getId
()
{
return
"GlIntensityQuantizer"
;
};
/// \see AbstractProcessor::getName()
virtual
const
std
::
string
getName
()
const
{
return
"GlIntensityQuantizer"
;
};
virtual
const
std
::
string
getName
()
const
{
return
getId
()
;
};
/// \see AbstractProcessor::getDescription()
virtual
const
std
::
string
getDescription
()
const
{
return
"Quantizes image intensities into a fixed number of bins using the GPU."
;
};
/// \see AbstractProcessor::getAuthor()
...
...
@@ -84,6 +89,8 @@ namespace campvis {
static
const
std
::
string
loggerCat_
;
};
// Instantiate template to register the pipelines.
template
class
SmartProcessorRegistrar
<
GlIntensityQuantizer
>;
}
#endif // GLINTENSITYQUANTIZER_H__
modules/preprocessing/processors/glmorphologyfilter.h
View file @
4ec50365
...
...
@@ -34,6 +34,7 @@
#include
"core/properties/stringproperty.h"
#include
"modules/modulesapi.h"
#include
"modules/processorfactory.h"
namespace
cgt
{
class
Shader
;
...
...
@@ -59,9 +60,13 @@ namespace campvis {
virtual
void
init
();
/// \see AbstractProcessor::deinit
virtual
void
deinit
();
/**
* To be used in ProcessorFactory static methods
*/
static
const
std
::
string
getId
()
{
return
"GlMorphologyFilter"
;
};
/// \see AbstractProcessor::getName()
virtual
const
std
::
string
getName
()
const
{
return
"GlMorphologyFilter"
;
};
virtual
const
std
::
string
getName
()
const
{
return
getId
()
;
};
/// \see AbstractProcessor::getDescription()
virtual
const
std
::
string
getDescription
()
const
{
return
"Creates the gradient volume for the given intensity volume using OpenGL."
;
};
/// \see AbstractProcessor::getAuthor()
...
...
@@ -98,6 +103,8 @@ namespace campvis {
static
const
std
::
string
loggerCat_
;
};
// Instantiate template to register the pipelines.
template
class
SmartProcessorRegistrar
<
GlMorphologyFilter
>;
}
#endif // GLMORPHOLOGYFILTER_H__
modules/preprocessing/processors/glsignaltonoiseratiofilter.h
View file @
4ec50365
...
...
@@ -32,6 +32,7 @@
#include
"core/properties/datanameproperty.h"
#include
"modules/modulesapi.h"
#include
"modules/processorfactory.h"
namespace
cgt
{
class
Shader
;
...
...
@@ -57,9 +58,13 @@ namespace campvis {
virtual
void
init
();
/// \see AbstractProcessor::deinit
virtual
void
deinit
();
/**
* To be used in ProcessorFactory static methods
*/
static
const
std
::
string
getId
()
{
return
"GlSignalToNoiseRatioFilter"
;
};
/// \see AbstractProcessor::getName()
virtual
const
std
::
string
getName
()
const
{
return
"GlSignalToNoiseRatioFilter"
;
};
virtual
const
std
::
string
getName
()
const
{
return
getId
()
;
};
/// \see AbstractProcessor::getDescription()
virtual
const
std
::
string
getDescription
()
const
{
return
"Creates the gradient volume for the given intensity volume using OpenGL."
;
};
/// \see AbstractProcessor::getAuthor()
...
...
@@ -81,6 +86,8 @@ namespace campvis {
static
const
std
::
string
loggerCat_
;
};
// Instantiate template to register the pipelines.
template
class
SmartProcessorRegistrar
<
GlSignalToNoiseRatioFilter
>;
}
#endif // GLSIGNALTONOISERATIOFILTER_H__
modules/preprocessing/processors/glvesselnessfilter.h
View file @
4ec50365
...
...
@@ -32,6 +32,7 @@
#include
"core/properties/floatingpointproperty.h"
#include
"modules/modulesapi.h"
#include
"modules/processorfactory.h"
namespace
cgt
{
class
Shader
;
...
...
@@ -57,9 +58,13 @@ namespace campvis {
virtual
void
init
();
/// \see AbstractProcessor::deinit
virtual
void
deinit
();
/**
* To be used in ProcessorFactory static methods
*/
static
const
std
::
string
getId
()
{
return
"GlVesselnessFilter"
;
};
/// \see AbstractProcessor::getName()
virtual
const
std
::
string
getName
()
const
{
return
"GlVesselnessFilter"
;
};
virtual
const
std
::
string
getName
()
const
{
return
getId
()
;
};
/// \see AbstractProcessor::getDescription()
virtual
const
std
::
string
getDescription
()
const
{
return
"Computes a Vesselness Measure very similar to the one proposed by Frangi."
;
};
/// \see AbstractProcessor::getAuthor()
...
...
@@ -87,6 +92,8 @@ namespace campvis {
static
const
std
::
string
loggerCat_
;
};
// Instantiate template to register the pipelines.
template
class
SmartProcessorRegistrar
<
GlVesselnessFilter
>;
}
#endif // GLVESSELNESSFILTER_H__
modules/processorfactory.cpp
View file @
4ec50365
...
...
@@ -53,10 +53,10 @@ namespace campvis {
tbb
::
spin_mutex
::
scoped_lock
lock
(
_mutex
);
std
::
vector
<
std
::
string
>
toReturn
;
toReturn
.
reserve
(
_processorMap
2
.
size
()
+
_processorMap
.
size
());
for
(
auto
it
=
_processorMap
2
.
begin
();
it
!=
_processorMap
2
.
end
();
++
it
)
toReturn
.
reserve
(
_processorMap
WithIVec2Param
.
size
()
+
_processorMap
Default
.
size
());
for
(
auto
it
=
_processorMap
WithIVec2Param
.
begin
();
it
!=
_processorMap
WithIVec2Param
.
end
();
++
it
)
toReturn
.
push_back
(
it
->
first
);
for
(
auto
it
=
_processorMap
.
begin
();
it
!=
_processorMap
.
end
();
++
it
)
for
(
auto
it
=
_processorMap
Default
.
begin
();
it
!=
_processorMap
Default
.
end
();
++
it
)
toReturn
.
push_back
(
it
->
first
);
return
toReturn
;
}
...
...
@@ -65,14 +65,14 @@ namespace campvis {
tbb
::
spin_mutex
::
scoped_lock
lock
(
_mutex
);
if
(
viewPortSizeProp
!=
nullptr
)
{
auto
it
=
_processorMap
2
.
find
(
id
);
if
(
it
==
_processorMap
2
.
end
())
auto
it
=
_processorMap
WithIVec2Param
.
find
(
id
);
if
(
it
==
_processorMap
WithIVec2Param
.
end
())
return
nullptr
;
else
return
(
it
->
second
)(
viewPortSizeProp
);
}
else
{
auto
it
=
_processorMap
.
find
(
id
);
if
(
it
==
_processorMap
.
end
())
auto
it
=
_processorMap
Default
.
find
(
id
);
if
(
it
==
_processorMap
Default
.
end
())
return
nullptr
;
else
return
(
it
->
second
)();
...
...
modules/processorfactory.h
View file @
4ec50365
...
...
@@ -76,19 +76,19 @@ namespace campvis {
* \return The registration index.
*/
template
<
typename
T
>
size_t
registerProcessor
(
std
::
function
<
AbstractProcessor
*
()
>
callee
)
{
size_t
registerProcessor
WithDefaultConstructor
(
std
::
function
<
AbstractProcessor
*
()
>
callee
)
{
tbb
::
spin_mutex
::
scoped_lock
lock
(
_mutex
);
auto
it
=
_processorMap
.
lower_bound
(
T
::
getId
());
if
(
it
==
_processorMap
.
end
()
||
it
->
first
!=
T
::
getId
())
{
_processorMap
.
insert
(
it
,
std
::
make_pair
(
T
::
getId
(),
callee
));
auto
it
=
_processorMap
Default
.
lower_bound
(
T
::
getId
());
if
(
it
==
_processorMap
Default
.
end
()
||
it
->
first
!=
T
::
getId
())
{
_processorMap
Default
.
insert
(
it
,
std
::
make_pair
(
T
::
getId
(),
callee
));
}
else
{
// do nothing, a double registration may occure due to having the ProcessorRegistrar
// being referenced in both campvis-application and campvis-modules
}
return
_processorMap
.
size
();
return
_processorMap
Default
.
size
();
}
/**
...
...
@@ -98,27 +98,27 @@ namespace campvis {
* \return The registration index.
*/
template
<
typename
T
>
size_t
registerProcessor
2
(
std
::
function
<
AbstractProcessor
*
(
IVec2Property
*
)
>
callee
)
{
size_t
registerProcessor
WithIVec2PropParam
(
std
::
function
<
AbstractProcessor
*
(
IVec2Property
*
)
>
callee
)
{
tbb
::
spin_mutex
::
scoped_lock
lock
(
_mutex
);
auto
it
=
_processorMap
2
.
lower_bound
(
T
::
getId
());
if
(
it
==
_processorMap
2
.
end
()
||
it
->
first
!=
T
::
getId
())
{
_processorMap
2
.
insert
(
it
,
std
::
make_pair
(
T
::
getId
(),
callee
));
auto
it
=
_processorMap
WithIVec2Param
.
lower_bound
(
T
::
getId
());
if
(
it
==
_processorMap
WithIVec2Param
.
end
()
||
it
->
first
!=
T
::
getId
())
{
_processorMap
WithIVec2Param
.
insert
(
it
,
std
::
make_pair
(
T
::
getId
(),
callee
));
}
else
{
// do nothing, a double registration may occure due to having the ProcessorRegistrar
// being referenced in both campvis-application and campvis-modules
}
return
_processorMap
2
.
size
();
return
_processorMap
WithIVec2Param
.
size
();
}
private:
mutable
tbb
::
spin_mutex
_mutex
;
static
tbb
::
atomic
<
ProcessorFactory
*>
_singleton
;
///< the singleton object
std
::
map
<
std
::
string
,
std
::
function
<
AbstractProcessor
*
()
>>
_processorMap
;
std
::
map
<
std
::
string
,
std
::
function
<
AbstractProcessor
*
(
IVec2Property
*
)
>>
_processorMap
2
;
std
::
map
<
std
::
string
,
std
::
function
<
AbstractProcessor
*
()
>>
_processorMap
Default
;
std
::
map
<
std
::
string
,
std
::
function
<
AbstractProcessor
*
(
IVec2Property
*
)
>>
_processorMap
WithIVec2Param
;
};
...
...
@@ -144,7 +144,7 @@ namespace campvis {
};
template
<
typename
T
>
const
size_t
ProcessorRegistrarSwitch
<
T
,
false
>::
_factoryId
=
ProcessorFactory
::
getRef
().
registerProcessor
<
T
>
(
&
ProcessorRegistrarSwitch
<
T
,
false
>::
create
);
const
size_t
ProcessorRegistrarSwitch
<
T
,
false
>::
_factoryId
=
ProcessorFactory
::
getRef
().
registerProcessor
WithDefaultConstructor
<
T
>
(
&
ProcessorRegistrarSwitch
<
T
,
false
>::
create
);
template
<
typename
T
>
...
...
@@ -164,7 +164,7 @@ namespace campvis {
};
template
<
typename
T
>
const
size_t
ProcessorRegistrarSwitch
<
T
,
true
>::
_factoryId
=
ProcessorFactory
::
getRef
().
registerProcessor
2
<
T
>
(
&
ProcessorRegistrarSwitch
<
T
,
true
>::
create
);
const
size_t
ProcessorRegistrarSwitch
<
T
,
true
>::
_factoryId
=
ProcessorFactory
::
getRef
().
registerProcessor
WithIVec2PropParam
<
T
>
(
&
ProcessorRegistrarSwitch
<
T
,
true
>::
create
);
...
...
modules/tensor/processors/tensorglyphrenderer.h
View file @
4ec50365
...
...
@@ -35,6 +35,7 @@
#include
"core/datastructures/geometrydata.h"
#include
"modules/modulesapi.h"
#include
"modules/processorfactory.h"
namespace
cgt
{
class
Shader
;
...
...
@@ -69,9 +70,13 @@ namespace campvis {
* Destructor
**/
virtual
~
TensorGlyphRenderer
();
/**
* To be used in ProcessorFactory static methods
*/
static
const
std
::
string
getId
()
{
return
"TensorGlyphRenderer"
;
};
/// \see AbstractProcessor::getName()
virtual
const
std
::
string
getName
()
const
{
return
"TensorGlyphRenderer"
;
};
virtual
const
std
::
string
getName
()
const
{
return
getId
()
;
};
/// \see AbstractProcessor::getDescription()
virtual
const
std
::
string
getDescription
()
const
{
return
"Renders axis-aligned slices with tensor glyphs."
;
};
/// \see AbstractProcessor::getAuthor()
...
...
@@ -123,6 +128,8 @@ namespace campvis {
static
const
std
::
string
loggerCat_
;
};
// Instantiate template to register the pipelines.
template
class
SmartProcessorRegistrar
<
TensorGlyphRenderer
>;
}
#endif // TENSORGLYPHRENDERER_H__
modules/vectorfield/processors/particleflowrenderer.h
View file @
4ec50365
...
...
@@ -37,6 +37,7 @@
#include
"core/datastructures/geometrydata.h"
#include
"modules/modulesapi.h"
#include
"modules/processorfactory.h"
namespace
cgt
{
class
BufferObject
;
...
...
@@ -65,9 +66,13 @@ namespace campvis {
* Destructor
**/
virtual
~
ParticleFlowRenderer
();
/**
* To be used in ProcessorFactory static methods
*/
static
const
std
::
string
getId
()
{
return
"ParticleFlowRenderer"
;
};
/// \see AbstractProcessor::getName()
virtual
const
std
::
string
getName
()
const
{
return
"ParticleFlowRenderer"
;
};
virtual
const
std
::
string
getName
()
const
{
return
getId
()
;
};
/// \see AbstractProcessor::getDescription()
virtual
const
std
::
string
getDescription
()
const
{
return
"Visualization of a flow field using a particle system."
;
};
/// \see AbstractProcessor::getAuthor()
...
...
@@ -146,6 +151,8 @@ namespace campvis {
static
const
std
::
string
loggerCat_
;
};
// Instantiate template to register the pipelines.
template
class
SmartProcessorRegistrar
<
ParticleFlowRenderer
>;
}
#endif // PARTICLEFLOWRENDERER_H__
modules/vectorfield/processors/vectorfieldrenderer.h
View file @
4ec50365
...
...
@@ -35,6 +35,7 @@
#include
"core/datastructures/geometrydata.h"
#include
"modules/modulesapi.h"
#include
"modules/processorfactory.h"
namespace
cgt
{
class
Shader
;
...
...
@@ -63,9 +64,13 @@ namespace campvis {
* Destructor
**/
virtual
~
VectorFieldRenderer
();
/**
* To be used in ProcessorFactory static methods
*/
static
const
std
::
string
getId
()
{
return
"VectorFieldRenderer"
;
};
/// \see AbstractProcessor::getName()
virtual
const
std
::
string
getName
()
const
{
return
"VectorFieldRenderer"
;
};
virtual
const
std
::
string
getName
()
const
{
return
getId
()
;
};
/// \see AbstractProcessor::getDescription()
virtual
const
std
::
string
getDescription
()
const
{
return
"Renders vector fields with arrows"
;
};
/// \see AbstractProcessor::getAuthor()
...
...
@@ -126,6 +131,8 @@ namespace campvis {
static
const
std
::
string
loggerCat_
;
};
// Instantiate template to register the pipelines.
template
class
SmartProcessorRegistrar
<
VectorFieldRenderer
>;
}
#endif // VECTORFIELDRENDERER_H__
modules/vis/bindings/vis.i
View file @
4ec50365
...
...
@@ -5,6 +5,8 @@
#
include
"core/pipeline/autoevaluationpipeline.h"
#
include
"modules/vis/processors/volumeexplorer.h"
#
include
"modules/vis/processors/volumerenderer.h"
#
include
"modules/processorfactory.h"
%
}
...
...
@@ -46,6 +48,33 @@ namespace campvis {
campvis
::
DataNameProperty
p_outputImage
;
%
mutable
;
}
;
/* ProcessorFactory */
class
ProcessorFactory
{
public
:
static
ProcessorFactory&
getRef
()
;
std
::
vector
<
std
::
string
>
getRegisteredProcessors
()
const
;
AbstractProcessor
*
createProcessor
(
const
std
::
string&
id
,
IVec2Property
*
viewPortSizeProp
=
0
)
const
;
}
;
/* Down casting or super classes.
* Down casting follows the order of declaration.
* Declare the classes as child first according to the class hierarchy.
*/
/* Downcast the return value of HasPropertyCollection::getProperty to appropriate subclass */
%
factory
(
AbstractProperty
*
campvis
::
ProcessorFactory
::
createProcessor
,
campvis
::
SimpleRaycaster
,
campvis
::
OptimizedRaycaster
,
campvis
::
DRRRaycaster
,
campvis
::
ContextPreservingRaycaster
,
campvis
::
AdvOptimizedRaycaster
,
campvis
::
SliceExtractor
,
SliceRenderer2D
,
SliceRenderer3D
,
campvis
::
VolumeExplorer
,
campvis
::
VolumeRenderer
,
campvis
::
MicroscopyImageSegmentation
,
campvis
::
GlGaussianFilter
,
campvis
::
GlGradientVolumeGenerator
,
campvis
::
GlImageCrop
,
campvis
::
GlImageResampler
,
campvis
::
GlIntensityQuantizer
,
campvis
::
GlMorphologyFilter
,
campvis
::
GlSignalToNoiseRatioFilter
,
campvis
::
GlVesselnessFilter
,
campvis
::
TensorGlyphRenderer
,
campvis
::
ParticleFlowRenderer
,
campvis
::
VectorFieldRenderer
,
campvis
::
QuadView
,
campvis
::
RenderTargetCompositor
,
campvis
::
VirtualMirrorCombine
,
campvis
::
DepthDarkening
,
campvis
::
EEPGenerator
,
campvis
::
GeometryRenderer
,
campvis
::
MprRenderer
)
;
}
%
luacode
{
...
...
modules/vis/processors/advoptimizedraycaster.h
View file @
4ec50365
...
...
@@ -32,6 +32,7 @@
#include
"modules/modulesapi.h"
#include
"modules/vis/tools/voxelhierarchymapper.h"
#include
"modules/processorfactory.h"
#include
<string>
...
...
@@ -61,9 +62,13 @@ namespace campvis {
* Destructor
**/
virtual
~
AdvOptimizedRaycaster
();
/**
* To be used in ProcessorFactory static methods
*/
static
const
std
::
string
getId
()
{
return
"AdvOptimizedRaycaster"
;
};
/// \see AbstractProcessor::getName()
virtual
const
std
::
string
getName
()
const
{
return
"AdvOptimizedRaycaster"
;
};
virtual
const
std
::
string
getName
()
const
{
return
getId
()
;
};
/// \see AbstractProcessor::getDescription()
virtual
const
std
::
string
getDescription
()
const
{
return
"Performs advanced ray casting to render sparse and big volumes faster."
;
};
/// \see AbstractProcessor::getAuthor()
...
...
@@ -95,6 +100,8 @@ namespace campvis {
static
const
std
::
string
loggerCat_
;
};
// Instantiate template to register the pipelines.
template
class
SmartProcessorRegistrar
<
AdvOptimizedRaycaster
>;
}