The Vish Visualization Shell 0.3
Vish
List of all members
Wizt::Interactive Struct Reference

Base class for Vish Objects that allow interaction with an input device such as the mouse or keyboard in the 3D Viewer (or any other input device providing a VInteractionEvent ). More...

#include <ocean/shrimp/VInteractionEvent.hpp>

Inheritance diagram for Wizt::Interactive:
Wizt::VSkale Wizt::VConnectable Wizt::VSlotContainer< ExpertLevel > Wizt::VManagedObjectBase Wizt::VConnectionValidatorList Wizt::ValueCacheable MemCore::ReferenceBase< VManagedObjectBase > Wizt::HotKey

Additional Inherited Members

- Public Types inherited from Wizt::VSlotContainer< ExpertLevel >
enum  { AllLevels = INT_MAX }
 
typedef void AcceptableInputTypes
 Each VObject may define a set of possible input types, which are types that are provided by some other objects to be used as inputs of this object.
 
typedef VSlotSet CreationSlots_t
 A set of slots.
 
template<int I>
using Empty = VSlot::Empty< I >
 Shortcut typedef to be used in construction of empty slots.
 
enum  AttachErrorCode { }
 
- Public Types inherited from MemCore::ReferenceBase< VManagedObjectBase >
using reference_domain_t = VManagedObjectBase
 The type of the base class.
 
using SelfPtr_t = WeakPtr< VManagedObjectBase, VManagedObjectBase >
 Type for a pointer to this object itself.
 
- Public Member Functions inherited from Wizt::VSkale
virtual ~VSkale ()=0
 Destructor, does nothing.
 
- Public Member Functions inherited from Wizt::VConnectable
virtual void adjustConnections (const RefPtr< VSlot > &ChangedSlot, const RefPtr< VParameter > &par)
 Callback function that is called when a Connect() has been issued.
 
VSlotContainer::AttachErrorCode attach (const ParameterID &whichone, VSlotContainer &sourceObject, const ParameterID &sourceName)
 Share a parameter with another one.
 
AttachErrorCode attach (const RefPtr< VParameter > &OldParam, const RefPtr< VParameter > &NewParam, const string &Member={})
 Replace a given parameter of the current object with another parameter.
 
AttachErrorCode attachUniqueObject (const RefPtr< VParameter > &param, const RefPtr< VCreationPreferences > &VCP=NullPtr(), bool ReallyUnique=true)
 Try to find an existing object that matches its type with the specified parameter.
 
AttachErrorCode attachUniqueObject (const RefPtr< VSlot > &slot, const RefPtr< VCreationPreferences > &VCP=NullPtr(), bool ReallyUnique=true)
 Try to find an existing object that matches its type with the specified parameter.
 
RefPtr< VSlotConnect (const RefPtr< VParameter > &SourceParam)
 Given a certain parameter, overload a parameter of the same type in the current object with this one.
 
RefPtr< VSlotConnectInterface (const RefPtr< VSlotContainer > &Provider, const RefPtr< InterfaceBase > &IB)
 
virtual bool CreatedFilteredConnection (const RefPtr< VParameter > &SourceParam)
 We wish to connect the current object to the given parameter, but it provides an output type that cannot be used by this current object as input type.
 
- Public Member Functions inherited from Wizt::VSlotContainer< ExpertLevel >
Ageableage (const RefPtr< ValuePool > &VP)
 Return the age of this object, which may be modified.
 
const Ageableage (const RefPtr< ValuePool > &VP) const
 Return the age of this object in read-only form.
 
const AgeableConnectionAge () const
 Return the age when connections had last been modified.
 
bool ConnectionsHaveChanged (const RefPtr< ValuePool > &VP) const
 Check whether the connections have changed on this object.
 
bool HasYoungerInput (const RefPtr< ValuePool > &Context, int RecursionLevel=0) const
 
Ageable YoungestInput (const RefPtr< ValuePool > &Context) const
 Return the age of the youngest input.
 
Ageable YoungestOutput (const RefPtr< ValuePool > &Context) const
 Determine the age of the youngest output object.
 
Ageable YoungestUncachedInput (const RefPtr< ValuePool > &Context) const
 Return the age of the youngest input slot that is not cached.
 
virtual ~VSlotContainer ()
 Destructor.
 
RefPtr< VSlotaddParameter (const ParameterID &name, int EL, const RefPtr< VParameter > &param, bool overwriteExistingSlot)
 Specify a parameter (type) as input for this VObject.
 
virtual bool allowParameterReplacement (const RefPtr< VParameter > &NewParam, const RefPtr< VParameter > &OldParam, const string &localName, int ExpertLevel)
 Virtual callback function invoked by replaceParameter() when the implementation of a parameter is changed by another one.
 
virtual int connectSlots (const VSlotContainerPtr &vobj)
 Tries to connect all slots found in the given VObject with those of the current one.
 
bool removeParameter (const ParameterID &s)
 Remove a parameter from the list of input objects.
 
RefPtr< VParametergetParameter (const ParameterID &s) const
 Return the local input parameter slot for a certain parameter name.
 
RefPtr< VSlotgetSlot (const ParameterID &s, int &EL) const
 A more verbose version of getParameter() which also provides information about which member of a certain parameter is used here; note that the type of the full parameter will be different from the type of a member of the parameter.
 
bool setSlotValueFromText (const ParameterID &s, const string &ValueText, const RefPtr< ValuePool > &VP, const string &theMember={})
 Convenience function to set an input value from its textual representation.
 
RefPtr< VSlotfindSlot (const RefPtr< VParameter > &param) const
 Given a parameter, find a slot that refers to this one.
 
string getSlotName (const RefPtr< VParameter > &param) const
 Check whether this object contains the given parameter, and if so, under which slot's name.
 
bool AddAction (const ParameterID &s, const RefPtr< ValueActionBase > &VAB)
 Associate the change of a certain parameter of this object with a certain action.
 
template<class DerivedObject >
bool AddAction (const RefPtr< VSlot > &ActionSlot, bool(DerivedObject::*Action)(const RefPtr< VValueBase > &value))
 Connect the change of a parameter with the invocation of an object's member function.
 
RefPtr< VParametermkUniqueParameterInput (const ParameterID &s, const string &ContainerName)
 Calls VParameter::copy();.
 
int getExpertLevel (const ParameterID &s) const
 Get the expert level of a parameter.
 
int setExpertLevel (const ParameterID &s, int EL)
 Set the expert level of a parameter.
 
int getExpertLevel (const RefPtr< VParameter > &) const
 Get the expert level of a parameter via pointer.
 
int getExpertLevel (const RefPtr< VSlot > &S) const
 Get the expert level of a parameter via pointer.
 
int setExpertLevel (const RefPtr< VSlot > &S, int EL)
 Set the expert level of a parameter via pointer.
 
int setExpertLevel (const RefPtr< VParameter > &s, int EL)
 Set the expert level of a parameter via pointer.
 
bool hasChanged (const ParameterID &s, const RefPtr< ValuePool > &Context) const
 Check whether a certain input parameter has changed.
 
bool hasChanged (const RefPtr< VSlot > &, const RefPtr< ValuePool > &Context) const
 Check whether a certain input slot has changed.
 
bool hasChanged (const RefPtr< ValuePool > &Context, int n,...) const
 Check a set of input parameters whether one has changed.
 
bool hasChanged (RefPtr< ValuePool > Context,...) const
 Check a set of input parameters whether one has changed.
 
virtual bool ignoreInput (const RefPtr< VSlot > &theSlot) const
 Allow ignoring certain slots on update().
 
template<class Type >
bool getParameterValue (Type &Variable, const ParameterID &s, const RefPtr< ValuePool > &VP) const
 Get a value for a certain parameter.
 
template<class Type >
bool getParameterValue (Type &Variable, const ParameterID &s, const VContext &C) const
 Get a value for a certain parameter.
 
template<class Type >
bool getParameterValue (Type &Variable, const ParameterID &s, const VRequest &R) const
 Get a value for a certain parameter.
 
template<class Type >
bool setParameterValue (const Type &Variable, const ParameterID &s, const RefPtr< ValuePool > &VP, bool autoCreateLocalValue) const
 Set a value for a parameter, given a ValuePool.
 
template<class Type >
bool setParameterValue (const Type &Variable, const ParameterID &s, VContext &C, bool autoCreateLocalValue) const
 Set a value for a parameter, given a context.
 
template<class Type >
bool setParameterValue (const Type &Variable, const ParameterID &s, VRequest &R, bool autoCreateLocalValue=false) const
 Set a value for a parameter, given a context.
 
template<class Type >
RefPtr< VSlotaddParam (const ParameterID &name, const Type &init, const RefPtr< VCreationPreferences > &VP=NullPtr(), int expertLevel=0, bool overwriteExistingSlot=true)
 Add an input parameter to the VObject.
 
bool setParameterProperty (const ParameterID &param, const string &Properties, const RefPtr< VValueBase > &Value=NullPtr())
 Set a property of an input parameter, such as the minimum or maximum of a bounded numerical value.
 
RefPtr< VSlotaddFloatParam (double init, const ParameterID &param, double min, double max, const RefPtr< VCreationPreferences > &IP=NullPtr(), int expertLevel=0)
 Shortcut function to add a floating point parameter.
 
AttachErrorCode attach (const RefPtr< VParameter > &OldParam, const RefPtr< VParameter > &NewParam, const string &Member={})
 Replace a given parameter of the current object with another parameter.
 
int iterateParameters (int expertLevel, VSlotIterator &VIIt) const
 Iterate over all VInput objects that have an expert level lower or equal to the expertLevel parameter.
 
int iterateInputSlots (int expertLevel, VSlotIterator &VIIt) const
 Same as iterateParameters().
 
int iterateInputs (VSlotIterator &VIIt, int expertLevel=0)
 Iterate all inputs with expert level smaller than zero (default), or as specified.
 
int iterate_inputs (const std::function< bool(VSlot &what, int ExpertLevel)>) const
 Iterate over all VInput objects that have an expert level lower or equal to the expertLevel parameter.
 
RefPtr< VSlotgetUniqueInputSlot (const type_info &what)
 Find an input slot that queries a specific type.
 
int getNumberOfParameters (int expertLevel) const
 Get the number of parameters up to a certain expert level.
 
virtual bool implements (const type_info &what) const
 Check whether this VObject implements a certain type.
 
virtual RefPtr< VParametergetImplementation (const type_info &what, const string &name={}, const string &member={}) const
 By querying a type and an optional finer textual description, retrieve an Parameter that is implemented by this VObject.
 
RefPtr< VSlotgetImplementationSlot (const type_info &what, const string &Name={}, const string &Member={}) const
 Query an output slot for the given type.
 
VAcceptInfoList_t getAcceptInfoList (const std::type_info &request_type) const
 Get a list of possible output implementations for the given request type.
 
bool provides (const RefPtr< VSlot > &OutputSlot) const
 Verifies that the specified slot is provided by the current VObject.
 
RefPtr< VSlotfindOutputSlot (const RefPtr< VParameter > &Who) const
 Find an output slot that refers to the given parameter, i.e.
 
bool isYounger (const RefPtr< VParameter > &OutputParam, const RefPtr< ValuePool > &VP) const
 Check if an output parameter is of younger age, which might be the case if it has been recently connected or modified through external means.
 
bool isNewlyConnected (const RefPtr< VParameter > &Who, const RefPtr< ValuePool > &VP) const
 Check if an output parameter has been recently connected or modified through external means.
 
bool hasNewlyConnectedOutputs (const RefPtr< ValuePool > &VP) const
 Check if there are new connections.
 
void findNewlyConnectedOutputs (const RefPtr< ValuePool > &VP, VSlotSet &WhichOnes) const
 Find all output parameters that have been recently connected since the last update() call.
 
RefPtr< VSlotgetOutput (const string &Name) const
 Get the output slot for a given name.
 
RefPtr< MemCore::StringListgetOutputs (const type_info &what=typeid(void)) const
 Get a list of all output names that are provided by this object.
 
virtual int iterateOutputs (VOutputIterator &VOut, const type_info &just_these=typeid(void)) const
 Iterate over all the Outputs of this VObject, i.e.
 
bool registerOutput (const RefPtr< VParameter > &P, const string &AsName={})
 Register a certain parameter as being output by this VObject under the given name (optionally).
 
bool registerOutput (const RefPtr< VParameter > &P, const string &AsName, const type_info &MemberType, const string &UseMember)
 Register a member of a parameter, that is output by this VObject, as being available to external VObjects.
 
bool registerOutput (const RefPtr< VParameter > &P, const type_info &MemberType, const string &UseMember)
 Register a component of a parameter, using the default name of the parameter.
 
int getNumberOfInputs () const
 Get the number of input parameters, ie. on how many parameters does this object depend on?
 
int getNumberOfOutputs () const
 Get the number of output parameters, ie. how many parameters does this object provide?
 
bool hasChangedSlots (const MemCore::Intercube &IC, const RefPtr< ValuePool > &Context) const
 Check if the given Intercube hosts any VSlots that have been changed relative to the given Context.
 
template<typename... SlotList>
auto include_self (const std::tuple< SlotList... > &t) const -> decltype(std::tuple_cat(std::make_tuple(this), t))
 Given a tuple of values, create a new tuple that includes the object itself.
 
- Public Member Functions inherited from Wizt::VManagedObjectBase
 VManagedObjectBase ()
 Constructor.
 
 ~VManagedObjectBase ()
 Destructor.
 
- Public Member Functions inherited from MemCore::ReferenceBase< VManagedObjectBase >
auto getObjectCountID () const noexcept
 Get a unique ID for this object in the given domain.
 
bool isIdentical (const WeakPtr< VManagedObjectBase, VManagedObjectBase > &PossibleSelf) const noexcept
 Check if this object is identical to the one used by the given pointer.
 
void mkAutoDestructive ()
 Marks this object as being automatically destructed, e.g.
 
refcount_t refcount () const noexcept
 The strong reference count.
 
 ReferenceBase (VManagedObjectBase *that) noexcept
 Constructor, initializes reference counter to zero.
 
const auto & self () const
 Return weak pointer to the object self.
 
refcount_t wrefcount () const noexcept
 The weak reference count.
 
- Static Public Member Functions inherited from Wizt::VConnectable
static bool attachSlot (const WeakPtr< VSlot > &DestSlot, const RefPtr< VParameter > &ProvidedParam, const string &Member={})
 Attach a given parameter to a slot of the current object.
 
static bool attachSlot (const WeakPtr< VSlot > &DestSlot, const RefPtr< VSlot > &SourceSlot, const string &Member={})
 Attach the source slot's parameter to the destination slot's parameter, overwriting the destination slot's par.
 
static bool detachSlot (const RefPtr< VSlot > &SourceSlot)
 Detach the source slot's parameter by assigning a copy of the parameter to itself.
 
- Static Public Member Functions inherited from Wizt::VSlotContainer< ExpertLevel >
static const charAttachErrorCodeMessage (AttachErrorCode)
 Given an error code from one of the attach() functions, return some textual description.
 
static bool attachParameter (const RefPtr< VParameter > &theProvidedParam, const WeakPtr< VSlot > &theDestSlot, const string &theMember={})
 This function basically does:
 
- Static Public Member Functions inherited from Wizt::ValueCacheable
static ValueCacheconsider (MemCore::Intercube &IC, const WeakPtr< VSlot > &VS, const RefPtr< ValuePool > &Context)
 
static ValueCachegetValueCache (MemCore::Intercube &IC)
 Get, and possibly create, a ValueCache that will be stored at the given Intercube.
 
static bool hasChangedSlots (const WeakPtrToVSlotContainer &theSlotOwner, const MemCore::Intercube &IC, const RefPtr< ValuePool > &Context)
 Check if the given Intercube hosts any VSlots that have been changed relative to the given Context.
 
- Static Public Attributes inherited from Wizt::VSlotContainer< ExpertLevel >
- Protected Member Functions inherited from Wizt::VSlotContainer< ExpertLevel >
virtual void setup (const CreationSlots_t &CreationSlots)
 When a VObject is created as a child of an existing VObject, this variant of the setup function is called, telling which slot is the one connected to the object that triggered creation of this one.
 
- Protected Member Functions inherited from MemCore::ReferenceBase< VManagedObjectBase >
virtual void extremeUnction ()
 A virtual function that will be called just before the object is destroyed.
 
ReferenceBaseoperator= (const ReferenceBase &R)
 Protected assignment operator (should not be called).
 
void suicide ()
 Delete this.
 
virtual ~ReferenceBase ()
 Virtual destructor.
 

Detailed Description

Base class for Vish Objects that allow interaction with an input device such as the mouse or keyboard in the 3D Viewer (or any other input device providing a VInteractionEvent ).