The Vish Visualization Shell  0.3
Vish
Public Member Functions | List of all members
Wizt::VRenderObject Class Reference

Base class for objects that implement a drawing routine. More...

#include <ocean/Anemonia/VRenderObject.hpp>

Inheritance diagram for Wizt::VRenderObject:
Wizt::VEnvironmentRenderObject Wizt::VChartDependent Wizt::VTransformable Wizt::StatusIndicator Wizt::RenderAble Wizt::VSkale Wizt::VObject Wizt::RenderNamespace Wizt::VConnectable Wizt::VSlotContainer<> Wizt::VTraceRequestID Wizt::VInputClassRecognition Wizt::VScriptable Wizt::VManagedDomainObject< VObject > Wizt::VSaveable Wizt::VStateCreatorBase Wizt::VConnectable Wizt::VManagedObjectBase AimVish ComputeGridStreamLines ComputeMultiStreamLines ComputeStreamSurfaces CoordInter FileSelector Ligo LineEmitter LineEmitterRenderer LineRenderer PerformaSceneRenderer PlaneTest ProtIntersect RenderExample ShadowGround Spheres TestBox WallPaper Wizt::VGLRenderObject

Public Member Functions

RefPtr< BoundingBallgetBoundingBall (const RefPtr< ValuePool > &VP) const override
 Retrieve the bounding volume of the object. More...
 
void setBoundingBall (const RefPtr< ValuePool > &VP, const RefPtr< BoundingBall > &BS) const
 Set a bounding volume to the object's local context-relative state in a manner such that it can be retrieved by the default implementation of getBoundingBall(). More...
 
 VRenderObject (const string &name, int p, const RefPtr< VCreationPreferences > &VP)
 Construct VRender Object with name, rendering priority, and creation preferences.
 
 ~VRenderObject ()
 Destructor.
 
- Public Member Functions inherited from Wizt::VEnvironmentRenderObject
void announce (const string &name, const VCamera &ViewpointProperties, const RefPtr< ValuePool > &Context) const
 Announce a specific viewpoint as a possible suggestion on how to view this object. More...
 
void getRenderPrecision (VRenderContext &Context, double &OverallPrecision, double &ThisContribution) const
 Retrieve render precision parameters: More...
 
 VEnvironmentRenderObject (const string &name, int p, const RefPtr< VCreationPreferences > &VP)
 Constructor.
 
 ~VEnvironmentRenderObject ()
 Destructor.
 
- Public Member Functions inherited from Wizt::RenderAble
virtual bool environment_render (VRenderContext &Context) const =0
 A render routine which may change the state of OpenGL for all subsequent renderings. More...
 
virtual struct RenderTime getLastRenderTime (VRenderContext &Context) const
 Getting the time from the last rendering call. More...
 
virtual string getSensorInfo (const RefPtr< ValuePool > &Context, const SensorView &theSensorView)
 A realtime-feedback callback function to allow each render object add provide information to be displayed for a certain mouse cursor location. More...
 
virtual RefPtr< BoundingBallgetTouchableBoundingBall (const RefPtr< ValuePool > &VP) const
 Retrieve the bounding volume of the object as far as it concerns camera navigation. More...
 
bool isVisible (const RefPtr< ValuePool > &Context) const
 Check visibility of the given render object relative to a give Context.
 
bool timed_render (double &RenderTime, VRenderContext &Context, double Z=0, double dZ=-1) const
 Render this object (calling safe_render() ) including timing measurements. More...
 
virtual bool unsynchronized_render (VRenderContext &Context, double Z, double dZ) const
 Unsynchronized rendering can be used when the implementation is able to decide itself when to lock the VObject like: More...
 
- Public Member Functions inherited from Wizt::VObject
CreateConnectionResult_t connectAsChild (const VObjectPtr &ChildObject, const VAcception &VA)
 Note: Calls the setup() functions.
 
CreateConnectionResult_t connectChild (const VObjectPtr &ChildObject, const RefPtr< VAcceptInfo > &VA)
 Connect an existing object as a child to the current object. More...
 
CreateConnectionResult_t createChild (const VAcception &VA, const Intercube &CreationContext)
 Based on the accept information provided by some Object creator, create a VObject that accepts the current object as an input object. More...
 
VObjectPtr createInput (const WeakPtrVCreatorBase &VCrec, const RefPtr< VSlot > &what, const string &name, Intercube &CreationContext)
 Given a certain VCreatorBase that is supposed to fit to a given slot, create an object that serves as input to this one. More...
 
const RefPtr
< VCreationPreferences > & 
CreationPreferences () const
 Return the creation preferences.
 
string CreatorName () const
 Retrieve the name of the object's creator.
 
VObjectPtr extractSlot (const RefPtr< VSlot > &theSlot, const string &theNewName=string()) const
 Given a slot of this VObject create a new VObject from it that provides just this slot and serves as input to the current VObject.
 
const WeakPtrVCreatorBasegetCreator () const
 Get the Creator of this object.
 
virtual const GimpIcongimp_icon () const
 If this object provides an icon in GIMP C source format, return it here. More...
 
virtual string help (HelpType=HTMLText) const
 Return a string, containing HTML or Richtext formatting suitable to be displayed in QT.
 
virtual void InputCreation (const RefPtr< VParameter > &CurrentObjectsInput, const VObjectPtr &NewlyCreatedObject, const RefPtr< VParameter > &TheNewObjectsOutputParameter)
 Virtual callback function, as invoked from createInput() .
 
void remove ()
 remove this object from the object database
 
double requestTime () const
 Last computation time in seconds.
 
bool setObjectAsChild (const VObjectPtr &childVObject, const string &DependencySlotName)
 Set a certain object as being a child of the current one. More...
 
 VObject (const string &name, int p, const RefPtr< VCreationPreferences > &VP)
 Create a Vish Object. More...
 
virtual const char *const * xpm_icon () const
 If this object provides an icon in XPM source format, return it here.
 
virtual ~VObject ()
 Destructor.
 
virtual bool request (VRequest &, double precision, const WeakVObjectPtr &ImmediateRequestor, const WeakVObjectPtr &RootRequestor)
 Request an action, to be performed with a certain precision. More...
 
bool init_request (VRequest &, double precision=1.0)
 
bool schedule (double precision, const RefPtr< ValuePool > &Context=NullPtr())
 Schedule a request for this object for later processing. More...
 
void enableRequestProcessing ()
 Enable processing of requests. More...
 
void disableRequestProcessing ()
 Disable the processing of requests.
 
bool acceptsRequests () const
 Check whether this object may process requests.
 
const MemCore::CounterUpdateCount () const
 A read-only counter telling if this object is currently being updated. More...
 
const MemCore::CounterRequestCount () const
 A read-only counter telling if this object is currently being under a request. More...
 
virtual std::string type_key () const
 Return a unique string representing the type represented by this VObject. More...
 
virtual string CreateParameterName (const ParameterID &name) const
 Creation of global parameter names. More...
 
RefPtr< VParametermkUniqueParameterInput (const ParameterID &s)
 
RefPtr< VParametermkUniqueParameterInput (const RefPtr< VParameter > &s)
 
int iterateChildren (ChildIterator &) const
 Find all children connected from the current object.
 
template<class Lambda >
int findChildren (const Lambda &theLambda) const
 Find all children of the current object and its connections via a lambda function (or functor). More...
 
AttachErrorCode attachNewObject (const RefPtr< VSlot > &slot, const string &name, const Intercube &CreationContext, const RefPtr< VCreationPreferences > &VCP=NullPtr())
 Create a new object with the type of the specified slot, whatever that is, but using the creation preferences. More...
 
AttachErrorCode attachNewObject (const RefPtr< VSlot > &slot, const string &name, const RefPtr< VCreationPreferences > &VCP=NullPtr())
 Create a new object with the type of the specified slot, whatever that is, but using the creation preferences. More...
 
- Public Member Functions inherited from Wizt::VManagedObjectBase
 VManagedObjectBase ()
 Constructor.
 
 ~VManagedObjectBase ()
 Destructor.
 
- Public Member Functions inherited from MemCore::ReferenceBase< VManagedObjectBase >
long getObjectCountID () const noexcept
 Get a unique ID for this object in the given domain. More...
 
bool isIdentical (const WeakPtrImpl< 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. More...
 
int refcount () const noexcept
 The strong reference count.
 
 ReferenceBase (VManagedObjectBase *that) noexcept
 Constructor, initializes reference counter to zero.
 
const WeakPtrImpl
< VManagedObjectBase,
VManagedObjectBase > & 
self () const
 Return weak pointer to the object self. More...
 
void speak (const char *s, const char *prefix="") const noexcept
 Print a debug message with the class name preceded.
 
int wrefcount () const noexcept
 The weak reference count.
 
- 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. More...
 
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. More...
 
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. More...
 
RefPtr< VSlotConnect (const RefPtr< VParameter > &SourceParam)
 Given a certain parameter, overload a parameter of the same type in the current object with this one. More...
 
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. More...
 
- Public Member Functions inherited from Wizt::VSlotContainer<>
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. More...
 
bool ConnectionsHaveChanged (const RefPtr< ValuePool > &VP) const
 Check whether the connections have changed on this object.
 
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.
 
bool HasYoungerInput (const RefPtr< ValuePool > &Context, int RecursionLevel=0) const
 
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.
 
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. More...
 
virtual ~VSlotContainer ()
 Destructor.
 
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. More...
 
RefPtr< VSlotgetImplementationSlot (const type_info &what, const string &Name="", const string &Member="") const
 Query an output slot for the given type. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
bool registerOutput (const RefPtr< VParameter > &P, const string &AsName="")
 Register a certain parameter as being output by this VObject under the given name (optionally). More...
 
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.
 
bool registerOutput (const RefPtr< VSlot > &P)
 
RefPtr< VSlotaddParameter (const ParameterID &name, int EL, const RefPtr< VParameter > &param, bool overwriteExistingSlot)
 Specify a parameter (type) as input for this VObject. More...
 
RefPtr< VSlotaddSlot (const RefPtr< VSlot > &S, int expertLevel, bool overwriteExistingSlot)
 
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. More...
 
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. More...
 
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. More...
 
RefPtr< VSlotgetSlot (const ParameterID &s) const
 
template<class Type >
RefPtr< VValue< Type > > getSlotValue (const ParameterID &s, const RefPtr< ValuePool > &Context, const Type &DefaultValue) const
 
RefPtr< VSlotfindSlot (const RefPtr< VParameter > &param) const
 Given a parameter, find a slot that refers to this one.
 
RefPtr< VSlotfindReplaceableSlot (const RefPtr< VParameter > &par)
 
string getSlotName (const RefPtr< VParameter > &param) const
 Check whether this object contains the given parameter, and if so, under which slot's name. More...
 
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. More...
 
RefPtr< VParametermkUniqueParameterInput (const ParameterID &s, const string &ContainerName)
 Calls VParameter::copy();.
 
RefPtr< VParametermkUniqueParameterInput (const RefPtr< VParameter > &P, const string &ContainerName)
 
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. More...
 
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. More...
 
bool hasChanged (RefPtr< ValuePool > Context,...) const
 Check a set of input parameters whether one has changed. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
AttachErrorCode attach (const RefPtr< VParameter > &OldParam, const RefPtr< VParameter > &NewParam, const string &Member="")
 Replace a given parameter of the current object with another parameter. More...
 
int iterateParameters (int expertLevel, VSlotIterator &VIIt) const
 Iterate over all VInput objects that have an expert level lower or equal to the expertLevel parameter. More...
 
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. More...
 
int iterate_inputs (const std::function< bool(const RefPtr< VSlot > &what, int ExpertLevel)>) const
 
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. More...
 
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. More...
 
- Public Member Functions inherited from Wizt::VStateCreatorBase
RefPtr< State > & getState (const WeakPtr< ValuePool > &VP) const
 Retrieve a pointer to a state object for the given context.
 
RefPtr< InterfaceBasehasLocalInterface (const type_info &InterfaceType) const
 Check whether any of the local object states has an interface of the given type. More...
 
RefPtr< StatemyState (const WeakPtr< ValuePool > &Context) const
 Retrieve a state for the current context, possibly creating one.
 
virtual RefPtr< StatenewState () const
 create a new state object. Child classes might deliver child states.
 
void setState (const WeakPtr< ValuePool > &, const RefPtr< State > &st) const
 Set a state object for a given context.
 
- Public Member Functions inherited from Wizt::VSaveable
void addSaver (const string &, const RefPtr< VishSaver > &)
 Add a save object that is associated with the certain text.
 
template<class AppClass >
void addSavers (AppClass &A)
 To add external savers a derived class call. More...
 
bool autosave () const
 Save object using the last used saver.
 
RefPtr< VishSavergetMostRecentSaver () const
 Get the last saver that had been used for this object. More...
 
size_t getNumberOfSavers () const
 Get the number of savers.
 
RefPtr< VishSavergetSaver (const string &) const
 Retrieve a saver functor that is associated to the certain text.
 
RefPtr< VishSavergetSaverByExt (const string &ext) const
 Retrieve a saver functor for the given file extension.
 
int iterateSavers (SaveIterator &It)
 Iterate over all savers associated with this object.
 
 VSaveable ()
 Constructor, does nothing.
 
 ~VSaveable ()
 Destructor, does nothing but automatic cleanup.
 
- Public Member Functions inherited from Wizt::VManagedDomainObject< VObject >
const type_info & getDomainType () const override
 Get the associated domain type.
 
void remove ()
 Remove the current object from the pool of objects.
 
 VManagedDomainObject (const string &name, int priority=DEFAULT_PRIORITY)
 Constructor, inserts the new object into the object pool of the respective domain under the given name with the assigned priority.
 
- Public Member Functions inherited from Wizt::VManagedObject
string getLoadModule () const
 Get the name of the module that was active when loading/creating this object.
 
void insert (const string &s, int priority=DEFAULT_PRIORITY)
 Insert new objects into the object data base. More...
 
void remove ()
 Remove this object from the database. More...
 
void setPriority (int priority)
 Set the priority level in the database list.
 
 VManagedObject (const string &name, int priority=DEFAULT_PRIORITY)
 Constructor.
 
virtual ~VManagedObject ()
 Virtual destructor.
 
- Public Member Functions inherited from MemCore::Intercube
void addInterface (const RefPtr< InterfaceBase > &I) const
 Add an interface class object.
 
template<class Data >
void addInterfaceData (const Data &D)
 Add data via an interface class object.
 
template<class Data , typename TypeSelector >
void addInterfaceData (const Data &D)
 Add data via an interface class object.
 
void clearInterfaces ()
 Remove all interfaces.
 
bool const_iterateInterfaces (const RefPtr< InterfaceIterationParameter > &IIP) const
 Constant iterator.
 
virtual RefPtr< InterfaceBasecreateInterface (const type_info &) const
 Virtual function which allows derived objects to create Interface objects on demand.
 
RefPtr< InterfaceBasefindInterface (const type_info &t) const
 Find a certain interface of specified type. More...
 
RefPtr< InterfaceBasegetInterface (const type_info &t)
 Retrieve an interface object from a certain type. More...
 
template<class Data >
bool gotNewInterfaceData (const Data &D)
 Check whether data on the given interface have changed, and if so, set new data as interface.
 
template<class Data >
bool gotNewInterfaceData (const mutex &M, const Data &D)
 Check whether interface data have changed, if so, then set new interface data and return true.
 
template<class Data , typename Selector >
bool gotNewInterfaceData (const mutex &M, const Data &D)
 Check whether interface data have changed, if so, then set new interface data and return true.
 
template<class Data , typename Selector >
bool gotNewInterfaceData (const mutex &M, const Data &D, const Selector *S)
 Check whether interface data have changed, if so, then set new interface data and return true.
 
template<class Data , typename Selector >
bool gotNewInterfaceData (const mutex &M, const Data &D, const Selector &S)
 Check whether interface data have changed, if so, then set new interface data and return true.
 
template<class Data >
bool hasChangedInterfaceData (const Data &D) const
 Check whether interface data have changed.
 
template<class Data , typename Selector >
bool hasChangedInterfaceData (const Data &D) const
 Check whether interface data have changed.
 
template<class Data , typename Selector >
bool hasChangedInterfaceData (const Data &D, const Selector *) const
 Check whether interface data have changed.
 
template<class Data , typename Selector >
bool hasChangedInterfaceData (const Data &D, const Selector &) const
 Check whether interface data have changed.
 
bool hasInterface (const type_info &t) const
 Check if some Interface might exist. More...
 
 Intercube ()
 Constructor.
 
bool iterateInterfaces (const RefPtr< InterfaceIterationParameter > &IIP)
 Modifyable iterator.
 
void printInterfaces () const
 Debug function that prints the names of all interfaces.
 
void registerInterface (const type_info &t)
 Register an interface type; when the interface is actually required, the virtual createInterface() function will be called.
 
void removeInterface (const type_info &t)
 Remove an interface.
 
virtual ~Intercube ()
 Destructor.
 
- Public Member Functions inherited from MemCore::MutableName
void addNameChangeNotifier (const WeakPtrImpl< Notifier > &)
 Add a new listener.
 
std::string BaseName (const char Separator) const
 return the name of this item cropped anything after the Separator
 
const std::string & getName () const
 The name of the object.
 
 MutableName (const std::string &theName)
 Construct from text.
 
const std::string & Name () const
 The name of the object.
 
void rename (const std::string &newName)
 rename, same as setName()
 
void setName (const std::string &newName)
 Set a new name.
 
- Public Member Functions inherited from Wizt::VScriptable
RefPtr< VScriptFunctorfindFunctor (const string &name) const
 Find a functor.
 
RefPtr< VScriptFunctorinsertFunctor (const string &name, const RefPtr< VScriptFunctor > &)
 Insert a function call, eventually replaces a former call. More...
 
bool iterate (iterator &it)
 Iterate over all functors.
 
int nFunctors () const
 How many functors are available?
 
void removeFunctor (const string &name)
 Remove a functor.
 
- Public Member Functions inherited from Wizt::VTraceRequestID
bool addRequest (const VRequest &request)
 Returns false if there is already a request attached.
 
virtual bool hasRequest (const VRequest &request) const
 Check whether a request is just beeing handled.
 
- Public Member Functions inherited from Wizt::VSkale
virtual ~VSkale ()=0
 Destructor, does nothing.
 
- Public Member Functions inherited from Wizt::VTransformable
string getTransformationShaderFunctions (VRenderContext &Context) const
 Provide GLSL shader functions as provided by a transformation operator, if such is attached.
 
RefPtr< BoundingBoxshadedVolume (const RefPtr< ValuePool > &Context, const RefPtr< BoundingBox > &VerticesBBox) const
 apply the transform operator to the given bounding box.
 
- Public Member Functions inherited from Wizt::StatusIndicator
bool setStatusCritical (const RefPtr< ValuePool > &Context, const string &what) const
 Same as setStatusError() but with an annoying popup message.
 
bool setStatusError (const RefPtr< ValuePool > &Context, const string &what, bool AnnouncePublic=false) const
 Indicate an error happening to this object. More...
 
bool setStatusInfo (const RefPtr< ValuePool > &Context, const string &what) const
 Set the status info text for the given object, relative to the given context. More...
 
bool setStatusWarning (const RefPtr< ValuePool > &Context, const string &what) const
 Indicate an informative warning message happening to this object.
 
 StatusIndicator (VObject *what, const string &initialtext="", int EL=0, const string &statusslotname=Slotname)
 Constructor. More...
 
virtual ~StatusIndicator ()
 Destructor, virtual, such that dynamic type information is possible.
 
bool resetBBox (const RefPtr< ValuePool > &S) const
 Set the bounding box of the current object to an empty state, i.e. More...
 
void embrace (const RefPtr< ValuePool > &VP, const point_t &crd) const
 Include a certain coordinate point to the current bounding box, i.e. More...
 
void closeBBox (const RefPtr< ValuePool > &VP) const
 When new points have been added to a bounding box and the process of expansion is finished (such as after some rendering), then the bounding box has to be "closed" which means to do some computations of internal values. More...
 
bool safe_render (VRenderContext &Context, double Z=0, double dZ=-1) const override
 Catch exceptions and set the object status accordingly.
 

Additional Inherited Members

- Public Types inherited from Wizt::VEnvironmentRenderObject
typedef
::Eagle::PhysicalSpace::point 
point
 Convenience typedefs, useful in subclasses.
 
- Public Types inherited from Wizt::VObject
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. More...
 
template<int I>
using Empty = VConnectable::Empty< I >
 Shortcut typedef to be used in construction of empty slots.
 
enum  HelpType {
  PlainText, HelpURL, HTMLText, ShortText,
  ShortHTMLText
}
 Parameter types for the help() function which may provide information about the current object. More...
 
enum  status
 
using ChildIterator = OutputObjectIterator
 
- Public Types inherited from MemCore::ReferenceBase< VManagedObjectBase >
using reference_domain_t = VManagedObjectBase
 The type of the base class.
 
using SelfPtr_t = WeakPtrImpl< VManagedObjectBase, VManagedObjectBase >
 Type for a pointer to this object itself.
 
- Public Types inherited from Wizt::VSlotContainer<>
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. More...
 
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 { , DestParameterNotFound = -4 , InvalidDestParameter = -2 }
 
- Public Types inherited from Wizt::VManagedDomainObject< VObject >
typedef VObject Domain_t
 The domain type of this managed object.
 
- Public Types inherited from Wizt::RenderNamespace
enum  GeometryInputType
 Input type for geometry shaders.
 
enum  GeometryOutputType
 Output type for geometry shader.
 
using glsl = std::string
 An alias name for strings such that the return value of functions providing GLSL code can be spotted easier.
 
enum  Primitive {
  POINTS, LINE_STRIP, LINE_LOOP, LINES,
  TRIANGLE_STRIP, TRIANGLE_FAN, TRIANGLES, QUAD_STRIP,
  QUADS, POLYGON
}
 Enumeration type for primitives, similar to OpenGL (but numerically not identical). More...
 
enum  TextureFormat
 Enum for the type of texture to be used, implying the number of color channels and their meaning.
 
enum  VertexAttributeTypes {
  COORDINATES, NORMALS, COLORS, SECONDARY_COLORS,
  TEXTURE0, TEXTURE1, USER_DEFINED
}
 Categories of vertex attributes. More...
 
- Static Public Member Functions inherited from Wizt::RenderAble
static const char * VisibilitySlotName ()
 The name of the slot indicating visibility. More...
 
- Static Public Member Functions inherited from Wizt::VObject
static VAcceptInfoList_t accept (const VObjectPtr &vobj)
 A static function used by the associated creator to determine whether an object of this type may use an given object as input parameter. More...
 
static string createChildname (const string &parent_name)
 A static function that is used to create an object's name of this type, when it is created from some parent object. More...
 
static bool remove (const string &s)
 remove an object of the given name from the object database
 
static int findOutputObjects (const type_info &Type, OutputObjectIterator &GOutputs)
 Find all objects that implement a certain output type.
 
- 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. More...
 
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. More...
 
- Static Public Member Functions inherited from Wizt::VSlotContainer<>
static const char * AttachErrorCodeMessage (AttachErrorCode)
 Given an error code from one of the attach() functions, return some textual description. More...
 
static bool attachParameter (const RefPtr< VParameter > &theProvidedParam, const WeakPtr< VSlot > &theDestSlot, const string &theMember)
 Need to verify whether the Member parameter is necessary... More...
 
- Static Public Member Functions inherited from Wizt::ValueCacheable
static ValueCacheconsider (MemCore::Intercube &IC, const WeakPtr< VSlot > &VS, const RefPtr< ValuePool > &Context)
 Make a note that the given Intercube will depend on the given slots' value and uses the value as retrieved from the given context. More...
 
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 Member Functions inherited from Wizt::VSaveable
static VSaveableGlobalState ()
 A global saveable object that is supposed to take care of the entire VISH state. More...
 
- Static Public Member Functions inherited from Wizt::VManagedDomainObject< VObject >
static RefPtr< VManagedObjectfind (const string &s)
 Find an object with a certain name.
 
static int iterate (VManagedObjectIterator_t &VIt, int p_start=INT_MIN, int p_end=INT_MAX)
 Iterate through all objects within a given priority range.
 
static bool remove (const std::string &s)
 Remove an compatible object given its name.
 
static int size ()
 Tell us how many object of this domain exist.
 
static int traverse (VManagedObjectIterator &VIt, int p_start=INT_MIN, int p_end=INT_MAX)
 Iterate through all objects within a given priority range.
 
- Static Public Member Functions inherited from Wizt::VManagedObject
static int count ()
 How many objects reside in the domain database at all?
 
static VManagedObjectPtr find (const type_info &, const std::string &s)
 Find a certain managed object by its name.
 
static bool InitDomain (const type_info &)
 An initialization function.
 
static int iterateModules (ModuleIterator &VIM)
 Iterate over all modules which have put objects into the object database so far.
 
static int size (const type_info &)
 How many objects reside in the domain database for a certain type?
 
static int traverse (const type_info &, VManagedObjectIterator &VIt, int p_start, int p_end)
 Iterate through a domain for certain levels. More...
 
static void UnloadVModule (const string &what, VRemoveItem &RI)
 Unload a certain module.
 
- Static Public Member Functions inherited from MemCore::MutableName
static std::string BaseName (const std::string &theName, const char Separator)
 return the name of this item cropped anything after the Separator More...
 
- Public Attributes inherited from Wizt::VEnvironmentRenderObject
VOutput< VCameraSetPtrmyCameraSet
 An optional set of suggested camera settings.
 
- Public Attributes inherited from Wizt::RenderAble
out< double > outRenderTimeContribution
 Contribution of this object's rendering time to the overall scene. If the render precision is smaller than 1.0 and this value is large, then this object should really do something to become faster.
 
in< bool > Visibility
 Object visibility.
 
- Public Attributes inherited from Wizt::VObject
string UserInfo
 An arbitrary text that can be used to store any kind of context information about this object which may be helpful for instance in a graphical user interface. More...
 
- Public Attributes inherited from Wizt::StatusIndicator
VOutput< VObjectStatusStatusInfo
 The exported slot.
 
- Static Public Attributes inherited from Wizt::VObject
static constexpr char NameSeparator = C0::RS
 The control character used to separate entities of VObject when constructing object names from existing objects.
 
static constexpr char SlotNameSeparator = C0::US
 The control character used to separate entities of VObject from slot names.
 
- Static Public Attributes inherited from Wizt::VManagedObject
static string CurrentLoadModule
 The name of the current shared library/DLL/plugin which provides the code of the currently loaded objects. More...
 
- Static Public Attributes inherited from Wizt::StatusIndicator
static const char Slotname [] = "status"
 The name of the slot that will be used for this status.
 
- Protected Types inherited from Wizt::VObject
typedef bool(* UpdateFunction )(VObject *, VRequest &, double precision)
 Update function pointers which may be used to ensure being called base classes also when a derived class fully overloads the update() function itself. More...
 
- Protected Member Functions inherited from Wizt::RenderAble
 RenderAble (const string &name, int p, const RefPtr< VCreationPreferences > &VP)
 constructor, does nothing.
 
virtual ~RenderAble ()=0
 virtual destructor
 
- Protected Member Functions inherited from Wizt::VObject
void insertUpdateFunction (const UpdateFunction UF)
 
virtual bool update (VRequest &, double precision=1.0)
 Virtual update function that implements some heavy action on the object. More...
 
virtual bool must_update (const VRequest &, double precision) const
 
virtual bool unsychronized_update (VRequest &VR, double precision)
 Virtual function that is called without synchronization of the object mutex. More...
 
- Protected Member Functions inherited from MemCore::ReferenceBase< VManagedObjectBase >
virtual void extremeUnction ()
 A virtual function that will be called just before the object is destroyed. More...
 
ReferenceBaseoperator= (const ReferenceBase &R)
 Protected assignment operator (should not be called). More...
 
virtual ~ReferenceBase ()
 Virtual destructor.
 
- Protected Member Functions inherited from Wizt::VSlotContainer<>
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. More...
 
- Protected Attributes inherited from Wizt::VObject
MemCore::Counter UpdateCounter
 A counter telling if this object is currently being updated. More...
 
MemCore::Counter RequestCounter
 A counter telling if this object is currently being under a request. More...
 

Detailed Description

Base class for objects that implement a drawing routine.

Child classes are supposed to override the render() member function. Note that this member function is not allowed to modify the object itself during rendering. This is to enable multithreaded rendering. All information that may be influenced by the rendering process must be stored in the VRenderContext.

Note
The bounding box retrieval interface is not yet finished as open questions remain. In particular, as the bounding box of an object may be relative to a local context, the question is how to compute it, if it depends on other input object. At the moment, this issue is left to the virtual getBoundings() procedure, but it might make sense to employ the standard request() operation here. But if so, we also need to make sure that the update() function is called when an input is younger with respect to the bounding box computation. This "with respect to" requirement is the complex aspect here, because it would require to make all Age() variables of a VObject to be dependent on a Request's tasklist. Which maybe is a good idea, maybe not. In any case, it will complicate things.
Examples:
ComputeGridStreamLines.cpp, ComputeMultiStreamLines.cpp, DemoSphere.cpp, and PointSprite.cpp.

Member Function Documentation

void Wizt::VRenderObject::closeBBox ( const RefPtr< ValuePool > &  VP) const

When new points have been added to a bounding box and the process of expansion is finished (such as after some rendering), then the bounding box has to be "closed" which means to do some computations of internal values.

These internal values are used to speed of some operations on bounding boxes, in particular, it will compute the corresponding bounding ball.

Referenced by Cal3DMeshRenderer::update().

void Wizt::VRenderObject::embrace ( const RefPtr< ValuePool > &  VP,
const point_t crd 
) const

Include a certain coordinate point to the current bounding box, i.e.

the current bounding box will be enlarged to cover this point. Note that before adding points, the bounding box needs to be reset first if it eventually was set by some former, independent rendering.

Referenced by Cal3DMeshRenderer::update().

RefPtr< BoundingBall > Wizt::VRenderObject::getBoundingBall ( const RefPtr< ValuePool > &  VP) const
overridevirtual

Retrieve the bounding volume of the object.

By default, it reads out the interface of the local VObject::State object.

Reimplemented from Wizt::RenderAble.

Reimplemented in Wizt::MSDeferredObjectDisplay.

Referenced by Cal3DMeshRenderer::update().

bool Wizt::VRenderObject::resetBBox ( const RefPtr< ValuePool > &  S) const

Set the bounding box of the current object to an empty state, i.e.

it is undefined yet.

Note
In general, it is much more efficient to set the bounding box directly using setBoundingBall(), if it is known. However, if that is not the case and the bounding volume has to be computed anyway, this can be done by adding specific points to the current state. A possible approach is to do so during rendering, i.e. feeding all glVertex() calls to the embrace() function. However, while this were exact, it is not a recommended practice, because the embrace() function costs performance. It should be called only for few, but key points. A disadvantage of calling embrace() during rendering of glVertex() is that the first rendering might not yet have the correct bounding box, only subsequent ones.

Referenced by Cal3DMeshRenderer::update().

void Wizt::VRenderObject::setBoundingBall ( const RefPtr< ValuePool > &  VP,
const RefPtr< BoundingBall > &  BS 
) const

Set a bounding volume to the object's local context-relative state in a manner such that it can be retrieved by the default implementation of getBoundingBall().

If getBoundingBall() was overridden in a child class, this function might be useless.

Referenced by Cal3DMeshRenderer::update(), and Wizt::MSDeferredObjectDisplay::update().