Inviwo 0.9.12-pre
Inviwo documentation
Loading...
Searching...
No Matches
inviwo::CompositeProperty Class Reference

#include <compositeproperty.h>

+ Inheritance diagram for inviwo::CompositeProperty:

Public Types

enum class  CollapseAction { Collapse , Expand }
 
enum class  CollapseTarget { Current , Recursive , Children , Siblings }
 
- Public Types inherited from inviwo::PropertyOwner
using iterator = std::vector<Property*>::iterator
 
using const_iterator = std::vector<Property*>::const_iterator
 

Public Member Functions

virtual std::string getClassIdentifier () const override
 
 CompositeProperty (std::string_view identifier, std::string_view displayName, Document help, InvalidationLevel invalidationLevel=InvalidationLevel::InvalidResources, PropertySemantics semantics=PropertySemantics::Default)
 
 CompositeProperty (std::string_view identifier, std::string_view displayName, InvalidationLevel invalidationLevel=InvalidationLevel::InvalidResources, PropertySemantics semantics=PropertySemantics::Default)
 
 CompositeProperty (const CompositeProperty &rhs)=default
 
virtual CompositePropertyclone () const override
 
virtual const std::string & getIdentifier () const override
 
virtual std::string getClassIdentifierForWidget () const override
 Returns which property's widget should be used when the WidgetFactory tries to create a widget. Defaults to getClassIdentifier(), should only be overridden if a subclass want to reuse another property's widget.
 
virtual bool isCollapsed () const
 
virtual CompositePropertysetCollapsed (bool value)
 
CompositePropertysetCollapsed (CollapseAction action, CollapseTarget target)
 
virtual void setOwner (PropertyOwner *owner) override
 
virtual void set (const Property *src) override
 
void set (const CompositeProperty *src)
 
virtual void setValid () override
 
virtual InvalidationLevel getInvalidationLevel () const override
 
virtual CompositePropertysetCurrentStateAsDefault () override
 
virtual CompositePropertyresetToDefaultState () override
 
virtual bool isDefaultState () const override
 
virtual bool needsSerialization () const override
 
virtual CompositePropertysetReadOnly (bool value) override
 Enable or disable editing of property.
 
virtual void invalidate (InvalidationLevel invalidationLevel, Property *modifiedProperty=0) override
 
virtual ProcessorgetProcessor () override
 
virtual const ProcessorgetProcessor () const override
 
virtual const PropertyOwnergetOwner () const override
 
virtual PropertyOwnergetOwner () override
 
virtual InviwoApplicationgetInviwoApplication () override
 
virtual void accept (NetworkVisitor &visitor) override
 Accept a NetworkVisitor, the visitor will visit this and then each Property of the CompositeProperty in an undefined order. The Visitor will then visit each Properties's properties and so on.
 
virtual void serialize (Serializer &s) const override
 
virtual void deserialize (Deserializer &d) override
 
- Public Member Functions inherited from inviwo::Property
 Property (std::string_view identifier="", std::string_view displayName="", Document help={}, InvalidationLevel invalidationLevel=InvalidationLevel::InvalidOutput, PropertySemantics semantics=PropertySemantics::Default, ReadOnly readOnly=ReadOnly::No)
 
 Property (std::string_view identifier, std::string_view displayName, InvalidationLevel invalidationLevel, PropertySemantics semantics=PropertySemantics::Default)
 
virtual ~Property ()
 Removes itself from its PropertyOwner.
 
virtual PropertysetIdentifier (std::string_view identifier)
 
virtual const std::string & getPath () const
 Get the property path as string.
 
virtual PropertysetDisplayName (std::string_view displayName)
 A property's name displayed to the user.
 
virtual const std::string & getDisplayName () const
 
virtual PropertysetSemantics (const PropertySemantics &semantics)
 
virtual PropertySemantics getSemantics () const
 
virtual bool getReadOnly () const
 
virtual PropertysetInvalidationLevel (InvalidationLevel invalidationLevel)
 
PropertyOwnergetOwner ()
 
const PropertyOwnergetOwner () const
 
void registerWidget (PropertyWidget *propertyWidget)
 
void deregisterWidget (PropertyWidget *propertyWidget)
 
const std::vector< PropertyWidget * > & getWidgets () const
 
void setInitiatingWidget (PropertyWidget *propertyWidget)
 
void clearInitiatingWidget ()
 
void updateWidgets ()
 
bool hasWidgets () const
 
virtual PropertysetSerializationMode (PropertySerializationMode mode)
 
virtual PropertySerializationMode getSerializationMode () const
 
virtual PropertypropertyModified ()
 
virtual PropertysetModified ()
 
virtual bool isModified () const
 
std::shared_ptr< std::function< void()> > onChangeScoped (std::function< void()> callback)
 
const BaseCallBack * onChange (std::function< void()> callback)
 
void removeOnChange (const BaseCallBack *callback)
 
virtual PropertysetVisible (bool val)
 
virtual bool getVisible () const
 
template<typename P , typename DecisionFunc >
PropertyvisibilityDependsOn (P &prop, DecisionFunc callback)
 
template<typename P , typename DecisionFunc >
PropertyreadonlyDependsOn (P &prop, DecisionFunc callback)
 
const DocumentgetHelp () const
 
DocumentgetHelp ()
 
PropertysetHelp (Document help)
 
virtual Document getDescription () const
 
template<typename P >
PropertyautoLinkToProperty (std::string_view propertyPath)
 
const std::vector< std::pair< std::string, std::string > > & getAutoLinkToProperty () const
 
- Public Member Functions inherited from inviwo::Observable< PropertyObserver >
 Observable (const Observable< PropertyObserver > &other)
 
 Observable (Observable< PropertyObserver > &&other) noexcept
 
Observable< PropertyObserver > & operator= (const Observable< PropertyObserver > &other)
 
Observable< PropertyObserver > & operator= (Observable< PropertyObserver > &&other) noexcept
 
void addObserver (PropertyObserver *observer)
 
void removeObserver (PropertyObserver *observer)
 
virtual void startBlockingNotifications () override final
 
virtual void stopBlockingNotifications () override final
 
- Public Member Functions inherited from inviwo::ObservableInterface
- Public Member Functions inherited from inviwo::Serializable
- Public Member Functions inherited from inviwo::MetaDataOwner
 MetaDataOwner (const MetaDataOwner &rhs)=default
 
 MetaDataOwner (MetaDataOwner &rhs)=default
 
MetaDataOwneroperator= (const MetaDataOwner &rhs)=default
 
MetaDataOwneroperator= (MetaDataOwner &)=default
 
void copyMetaDataFrom (const MetaDataOwner &src)
 
void copyMetaDataTo (MetaDataOwner &dst)
 
template<typename T >
requires std::derived_from<T, MetaData>
T * createMetaData (std::string_view key)
 
template<typename T , typename U >
requires std::derived_from<T, MetaData> && Settable<T, U>
void setMetaData (std::string_view key, U value)
 
template<typename T >
requires std::derived_from<T, MetaData>
bool unsetMetaData (std::string_view key)
 unset, i.e. remove the metadata entry matching the given key and type
 
template<typename T , typename U >
requires std::derived_from<T, MetaData> && Gettable<T, U>
getMetaData (std::string_view key, U val) const
 
template<typename T >
requires std::derived_from<T, MetaData>
T * getMetaData (std::string_view key)
 
template<typename T >
requires std::derived_from<T, MetaData>
const T * getMetaData (std::string_view key) const
 
MetaDataMapgetMetaDataMap ()
 
const MetaDataMapgetMetaDataMap () const
 
bool hasMetaData (std::string_view key) const
 
template<typename T >
requires std::derived_from<T, MetaData>
bool hasMetaData (std::string_view key) const
 
void serialize (Serializer &s) const
 
void deserialize (Deserializer &d)
 
- Public Member Functions inherited from inviwo::PropertyOwner
virtual ~PropertyOwner ()
 Removes all properties and notifies its observers of the removal.
 
virtual void addProperty (Property *property, bool owner=true)
 
virtual void addProperty (Property &property)
 
virtual PropertyaddProperty (std::unique_ptr< Property > property)
 
template<typename... Ts>
void addProperties (Ts &... properties)
 
virtual void insertProperty (size_t index, Property *property, bool owner=true)
 insert property property at position index If index is not valid, the property is appended.
 
virtual void insertProperty (size_t index, Property &property)
 insert property property at position index If index is not valid, the property is appended.
 
virtual PropertyinsertProperty (size_t index, std::unique_ptr< Property > property)
 insert property property at position index If index is not valid, the property is appended.
 
virtual PropertyremoveProperty (std::string_view identifier)
 
virtual PropertyremoveProperty (Property *property)
 
virtual PropertyremoveProperty (Property &property)
 
virtual PropertyremoveProperty (size_t index)
 remove property referred to by index
 
virtual bool move (Property *property, size_t newIndex)
 
virtual void clear ()
 Remove all properties; Owned properties will be deleted.
 
const std::vector< Property * > & getProperties () const
 
const std::vector< CompositeProperty * > & getCompositeProperties () const
 
std::vector< Property * > getPropertiesRecursive () const
 
std::vector< Property * > & getPropertiesRecursive (std::vector< Property * > &destination) const
 
PropertygetPropertyByIdentifier (std::string_view identifier, bool recursiveSearch=false) const
 
PropertygetPropertyByPath (std::string_view path) const
 
template<class T >
std::vector< T * > getPropertiesByType (bool recursiveSearch=false) const
 
bool empty () const
 
size_t size () const
 
Propertyoperator[] (size_t)
 
const Propertyoperator[] (size_t) const
 
const_iterator find (Property *property) const
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
virtual bool isValid () const
 
InvalidationLevel getInvalidationLevel () const
 
virtual void setAllPropertiesCurrentStateAsDefault ()
 
virtual void resetAllProperties ()
 
virtual void invokeEvent (Event *event) override
 
- Public Member Functions inherited from inviwo::PropertyOwnerObservable
void notifyObserversWillAddProperty (PropertyOwner *owner, Property *property, size_t index)
 
void notifyObserversDidAddProperty (Property *property, size_t index)
 
void notifyObserversWillRemoveProperty (Property *property, size_t index)
 
void notifyObserversDidRemoveProperty (PropertyOwner *owner, Property *property, size_t index)
 
- Public Member Functions inherited from inviwo::Observable< PropertyOwnerObserver >
 Observable (const Observable< PropertyOwnerObserver > &other)
 
 Observable (Observable< PropertyOwnerObserver > &&other) noexcept
 
Observable< PropertyOwnerObserver > & operator= (const Observable< PropertyOwnerObserver > &other)
 
Observable< PropertyOwnerObserver > & operator= (Observable< PropertyOwnerObserver > &&other) noexcept
 
void addObserver (PropertyOwnerObserver *observer)
 
void removeObserver (PropertyOwnerObserver *observer)
 
virtual void startBlockingNotifications () override final
 
virtual void stopBlockingNotifications () override final
 
- Public Member Functions inherited from inviwo::EventListener
- Public Member Functions inherited from inviwo::Observable< CompositePropertyObserver >
 Observable (const Observable< CompositePropertyObserver > &other)
 
 Observable (Observable< CompositePropertyObserver > &&other) noexcept
 
Observable< CompositePropertyObserver > & operator= (const Observable< CompositePropertyObserver > &other)
 
Observable< CompositePropertyObserver > & operator= (Observable< CompositePropertyObserver > &&other) noexcept
 
void addObserver (CompositePropertyObserver *observer)
 
void removeObserver (CompositePropertyObserver *observer)
 
virtual void startBlockingNotifications () override final
 
virtual void stopBlockingNotifications () override final
 

Static Public Attributes

static const std::string classIdentifier
 

Additional Inherited Members

- Static Public Member Functions inherited from inviwo::Property
template<typename T , typename U >
static void setStateAsDefault (T &property, const U &state)
 
- Protected Member Functions inherited from inviwo::Property
 Property (const Property &rhs)
 
Propertyoperator= (const Property &that)=delete
 
void notifyAboutChange ()
 
- Protected Member Functions inherited from inviwo::PropertyObservable
void notifyObserversOnSetIdentifier (Property *property, const std::string &identifier)
 
void notifyObserversOnSetDisplayName (Property *property, const std::string &displayName)
 
void notifyObserversOnSetSemantics (Property *property, const PropertySemantics &semantics)
 
void notifyObserversOnSetReadOnly (Property *property, bool readonly)
 
void notifyObserversOnSetVisible (Property *property, bool visible)
 
- Protected Member Functions inherited from inviwo::Observable< PropertyObserver >
void forEachObserver (C callback)
 
- Protected Member Functions inherited from inviwo::ObservableInterface
void addObservationHelper (Observer *observer)
 
void removeObservationHelper (Observer *observer)
 
- Protected Member Functions inherited from inviwo::PropertyOwner
 PropertyOwner (const PropertyOwner &rhs)
 
PropertyOwneroperator= (const PropertyOwner &that)=delete
 
void forEachProperty (std::function< void(Property &)> callback, bool recursiveSearch=false) const
 
- Protected Member Functions inherited from inviwo::Observable< PropertyOwnerObserver >
void forEachObserver (C callback)
 
- Protected Member Functions inherited from inviwo::CompositePropertyObservable
void notifyObserversOnSetCollapsed (bool collapsed)
 
- Protected Member Functions inherited from inviwo::Observable< CompositePropertyObserver >
void forEachObserver (C callback)
 
- Protected Attributes inherited from inviwo::Property
CallBackList onChangeCallback_
 
PropertySerializationMode serializationMode_
 
- Protected Attributes inherited from inviwo::MetaDataOwner
MetaDataMap metaData_
 
- Protected Attributes inherited from inviwo::PropertyOwner
std::vector< Property * > properties_
 
std::vector< EventProperty * > eventProperties_
 
std::vector< CompositeProperty * > compositeProperties_
 
std::vector< std::unique_ptr< Property > > ownedProperties_
 

Detailed Description

A grouping property for collecting properties in a hierarchy, CompositeProperties can be nested arbitrarily deep.

Member Function Documentation

◆ accept()

virtual void inviwo::CompositeProperty::accept ( NetworkVisitor & visitor)
overridevirtual

Accept a NetworkVisitor, the visitor will visit this and then each Property of the CompositeProperty in an undefined order. The Visitor will then visit each Properties's properties and so on.

Reimplemented from inviwo::Property.

◆ clone()

virtual CompositeProperty * inviwo::CompositeProperty::clone ( ) const
overridevirtual

Creates a clone of this property. The clone will have the same identifier, hence the identifier must be changed if the clone should be added to the same owner as this. The new clone does not have any owner set.

Implements inviwo::Property.

Reimplemented in inviwo::AdvancedMaterialProperty, inviwo::BasisProperty, inviwo::BoolCompositeProperty, inviwo::BufferInformationProperty, inviwo::CameraProperty, inviwo::CameraTrackball, inviwo::ColormapProperty, inviwo::ColumnMetaDataListProperty, inviwo::ColumnMetaDataProperty, inviwo::DataRangeProperty, inviwo::FilePatternProperty, inviwo::FilterListProperty, inviwo::FontProperty, inviwo::GaussianProperty< T >, inviwo::GaussianProperty< double >, inviwo::ImageInformationProperty, inviwo::IndexBufferInformationProperty, inviwo::IntegralLineProperties, inviwo::IntegralLineVectorToMesh::ColorByProperty, inviwo::IsoTFProperty, inviwo::LayerInformationProperty, inviwo::LineSettingsProperty, inviwo::ListProperty, inviwo::MeshBufferInformationProperty, inviwo::MeshInformationProperty, inviwo::OrdinalAnimationProperty< T >, inviwo::PathLineProperties, inviwo::PlaneProperty, inviwo::plot::AxisProperty, inviwo::plot::AxisStyleProperty, inviwo::plot::BoxSelectionProperty, inviwo::plot::CategoricalAxisProperty, inviwo::plot::MajorTickProperty, inviwo::plot::MarginProperty, inviwo::plot::MinorTickProperty, inviwo::plot::PCPAxisSettings, inviwo::plot::PersistenceDiagramPlotGL::Properties, inviwo::plot::PlotTextProperty, inviwo::plot::ScatterPlotGL::Properties, inviwo::PositionProperty, inviwo::RaycastingProperty, inviwo::SelectionColorProperty, inviwo::SequenceTimerProperty, inviwo::SimpleLightingProperty, inviwo::SimpleRaycastingProperty, inviwo::SplitterProperty, inviwo::StipplingProperty, inviwo::StreamLineProperties, inviwo::StringsProperty< N >, inviwo::StringsProperty< 2 >, inviwo::StringsProperty< 3 >, inviwo::TextOverlayProperty, inviwo::Trackball, inviwo::transform::CustomTransformProperty, inviwo::transform::RotateProperty, inviwo::transform::ScaleProperty, inviwo::transform::TranslateProperty, inviwo::TransformationList, inviwo::TransformListProperty, inviwo::VolumeIndicatorProperty, and inviwo::VolumeInformationProperty.

◆ deserialize()

virtual void inviwo::CompositeProperty::deserialize ( Deserializer & d)
overridevirtual

Reimplemented from inviwo::Property.

◆ getClassIdentifier()

virtual std::string inviwo::CompositeProperty::getClassIdentifier ( ) const
overridevirtual

Implements inviwo::Property.

◆ getClassIdentifierForWidget()

virtual std::string inviwo::CompositeProperty::getClassIdentifierForWidget ( ) const
overridevirtual

Returns which property's widget should be used when the WidgetFactory tries to create a widget. Defaults to getClassIdentifier(), should only be overridden if a subclass want to reuse another property's widget.

Reimplemented from inviwo::Property.

Reimplemented in inviwo::BoolCompositeProperty, inviwo::ColormapProperty, inviwo::IsoTFProperty, inviwo::ListProperty, inviwo::StringsProperty< N >, inviwo::StringsProperty< 2 >, and inviwo::StringsProperty< 3 >.

◆ getIdentifier()

virtual const std::string & inviwo::CompositeProperty::getIdentifier ( ) const
overridevirtual

Reimplemented from inviwo::Property.

◆ getInvalidationLevel()

virtual InvalidationLevel inviwo::CompositeProperty::getInvalidationLevel ( ) const
overridevirtual

Reimplemented from inviwo::Property.

◆ getInviwoApplication()

virtual InviwoApplication * inviwo::CompositeProperty::getInviwoApplication ( )
overridevirtual

Implements inviwo::PropertyOwner.

◆ getOwner() [1/2]

virtual const PropertyOwner * inviwo::CompositeProperty::getOwner ( ) const
overridevirtual

Reimplemented from inviwo::PropertyOwner.

◆ getOwner() [2/2]

virtual PropertyOwner * inviwo::CompositeProperty::getOwner ( )
overridevirtual

Reimplemented from inviwo::PropertyOwner.

◆ getProcessor() [1/2]

virtual const Processor * inviwo::CompositeProperty::getProcessor ( ) const
overridevirtual

Reimplemented from inviwo::PropertyOwner.

◆ getProcessor() [2/2]

virtual Processor * inviwo::CompositeProperty::getProcessor ( )
overridevirtual

Reimplemented from inviwo::PropertyOwner.

◆ invalidate()

virtual void inviwo::CompositeProperty::invalidate ( InvalidationLevel invalidationLevel,
Property * modifiedProperty = 0 )
overridevirtual

Reimplemented from inviwo::PropertyOwner.

◆ isDefaultState()

virtual bool inviwo::CompositeProperty::isDefaultState ( ) const
overridevirtual

Check if the property is in it's default state, i.e. resetToDefaultState would do nothing

See also
setCurrentStateAsDefault
resetToDefaultState

Reimplemented from inviwo::Property.

Reimplemented in inviwo::CameraProperty, and inviwo::ListProperty.

◆ needsSerialization()

virtual bool inviwo::CompositeProperty::needsSerialization ( ) const
overridevirtual

Determinate if the property should be included in the serialization Depends on the PropertySerializationMode and if the property is in the default state. If the mode is All it always return true, None always returns false, and default delegates to isDefaultState()

Reimplemented from inviwo::Property.

Reimplemented in inviwo::CameraProperty, and inviwo::ListProperty.

◆ resetToDefaultState()

virtual CompositeProperty & inviwo::CompositeProperty::resetToDefaultState ( )
overridevirtual

Reset the state of the property back to it's default value. It is important that all overriding properties make sure to call the base class implementation.

Reimplemented from inviwo::Property.

Reimplemented in inviwo::BasisProperty, inviwo::CameraProperty, and inviwo::ListProperty.

◆ serialize()

virtual void inviwo::CompositeProperty::serialize ( Serializer & s) const
overridevirtual

Reimplemented from inviwo::Property.

◆ set()

virtual void inviwo::CompositeProperty::set ( const Property * src)
overridevirtual

Set the value of this to that of src. The "value" is in this case considered to be for example the string in a StringProperty or the float value in a FloatProperty. But not things like the identifier of display name.

Reimplemented from inviwo::Property.

Reimplemented in inviwo::CameraProperty, inviwo::IsoTFProperty, inviwo::ListProperty, and inviwo::PositionProperty.

◆ setCurrentStateAsDefault()

virtual CompositeProperty & inviwo::CompositeProperty::setCurrentStateAsDefault ( )
overridevirtual

Save the current state of the property as the default. This state will then be used as a reference when serializing, only state different from the default will be serialized. This method should usually only be called once directly after construction in the processor constructor after setting property specific state. It is important that all overriding properties make sure to call the base class implementation.

Reimplemented from inviwo::Property.

Reimplemented in inviwo::BasisProperty, inviwo::CameraProperty, and inviwo::ListProperty.

◆ setOwner()

virtual void inviwo::CompositeProperty::setOwner ( PropertyOwner * owner)
overridevirtual

Reimplemented from inviwo::Property.

◆ setReadOnly()

virtual CompositeProperty & inviwo::CompositeProperty::setReadOnly ( bool value)
overridevirtual

Enable or disable editing of property.

Reimplemented from inviwo::Property.

◆ setValid()

virtual void inviwo::CompositeProperty::setValid ( )
overridevirtual

Reimplemented from inviwo::Property.


The documentation for this class was generated from the following file: