#define MLCSO_EXPORT
Defines export symbols for classes, so they can be used in other DLLs.
CSOBaseModule(const std::string &type="CSOBaseModule", int numInImages=0, int numOutImages=0)
Standard constructor.
The CSOBoundingBox defines an axis-parallel bounding box with double precision.
NotifyField * _clearFld
If pressed the output image is invalidated and internal data is cleared.
StringField * _voxelBoundingBoxStringFld
BoolField * _listenInteractionNotificationsFld
Shall the module listen to interaction notifications?
Vector3Field * _endWorldBoundingBoxFld
End of the world bounding box.
Vector3Field * _endVoxelBoundingBoxFld
End of the voxel bounding box.
bool _outputImageCanStayValidIfCSOChanged
virtual void _calcOutSubImageMinMaxValue(double &minValue, double &maxValue, MLDataType &dType)
void activateAttachments() override
Initializes the module after loading.
FloatField * _backgroundValueFld
The background image value.
virtual void _clear()
Clears internal data and invalidates the output image.
bool _isInNotificationCB
Locking variable for the observer mechanism.
void handleNotification(Field *field) override
Called when input changes.
BoolField * _listenInteractionFinishedFld
Shall the module listen to finished interaction notifications?
CSOList * _inCSOList
The input CSOList (the original one).
void _setBoundingBoxFields(const CSOBoundingBox &voxelBB, const CSOBoundingBox &worldBB)
Sets the given vectors as bounding box fields to the GUI.
BoolField * _copyInputImageFld
Shall the input image be copied?
bool _canProduceOutputImage
Can the module produce a valid output image?
CSOConvertor(int numInImages=1, int numOutImages=1)
Standard constructor.
static void _csoListNotifcationCB(void *userData, int notificationFlag)
Can be called from anywhere from within the network.
bool _hasValidVoxelData
Is the interpolation compound up to date?
Vector3Field * _startVoxelBoundingBoxFld
Start of the voxel bounding box.
~CSOConvertor() override
Standard destructor.
BoolField * _useAlwaysForegroundValueOfModuleFld
Shall the module always use the voxel write value defined in its panel?
virtual void _process()
Triggers the computation of the preprocessing.
FloatField * _foregroundValueFld
The foreground (object) image value.
BaseField * _inCSOListFld
The input CSOList (which is to be interpolated).
void calculateOutputImageProperties(int outputIndex, PagedImage *outputImage) override
Sets the properties of the output image.
BoolField * _useImageValuesFld
Shall the image's values be used?
bool _shouldAugmentBoundingBoxZ
Should the bounding box be augmented in z-direction by 1?
BoolField * _fillSurfaceFld
Shall the interpolated surface be filled?
IntField * _boundingBoxMarginFld
The margin for the bounding box. Default is 0 (no margin).
Vector3Field * _startWorldBoundingBoxFld
Start of the world bounding box.
#define ML_MODULE_CLASS_HEADER(className)