MeVisLab Toolbox Reference
|
Base class for performing modifications on the CSOs of a CSOList. More...
#include <CSOModificator.h>
Public Member Functions | |
CSOModificator (const std::string &type="CSOModificator", int numInImages=0, int numOutImages=0) | |
Standard constructor. | |
Public Member Functions inherited from ml::CSOGenerator | |
CSOGenerator (std::string type="CSOGenerator", int numInImg=0, int numOutImg=0) | |
Constructor. | |
std::string | getType () const |
Returns the type of the CSOGenerator. | |
Public Member Functions inherited from ml::CSOBaseModule | |
CSOBaseModule (const std::string &type="CSOBaseModule", int numInImages=0, int numOutImages=0) | |
Standard constructor. | |
Public Member Functions inherited from ml::Module | |
MLMetaProfilePtr & | getMetaProfile () const |
Returns the meta profile for the base operator. | |
const char * | getTypeNameFast () const |
Macro to declare methods for the ML runtime type system (see mlRuntimeSubClass.h). | |
Module (int numInputImages, int numOutputImages) | |
Constructor: Initializes numInputImages input images and numOutputImages output images of the module. | |
~Module () override | |
Destructor: Destroys this module. | |
InputConnectorField * | getInputImageField (MLint i) const |
Returns the field representing input image i . i must be a valid index. | |
OutputConnectorField * | getOutputImageField (MLint i=0) const |
Returns field representing output image i . i must be a valid index. | |
MLint | getNumInputImages () const |
Returns number of input images of this module. | |
MLint | getNumOutputImages () const |
Returns number of output images of this module. | |
PagedImage * | getOutputImage (MLint outputIndex=0) const |
Returns output image outputIndex . The index needs to be in the range [0, getNumOutputImages()-1]. | |
InputConnectorField * | addInputImage (const char *name=nullptr) |
Adds a new input image with name to the module. | |
OutputConnectorField * | addOutputImage (const char *name=nullptr) |
Adds a new output image with name to the module. | |
PagedImage * | getInputImage (MLint inputIndex, bool getReal=false) const |
Returns the output image of the module connected to input inputIndex . | |
PagedImage * | getUpdatedInputImage (MLint inputIndex, bool getReal=false) const |
Convenience method for safe access to the input image at index inputIndex . | |
MLErrorCode | processAllPages (int outputIndex=-1, SubImageBox region=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr) |
Processes all pages of a module for easy implementation of page-based image processing of complete images. | |
MLErrorCode | processAllPages (ProcessAllPagesHandler &handler, SubImageBox region=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr) |
Process input images with a ProcessAllPagesHandler handler on a temporary output image (which allocates no data) For details, see processAllPages(-1) above. | |
MLErrorCode | processMissingPages (int outputIndex=0, SubImageBox region=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr) |
Processes all missing pages on the given output image. | |
void | clearOutputImage (MLint i=0) |
Clear cached output image pages of output image i . | |
MLint | getOutputImageInplace (MLint outputIndex=0) const |
Return optimization flag: Return index of input image whose input tile is used also as output page for output outputIndex in calculateOutputSubImage() (instead of allocating its own memory). | |
MLint | getBypass (MLint outputIndex=0) const |
Returns the currently bypass index or -1 if bypassing is disabled (default). | |
THREAD_SUPPORT | getThreadSupport () const |
Returns the multithreading mode supported by this module, default is NO_THREAD_SUPPORT. | |
bool | areRecursiveHandleNotificationsPermitted () const |
Returns if recursive entries in handleNotification are permitted. | |
MLint | getHandleNotificationEntryCounter () const |
A counter returning the current number of (recursive re)entries in handleNotification. | |
PERMITTED_TYPES | getVoxelDataTypeSupport () const |
Returns the current state of supported voxel data types. | |
bool | isSupportedVoxelDataType (MLDataType dt) const |
Check if a given data type is supported on the module as configured with setVoxelDataTypeSupport. | |
virtual INPUT_HANDLE | handleInput (int, INPUT_STATE) const |
This method may be reimplemented to enable support for invalid input images on the module. | |
INPUT_STATE | getInputState (MLint index) |
Returns the current state of the input connection. | |
INPUT_STATE | getUpdatedInputState (MLint index) |
Returns the updated state of the input image by calling updateImageProperties(index) and returning getInputState(index) afterwards. | |
bool | isInputImageField (Field *field) const |
Returns if the given field is an input image field. This can be used in handleNotification(), to check if one of the input images has changed. | |
void | touchOutputImageFields () const |
Touch all output image fields to indicate that the images have changed. | |
virtual void | beginSaveFields () |
Called before all fields data contents of this modules are saved. | |
virtual void | endSaveFields () |
Called after saving all field contents of this module. | |
Public Member Functions inherited from ml::FieldContainer | |
FieldContainer () | |
Constructor. | |
~FieldContainer () override | |
Destructor: Deletes all added fields. | |
std::string | whoAmI (bool withInstanceName=true) const |
Returns type and instance name of format "ClassTypeName(instanceName)" if the instance name is not empty and withInstanceName is true. | |
Field * | addField (const char *name, const char *type, const char *value) |
Adds a new field with name name , type type and value value (coded as string) to the container. | |
Field * | addField (Field *field) |
Adds a field , the ownership of the field is passed to the FieldContainer. | |
BoolField * | addBool (const char *name) |
Creates a BoolField with name and adds it to the container. Default value is false. | |
BoolField * | addBool (const char *name, bool value) |
Creates a BoolField with name and adds it to the container. | |
IntField * | addInt (const char *name) |
Creates an IntField with name and adds it to the container. Default value is 0. | |
IntField * | addInt (const char *name, MLint value) |
Creates an IntField with name and adds it to the container. | |
EnumField * | addEnum (const char *name, const char *const *enumerationItemNames, MLint numEnumerationItems) |
Creates an EnumField field with name and adds it to the container. | |
EnumField * | addEnum (const char *name, const std::vector< std::string > &enumerationItemNames) |
Creates an EnumField field with name and adds it to the container. | |
template<typename EnumType > | |
TypedEnumField< EnumType > * | addEnum (const char *name, const EnumValues< EnumType > &values, EnumType initialValue) |
Creates a TypedEnumField field with name and adds it to the container. | |
FloatField * | addFloat (const char *name) |
Creates a FloatField with name and adds it to the container. Default value is 0.f. | |
FloatField * | addFloat (const char *name, float value) |
Creates a FloatField with name and adds it to the container. | |
ProgressField * | addProgress (const char *name) |
Creates a float ProgressField with name and adds it to the container. Default value is 0.f. | |
ProgressField * | addProgress (const char *name, float value) |
Creates a float ProgressField with name and adds it to the container. | |
DoubleField * | addDouble (const char *name) |
Creates a DoubleField with name and adds it to the container. Default value is 0. | |
DoubleField * | addDouble (const char *name, double value) |
Creates a DoubleField with name and adds it to the container. | |
StringField * | addString (const char *name) |
Creates a StringField with name and adds it to the container. Default value is empty string. | |
StringField * | addString (const char *name, const std::string &value) |
Creates a StringField with name and adds it to the container. | |
NotifyField * | addNotify (const char *name) |
Creates a NotifyField field with name and adds it to the container. | |
TriggerField * | addTrigger (const char *name) |
Creates a TriggerField field with name and adds it to the container. | |
BaseField * | addBase (const char *name) |
Creates a Base field with name and adds it to the container. Default value is NULL. | |
BaseField * | addBase (const char *name, Base *value) |
Creates a Base field with name and adds it to the container. | |
BaseField * | addBase (const char *name, const RefCountedBasePtr &value) |
Creates a Base field with name and adds it to the container. Sets the value from intrusive pointer. | |
template<typename T > | |
BaseField * | addBaseWithAllowedType (const char *name, T *value=nullptr) |
As above, but also sets the allowed type of the field. | |
template<typename T > | |
BaseField * | addBaseWithAllowedType (const char *name, const ::boost::intrusive_ptr< T > &value) |
As above, but also sets the allowed type of the field. | |
template<typename T > | |
TypedBaseField< T > * | addTypedBase (const char *name) |
Creates a TypedBaseField with name and adds it to the container. Default value is NULL. | |
template<typename T > | |
TypedBaseField< T > * | addTypedBase (const char *name, T *value) |
Creates a TypedBaseField with name and adds it to the container. | |
template<typename T > | |
TypedBaseField< T > * | addTypedBase (const char *name, const ::boost::intrusive_ptr< T > &value) |
Creates a TypedBaseField with name and adds it to the container. Sets the value from intrusive pointer. | |
SoNodeField * | addSoNode (const char *name) |
Creates a SoNodeField with name and adds it to the container. Default value is NULL. | |
SoNodeField * | addSoNode (const char *name, SoNode *value) |
Creates a SoNodeField with name and adds it to the container. | |
PointerField * | addPointer (const char *name) |
Creates a PointerField with name and adds it to the container. | |
Vector2Field * | addVector2 (const char *name) |
Creates a Vector2Field with name and adds it to the container. | |
Vector2Field * | addVector2 (const char *name, const Vector2 &value) |
Creates a Vector2Field with name and adds it to the container. | |
Vector2Field * | addVector2 (const char *name, double x, double y) |
Creates a Vector2Field with name and adds it to the container. | |
Vector3Field * | addVector3 (const char *name) |
Creates a Vector3Field with name and adds it to the container. | |
Vector3Field * | addVector3 (const char *name, const Vector3 &value) |
Creates a Vector3Field with name and adds it to the container. | |
Vector3Field * | addVector3 (const char *name, double x, double y, double z) |
Creates a Vector3Field with name and adds it to the container. | |
Vector4Field * | addVector4 (const char *name) |
Creates a Vector4Field with name and adds it to the container. | |
Vector4Field * | addVector4 (const char *name, const Vector4 &value) |
Creates a Vector4Field with name and adds it to the container. | |
Vector4Field * | addVector4 (const char *name, double x, double y, double z, double w) |
Creates a Vector4Field with name and adds it to the container. | |
Vector5Field * | addVector5 (const char *name) |
Creates a Vector5Field with name and adds it to the container. | |
Vector5Field * | addVector5 (const char *name, const Vector5 &value) |
Creates a Vector5Field with name and adds it to the container. | |
Vector6Field * | addVector6 (const char *name) |
Creates a Vector6Field with name and adds it to the container. | |
Vector6Field * | addVector6 (const char *name, const Vector6 &value) |
Creates a Vector6Field with name and adds it to the container. | |
Vector10Field * | addVector10 (const char *name) |
Creates a Vector10Field with name and adds it to the container. | |
Vector10Field * | addVector10 (const char *name, const Vector10 &value) |
Creates a Vector10Field with name and adds it to the container. | |
ImageVectorField * | addImageVector (const char *name) |
Creates a ImageVectorField with name and adds it to the container. | |
ImageVectorField * | addImageVector (const char *name, const ImageVector &value) |
Creates a ImageVectorField with name and adds it to the container. | |
ImageVectorField * | addImageVector (const char *name, MLint x, MLint y, MLint z, MLint c, MLint t, MLint u) |
Creates a ImageVectorField with name and adds it to the container. | |
SubImageBoxField * | addSubImageBox (const char *name) |
Creates a SubImageBoxField with name and adds it to the container. | |
SubImageBoxField * | addSubImageBox (const char *name, const SubImageBox &value) |
Creates a SubImageBoxField with name and adds it to the container. | |
SubImageBoxdField * | addSubImageBoxd (const char *name) |
Creates a SubImageBoxd field with name and adds it to the container. | |
SubImageBoxdField * | addSubImageBoxd (const char *name, const SubImageBoxd &value) |
Creates a SubImageBoxd field with name and adds it to the container. | |
ColorField * | addColor (const char *name) |
Creates a ColorField with name and adds it to the container. | |
ColorField * | addColor (const char *name, float r, float g, float b) |
Creates a ColorField with name and adds it to the container. | |
ColorField * | addColor (const char *name, const Vector3 &value) |
Creates a ColorField with name and adds it to the container. | |
PlaneField * | addPlane (const char *name) |
Creates a PlaneField with name and adds it to the container. | |
PlaneField * | addPlane (const char *name, double f0, double f1, double f2, double f3) |
Creates a PlaneField with name and adds it to the container. | |
PlaneField * | addPlane (const char *name, const Plane &value) |
Creates a PlaneField with name and adds it to the container. | |
RotationField * | addRotation (const char *name) |
Creates a RotationField with name and adds it to the container. | |
RotationField * | addRotation (const char *name, const Rotation &value) |
Creates a RotationField with name and adds it to the container. | |
Matrix2Field * | addMatrix2 (const char *name) |
Creates a Matrix2Field with name and adds it to the container. | |
Matrix2Field * | addMatrix2 (const char *name, const Matrix2 &value) |
Creates a Matrix2Field with name and adds it to the container. | |
Matrix3Field * | addMatrix3 (const char *name) |
Creates a Matrix3Field with name and adds it to the container. | |
Matrix3Field * | addMatrix3 (const char *name, const Matrix3 &value) |
Creates a Matrix3Field with name and adds it to the container. | |
Matrix4Field * | addMatrix4 (const char *name) |
Creates a Matrix4Field with name and adds it to the container. | |
Matrix4Field * | addMatrix4 (const char *name, const Matrix4 &value) |
Creates a Matrix4Field with name and adds it to the container. | |
Matrix5Field * | addMatrix5 (const char *name) |
Creates a Matrix5Field with name and adds it to the container. | |
Matrix5Field * | addMatrix5 (const char *name, const Matrix5 &value) |
Creates a Matrix5Field with name and adds it to the container. | |
Matrix6Field * | addMatrix6 (const char *name) |
Creates a Matrix6Field with name and adds it to the container. | |
Matrix6Field * | addMatrix6 (const char *name, const Matrix6 &value) |
Creates a Matrix6Field with name and adds it to the container. | |
MatrixField * | addMatrix (const char *name) |
Creates a MatrixField with name and adds it to the container. | |
MatrixField * | addMatrix (const char *name, const Matrix4 &value) |
Creates a MatrixField with name and adds it to the container. | |
MLDataTypeField * | addMLDataType (const char *name) |
Creates a MTDataTypeField with name and adds it to the container. | |
MLDataTypeField * | addMLDataType (const char *name, MLDataType value) |
Creates a MTDataTypeField with name and adds it to the container. | |
UniversalTypeField * | addUniversalType (const char *name) |
Creates an UniversalTypeField field with name and adds it to the container. | |
IntListField * | addIntList (const char *name) |
Creates an IntListField field with name and empty list value and adds it to the container. | |
IntListField * | addIntList (const char *name, const std::vector< MLint > &value) |
Creates an IntListField field with name and given list value and adds it to the container. | |
DoubleListField * | addDoubleList (const char *name) |
Creates an DoubleListField field with name and empty list value and adds it to the container. | |
DoubleListField * | addDoubleList (const char *name, const std::vector< double > &value) |
Creates an DoubleListField field with name and given list value and adds it to the container. | |
Vector2ListField * | addVector2List (const char *name) |
Creates an Vector2ListField field with name and empty list value and adds it to the container. | |
Vector2ListField * | addVector2List (const char *name, const std::vector< Vector2 > &value) |
Creates an Vector2ListField field with name and given list value and adds it to the container. | |
Vector3ListField * | addVector3List (const char *name) |
Creates an Vector3ListField field with name and empty list value and adds it to the container. | |
Vector3ListField * | addVector3List (const char *name, const std::vector< Vector3 > &value) |
Creates an Vector3ListField field with name and given list value and adds it to the container. | |
Vector4ListField * | addVector4List (const char *name) |
Creates an Vector4ListField field with name and empty list value and adds it to the container. | |
Vector4ListField * | addVector4List (const char *name, const std::vector< Vector4 > &value) |
Creates an Vector4ListField field with name and given list value and adds it to the container. | |
size_t | getNumFields () const |
Returns the number of added fields. | |
bool | hasField (const std::string &name) const |
Returns true if the field with name name exists; otherwise false is returned. | |
Field * | getField (const std::string &name) const |
Returns the pointer to the field with name name . | |
Field * | getField (MLint index) const |
Returns pointer of field at index if it exists. If not, -1 is returned. | |
MLint | getFieldIndex (Field *field) const |
Returns index of field if it exists. If not, -1 is returned. | |
void | setFieldStringValue (const std::string &name, const std::string &value) |
Sets the value of the field with name if it exists. | |
std::string | getFieldStringValue (const std::string &name) const |
Returns the string value of the field with name if it is found. | |
virtual void | deactivateAttachments () |
Disables notification handling, i.e., all fields of this module will not send notifications to attached sensors and fields any more if their values are set or changed. | |
Public Member Functions inherited from ml::Base | |
Base () | |
Constructor. | |
virtual | ~Base () |
Destructor. | |
virtual Base * | deepCopy () const |
Set addStateToTree version number that can be accessed via getAddStateVersion() | |
bool | isOfAllowedType (const std::vector< const RuntimeType * > &types) const |
Check if this object's type is equal to or derived from one of the types given in the argument. | |
virtual bool | isRefCountedBase () const |
Returns if the instance is derived from RefCountedBase. | |
virtual std::string | detailString () const |
Return a string describing this object. | |
virtual bool | implementsPersistence (PersistenceInterface) const |
Override this method to declare which persistence interfaces are implemented by your derived class. | |
virtual std::string | persistentState () const |
Returns a string describing the object's internal state. | |
virtual void | setPersistentState (const std::string &state) |
Restores the object's internal state from a string that had been previously generated using persistentState() . | |
virtual void | addStateToTree (TreeNode *) const |
Attaches the object state as children of the given parent node. | |
virtual void | readStateFromTree (TreeNode *) |
Reads the object state from the children of the given parent node. | |
virtual void | writeTo (AbstractPersistenceOutputStream *) const |
Write the objects state to the data stream object. | |
virtual void | readFrom (AbstractPersistenceInputStream *, int) |
Read the objects state from the data stream object. | |
Public Member Functions inherited from ml::CSOGeneratorBase | |
CSOGeneratorBase () | |
Default constructor. | |
virtual | ~CSOGeneratorBase ()=default |
CSO * | generatorAddCSO (CSOList *csoList, bool useUndoRedo=true) |
Adds a new CSO to the CSOList. | |
CSO * | generatorAddCSONoEvent (CSOList *csoList, bool useUndoRedo=true, bool sendEvent=false) |
See generatorAddCSO, but no group scope event is emitted. (So this method is faster!) | |
CSOGroup * | generatorGetParentGroup (CSOList *csoList, bool useUndoRedo=false, bool generate=false) |
Returns the parent group according to current group settings. | |
void | generatorEmptyGroupOnDemand (CSOList *csoList) |
Empties a group on demand of the given CSOList with the set label. | |
Protected Member Functions | |
~CSOModificator () override | |
Standard destructor. | |
void | activateAttachments () override |
Initialize module after loading. | |
void | handleNotification (Field *field) override |
Called when input changes. | |
virtual void | resetParsedIds () |
Resets parameteres of the modificator. | |
virtual void | process () |
Sets up the CSOList, applies the modificator to the CSOList and notifies other modules that processing has finished. | |
virtual void | clearOutput () |
Clears all outputs (used by auto clear mode) | |
virtual std::vector< CSO * > | getCSOsToBeProcessed (const std::vector< CSO * > &csosFromIdList) |
may be overwritten to filter out CSOs that are processed by this modificator, by default returns the input parameter which holds the CSOs that are in the inputList and that are included by the idList filter field | |
virtual bool | shouldUseUndoRedo () const |
Whether undo/Redo should be used. | |
virtual bool | canProcessInput () |
returns whether the current input can be processed, i.e. | |
virtual void | _setupCSOList () |
Sets the _outCSOList correctly. | |
virtual void | _applyModificator () |
Applies the modification to the CSOs of the attached list. | |
virtual void | _applyModificatorOnCSOs (const std::vector< CSO * > &csosToBeProcessed) |
may be overwritten by subclasses if, for example, CSOs should be processed in parallel | |
virtual void | _applyModificatorOn (CSO &outputCSO) |
may be overwritten by subclasses if CSOs are processed one by one | |
virtual void | _updateCSOType (CSO &outputCSO) |
Updates the CSO's type. Most modules change the type to the modificators name, but not all do it. | |
virtual void | _notifyObservers (bool didSomething) |
Notifies other modules that processing has finished. | |
virtual bool | shouldTriggerInputChanged (Field *field) const |
returns whether a field notification triggers auto update. | |
virtual bool | shouldTriggerParameterApplied (Field *field) const |
This method exists only for legacy reasons and shoult not be overwritten when writing new CSOModificators! | |
bool | _isChangeSettingField (Field *field) const |
virtual void | _onInputChanged () |
helper functions called by handleNotification, may be overwritten in very special cases | |
virtual void | _onParameterApplied () |
virtual void | _onCSOIdListChanged () |
virtual void | _onWorkDirectlyOnInputChanged () |
virtual void | _onApply () |
bool | _isInIdList (CSO *cso) |
Checks if the given CSO is in the list of IDs given by _csoIdListFld. | |
void | _parseCSOIds (std::set< unsigned int > &ids) |
Parse the CSO id field into the given vector of ids. | |
std::vector< CSO * > | _getModifyCSOsFromIdList () |
void | _storeCurrentStateInUndoManager (std::vector< CSO * > csosToBeProcessed) |
void | _applyChangedSettings (CSO &cso) const |
Changes the settings of the given CSO (only if _changeSettingsForModifiedCSOsFld is true). | |
ML_ABSTRACT_MODULE_CLASS_HEADER (CSOModificator) | |
Protected Member Functions inherited from ml::CSOGenerator | |
CSO * | _addCSO (CSOList *csoList, bool useUndoRedo=true) |
Adds a new CSO to the CSOList. | |
CSO * | _addCSONoEvent (CSOList *csoList, bool useUndoRedo=true) |
See _addCSO, but without group event. (This method is faster!). | |
CSOGroup * | _getParentGroup (CSOList *csoList, bool useUndoRedo=false, bool generate=false) |
Returns the parent group according to current group settings. | |
void | _emptyGroupOnDemand (CSOList *csoList) |
Empties a group on demand of the given CSOList with the set label. | |
int | getModuleCreatorId () const override |
Returns the module's creator id. | |
std::string | getModuleType () const override |
Returns the module's type string. | |
bool | getShouldEmptyBeforeGeneration () const override |
Returns whether the module should empty a group before generating CSOs into it. | |
int | getAddCSOToGroupMode () const override |
Returns the group generation mode. | |
std::string | getAddCSOToGroupLabel () const override |
Returns the label string of a target group. | |
int | getAddCSOToGroupId () const override |
Returns the id of a target group. | |
int | getDefaultPathPointStyle () const override |
Returns the set default path point style for a new CSO. | |
float | getDefaultPathPointWidth () const override |
Returns the set default path point width for a new CSO. | |
Vector3 | getDefaultPathPointColor () const override |
Returns the set default path point color for a new CSO. | |
float | getDefaultPathPointAlpha () const override |
Returns the set default path point alpha for a new CSO. | |
int | getDefaultSeedPointStyle () const override |
Returns the set default seed point style for a new CSO. | |
float | getDefaultSeedPointSize () const override |
Returns the set default seed point size for a new CSO. | |
Vector3 | getDefaultSeedPointColor () const override |
Returns the set default seed point color for a new CSO. | |
float | getDefaultSeedPointAlpha () const override |
Returns the set default seed point alpha for a new CSO. | |
int | getDefaultVoxelWriteMode () const override |
Returns the set default voxel write mode for a new CSO. | |
float | getDefaultVoxelWriteValue () const override |
Returns the set default voxel write value for a new CSO. | |
~CSOGenerator () override | |
Destructor. | |
Protected Member Functions inherited from ml::CSOBaseModule | |
~CSOBaseModule () override | |
Standard destructor. | |
virtual bool | _useLegacyAutoApplyMode () const |
Controls whether update behaviour on parameter field changes should depend on the autoApply field (legacy mode, don't use it when adding your new subclasses) or if it should depend on the updateMode (recommended) | |
void | _setIsProcessingFlag (bool newProcessingState) |
Sets the isProcessing field if the processing state has changed. | |
ML_MODULE_CLASS_HEADER (CSOBaseModule) | |
Protected Member Functions inherited from ml::Module | |
void | handleNotificationInternal (Field *field, FieldSensor::Strength strength) override |
Called from FieldContainer whenever a field changes. | |
virtual void | provideCustomPage (int, const SubImageBox &, MLMemoryBlockHandle &) |
This method allows a Module to provide its own pages to the Host for the outputIndex output image. | |
void | handleNotificationOff () |
Decreases lock counter for handleNotification calls. | |
void | handleNotificationOn () |
Increases lock counter for handleNotification calls. | |
bool | isHandleNotificationOn () |
Returns true if handleNotification calls are permitted, otherwise false. | |
void | setOutputImageInplace (MLint outputIndex=0, MLint inputIndex=0) |
Set optimization flag: If calculating a page in calculateOutputSubImage(), the output image page of output outputIndex shall use the same memory as the input page of input inputIndex . | |
void | unsetOutputImageInplace (MLint outputIndex=0) |
Clear optimization flag: output page of output at outputIndex and input tile shall use different memory buffers in calculateOutputSubImage(). | |
void | setBypass (MLint outputIndex=0, MLint inputIndex=0) |
Sets the input image whose pages can also be used instead of output pages for the output image at outputIndex to avoid recalculations. | |
void | setClampPagesToImageExtent (bool flag=true) |
Enables/disables page clamping on all output images. | |
void | setThreadSupport (THREAD_SUPPORT supportMode) |
Pass any THREAD_SUPPORT supportMode to decide whether and what type of multithreading is supported by this module. | |
void | permitRecursiveHandleNotifications (bool enable) |
If this flag is set to enable =true, recursive entries in handleNotification are permitted. | |
void | setVoxelDataTypeSupport (PERMITTED_TYPES permTypes) |
Specifies which types this module supports. | |
virtual CalculateOutputImageHandler * | createCalculateOutputImageHandler (PagedImage *outputImage) |
Creates the CalculateOutputImageHandler for the given output image outputImage . | |
virtual void | calculateOutputImageProperties (int outputIndex, PagedImage *outputImage) |
Set properties of output image outputImage with output index outputIndex . | |
virtual SubImageBox | calculateInputSubImageBox (int, const SubImageBox &outputSubImageBox, int) |
Called by the Host to determine which input image region (tile) of input inputIndex is required to calculate a certain output image region (page) of output outputIndex . | |
virtual void | calculateOutputSubImage (SubImage *outputSubImage, int outputIndex, SubImage *inputSubImages) |
Calculate page outputSubImage of output image with index outputIndex given the input image tiles in array inputSubImages . | |
Static Protected Member Functions | |
static void | _csoListNotifyObserverCB (void *userData, int notificationFlag) |
Can be called from anywhere from the network. | |
Protected Attributes | |
BaseField * | _inputCSOListFld |
The input CSOList. | |
BaseField * | _outputCSOListFld |
The filtered output CSOList. | |
StringField * | _csoIdListFld |
The list of ids of the CSOs to be transformed; if this list is empty, all CSOs are transformed. | |
BoolField * | _workDirectlyOnInputListFld |
Shall the module work directly on the input CSOList? Otherwise, it would work on a copy which is returned by the output field. | |
BoolField * | _useUndoRedoFld |
Shall undo/redo be used? The value is ignored if workDirectlyOnInputList is disabled. | |
BoolField * | _listenToFinishingNotificationsFld |
Shall the module listen to finishing events? | |
BoolField * | _listenToSelectionNotificationsFld |
Shall the module listen to selection change notifications? | |
BoolField * | _changeSettingsForModifiedCSOsFld |
Shall the module's user settings be used for modified CSOs? | |
CSOListPtr | _inCSOList |
A pointer to the input CSOList. | |
CSOListPtr | _outCSOList |
A pointer to the output CSOList. | |
bool | _isInNotificationCB |
Locking variable for removing/adding a notification observer. | |
bool | _isNotifyingMyself |
Is this module notifying itself? Locking variable to avoid infinite loops. | |
std::set< unsigned int > | _parsedIDs |
The IDs of the CSOs that should be processed according to the _csoIdListFld. | |
bool | _parsedIDsValid |
Flag that indicates if _parsedIDs is valid. | |
bool | _outCSOListChanged |
Flag that indicates that _outCSOList has been changed and thus that _outputCSOListFld has to be updated. | |
bool | _isOutputCSOListOwner |
Flag that indicates whether this module is the owner of the output CSO list. | |
bool | _isWorkingDirectlyOnInputCSOList |
Flag that indicates whether this module should work on its input CSO list directly. | |
Protected Attributes inherited from ml::CSOGenerator | |
BoolField * | _emptyGroupBeforeGenerationFld |
If checked and a group name is provided, the group is emptied before a new generation. | |
TypedEnumField< CSOAddToGroupModes > * | _addCSOToGroupMode |
Defines if the CSOs are added to a group and how the group is identified. | |
StringField * | _addCSOToGroupWithLabelFld |
This label defines the group the generator should add its created CSOs to. | |
IntField * | _addCSOToGroupWithIdFld |
This id defines the group the generator should add its created CSOs to. | |
IntField * | _idFld |
The id of this processor. | |
TypedEnumField< CSOPathPointsStyle > * | _pathPointStyleFld |
The path point's line style (none, solid, dashed, dotted). Default is 'solid'. | |
FloatField * | _pathPointWidthFld |
The path point's line width. Default is 1. | |
ColorField * | _pathPointColorFld |
The path point's color. Default is yellow. | |
FloatField * | _pathPointAlphaFld |
The path point's alpha value. Default is 1. | |
TypedEnumField< CSOSeedPointStyle > * | _seedPointStyleFld |
The marker's mode (none, rect, circle). Default is 'rect'. | |
FloatField * | _seedPointSizeFld |
The marker's size. Default is 3. | |
ColorField * | _seedPointColorFld |
The marker's color. Default is green. | |
FloatField * | _seedPointAlphaFld |
The marker's alpha value. Default is 1. | |
TypedEnumField< CSOVoxelWriteModes > * | _voxelWriteModeFld |
The CSO's voxel write mode (module, const, const plus id, id). Default is 'module'. | |
FloatField * | _voxelWriteValueFld |
The CSO's voxel write value. Default is 1024. | |
Protected Attributes inherited from ml::CSOBaseModule | |
TypedEnumField< CSOUpdateModes > * | _updateModeFld |
Enumeration field for update modes. | |
BoolField * | _autoApplyFld |
Shall changes lead to an apply? Field value is only considered when useLegacyAutoApplyMode is enabled. | |
NotifyField * | _applyFld |
Applies changes. | |
BoolField * | _isProcessingFld |
Field reflects whether the module is currently processing. | |
NotifyField * | _doneFld |
Notifies the application or other modules that the processing has ended. | |
std::string | _type |
The processor type as a string. | |
Base class for performing modifications on the CSOs of a CSOList.
Definition at line 28 of file CSOModificator.h.
ml::CSOModificator::CSOModificator | ( | const std::string & | type = "CSOModificator", |
int | numInImages = 0, | ||
int | numOutImages = 0 ) |
Standard constructor.
|
overrideprotected |
Standard destructor.
Changes the settings of the given CSO (only if _changeSettingsForModifiedCSOsFld is true).
Applies the modification to the CSOs of the attached list.
by default it calls _applyModificatorOn() for each cso that should be procesed.
May be overwritten if it's not suitable to overwrite the applyModificatorOn(CSO&) method, e.g. when sets of CSOs are processed in batches Use _outCSOList to access the CSO list that should be modified here.
may be overwritten by subclasses if CSOs are processed one by one
outputCSO | the CSO from the _outCSOList on which the modification is to be applied |
|
protectedvirtual |
may be overwritten by subclasses if, for example, CSOs should be processed in parallel
csosToBeProcessed | all CSOs from the _outCSOList on which the modification is to be applied |
|
staticprotected |
Can be called from anywhere from the network.
|
protected |
Checks if the given CSO is in the list of IDs given by _csoIdListFld.
If _csoIdListFld is empty this function always returns true.
Notifies other modules that processing has finished.
helper functions called by handleNotification, may be overwritten in very special cases
Parse the CSO id field into the given vector of ids.
|
protected |
Updates the CSO's type. Most modules change the type to the modificators name, but not all do it.
|
overrideprotectedvirtual |
Initialize module after loading.
Reimplemented from ml::CSOBaseModule.
returns whether the current input can be processed, i.e.
there's a non-empty list attached. Subclasses may add additional conditions. (See CSOMerge as an example).
Clears all outputs (used by auto clear mode)
|
protectedvirtual |
may be overwritten to filter out CSOs that are processed by this modificator, by default returns the input parameter which holds the CSOs that are in the inputList and that are included by the idList filter field
Called when input changes.
Reimplemented from ml::CSOBaseModule.
|
protected |
Resets parameteres of the modificator.
returns whether a field notification triggers auto update.
Overwrite this method if your subclass adds it's own input fields. These may be input connector fields or input parameter fields. Note that the result may not only depend on the passed field but also on the modules state. E.g. the creation parameters defined in CSOGeneratorBase are ignored in modificators when changeSettingsForModifiedCSOs is disabled.
legacy note: modules that support different update mechanisms for input parameter fields and input connector fields (currently these are a lot of modules) should not add their input parameter fields to this method but to the shouldTriggerParameterApplied method
|
protectedvirtual |
This method exists only for legacy reasons and shoult not be overwritten when writing new CSOModificators!
returns whether a field notification triggers the legacy auto apply. This method is only overwritten by classes that use the autoApplyLegacyMode The classes with legacy mode enabled have to add their parameter input fields to this method.
Whether undo/Redo should be used.
|
protected |
Shall the module's user settings be used for modified CSOs?
Definition at line 158 of file CSOModificator.h.
|
protected |
The list of ids of the CSOs to be transformed; if this list is empty, all CSOs are transformed.
Definition at line 143 of file CSOModificator.h.
|
protected |
A pointer to the input CSOList.
Definition at line 163 of file CSOModificator.h.
|
protected |
The input CSOList.
Definition at line 137 of file CSOModificator.h.
|
protected |
Locking variable for removing/adding a notification observer.
Definition at line 167 of file CSOModificator.h.
|
protected |
Is this module notifying itself? Locking variable to avoid infinite loops.
Definition at line 169 of file CSOModificator.h.
|
protected |
Flag that indicates whether this module is the owner of the output CSO list.
Definition at line 182 of file CSOModificator.h.
|
protected |
Flag that indicates whether this module should work on its input CSO list directly.
Definition at line 184 of file CSOModificator.h.
|
protected |
Shall the module listen to finishing events?
Definition at line 153 of file CSOModificator.h.
|
protected |
Shall the module listen to selection change notifications?
Definition at line 155 of file CSOModificator.h.
|
protected |
A pointer to the output CSOList.
Definition at line 165 of file CSOModificator.h.
|
protected |
Flag that indicates that _outCSOList has been changed and thus that _outputCSOListFld has to be updated.
Because new might assign the same memory block (i.e. the same pointer value) it is not enough to compare _outCSOList with _outputCSOListFld->getBaseValue() (see _notifyObservers()).
Definition at line 179 of file CSOModificator.h.
|
protected |
The filtered output CSOList.
Definition at line 139 of file CSOModificator.h.
The IDs of the CSOs that should be processed according to the _csoIdListFld.
Definition at line 172 of file CSOModificator.h.
|
protected |
Flag that indicates if _parsedIDs is valid.
Definition at line 174 of file CSOModificator.h.
|
protected |
Shall undo/redo be used? The value is ignored if workDirectlyOnInputList is disabled.
Definition at line 150 of file CSOModificator.h.
|
protected |
Shall the module work directly on the input CSOList? Otherwise, it would work on a copy which is returned by the output field.
Definition at line 147 of file CSOModificator.h.