|
Fish - FiberLib for VISH 0.3
Fish - The Fiber Bundle API for the Vish Visualization Shell
|
Base class for object that render data given on vertices. More...
#include <VertexRenderObject.hpp>
Public Types | |
| typedef Fiber::GridInspector< BundleProperty::Anything > | GridInspector |
| typedef ClusterState | VertexRenderState |
| typedef ClusterState | State |
| Public Types inherited from Wizt::VEnvironmentRenderObject | |
| typedef ::Eagle::PhysicalSpace::point | point |
| Public Types inherited from Wizt::VObject | |
| enum | HelpType |
| typedef void | AcceptableInputTypes |
| typedef VConnectable::Empty< I > | Empty |
| typedef std::function< bool(const RefPtr< VObject > &vobj, const VSlot &ChildConnection)> | VObjectIterator_f |
| Public Types inherited from MemCore::ReferenceBase< VManagedObjectBase > | |
| typedef Object | reference_domain_t |
| typedef WeakPtr< Object, Object > | SelfPtr_t |
| Public Types inherited from Wizt::VSlotContainer | |
| enum | AttachErrorCode |
| typedef void | AcceptableInputTypes |
| typedef VSlotSet | CreationSlots_t |
| typedef VSlot::Empty< I > | Empty |
| Public Types inherited from Wizt::VSaveable | |
| typedef std::function< bool(const string &s, VishSaver &VS)> | save_iterator |
| Public Types inherited from Wizt::VManagedDomainObject< VObject > | |
| typedef What | Domain_t |
| Public Types inherited from Wizt::RenderNamespace | |
| enum | GeometryInputType |
| enum | GeometryOutputType |
| enum | Primitive |
| enum | TextureFormat |
| enum | VertexAttributeTypes |
| typedef std::variant< int, float, double, unsigned, Eagle::FixedArray< int, 2 >, Eagle::FixedArray< float, 2 >, Eagle::FixedArray< double, 2 >, Eagle::FixedArray< int, 3 >, crd3f, Eagle::FixedArray< float, 3 >, crd3d, Eagle::FixedArray< double, 3 >, Eagle::FixedArray< int, 4 >, Eagle::FixedArray< float, 4 >, Eagle::FixedArray< double, 4 >, Eagle::Quadratic< 2, float >, Eagle::Quadratic< 3, float >, Eagle::Quadratic< 4, float >, vec3f_vector, crd3f_vector > | AnyUniform |
| typedef std::string | glsl |
| Public Types inherited from Wizt::VertexFieldCollection | |
| enum | { NumberOfInputFields = 1 } |
Public Member Functions | |
| RefPtr< VObject::State > | newState () const override |
| bool | update (VRequest &Context, double precision) |
| virtual callback | |
| VertexRenderObject (const string &name, int Q, const RefPtr< VCreationPreferences > &VP, int SelectionEL=5) | |
| Constructor. | |
| ~VertexRenderObject () | |
| destructor | |
| int | iterate (const RefPtr< ValuePool > &VP, FragmentCluster::Iterator &RFI) const |
| Execute an arbitary fragment cluster iterator over the fragments that are stored here. | |
| RefPtr< RenderBasin::Program > | newProgram (VRenderContext &Context) const |
| Optionally provide a shader program here. | |
| RefPtr< ValueSet > | CacheableVariables (const RefPtr< ValuePool > &Context) const |
| Return a set of variables for which the results shall be cached, i.e. | |
| bool | renderGL (VGLRenderContext &Context) const override |
| Implements the render() function and defers it to the FragmentPainter::renderFragments() function. | |
| Public Member Functions inherited from Wizt::VGLRenderObject | |
| bool | environment_render (VRenderContext &Context) const override |
| void | useVBO (VGLRenderContext &Context, const WeakPtr< VBO > &theVBO) const |
| VGLRenderObject (const string &name, int p, const RefPtr< VCreationPreferences > &VP) | |
| Public Member Functions inherited from Wizt::VRenderObject | |
| void | closeBBox (const RefPtr< ValuePool > &VP) const |
| void | embrace (const RefPtr< ValuePool > &VP, const point &crd) const |
| RefPtr< BoundingBall > | getBoundingBall (const RefPtr< ValuePool > &VP) const override |
| bool | resetBBox (const RefPtr< ValuePool > &S) const |
| bool | safe_render (VRenderContext &Context, double Z=0, double dZ=-1) const override |
| void | setBoundingBall (const RefPtr< ValuePool > &VP, const RefPtr< BoundingBall > &BS) const |
| VRenderObject (const string &name, int p, const RefPtr< VCreationPreferences > &VP) | |
| Public Member Functions inherited from Wizt::VEnvironmentRenderObject | |
| void | announce (const string &name, const VCamera &ViewpointProperties, const RefPtr< ValuePool > &Context) const |
| void | getRenderPrecision (VRenderContext &Context, double &OverallPrecision, double &ThisContribution) const |
| VEnvironmentRenderObject (const string &name, int p, const RefPtr< VCreationPreferences > &VP) | |
| Public Member Functions inherited from Wizt::RenderAble | |
| virtual struct RenderTime | getLastRenderTime (VRenderContext &Context) const |
| virtual string | getSensorInfo (const RefPtr< ValuePool > &Context, const SensorView &theSensorView) |
| virtual RefPtr< BoundingBall > | getTouchableBoundingBall (const RefPtr< ValuePool > &VP) const |
| bool | isVisible (const RefPtr< ValuePool > &Context) const |
| Public Member Functions inherited from Wizt::VObject | |
| string | CreatorName () const |
| const WeakPtrVCreatorBase & | getCreator () const |
| virtual bool | request (VRequest &, double precision, const WeakVObjectPtr &ImmediateRequestor, const WeakVObjectPtr &RootRequestor) |
| bool | schedule (double precision, const RefPtr< ValuePool > &Context=nullptr) |
| void | enableRequestProcessing () |
| void | disableRequestProcessing () |
| bool | acceptsRequests () const |
| const MemCore::Counter & | UpdateCount () const |
| const MemCore::Counter & | RequestCount () const |
| VObject (const string &name, int p, const RefPtr< VCreationPreferences > &VP) | |
| virtual const GimpIcon * | gimp_icon () const |
| virtual const char *const * | xpm_icon () const |
| virtual string | qt_icon () const |
| virtual string | help (HelpType=HTMLText) const |
| bool | setObjectAsChild (const VObjectPtr &childVObject, const string &DependencySlotName) |
| double | requestTime () const |
| void | remove () |
| const RefPtr< VCreationPreferences > & | CreationPreferences () const |
| virtual std::string | type_key () const |
| void | iterateParents (VObjectIterator &VOI, int EL=0) const |
| int | iterateParents (const VObjectIterator_f &VOI, int EL=0) const |
| virtual string | CreateParameterName (const ParameterID &name) const |
| int | iterateChildren (ChildIterator &) const |
| int | findChildren (const Lambda &theLambda) const |
| std::list< std::vector< std::string > > | getProvenance () const |
| AttachErrorCode | attachNewObject (const RefPtr< VSlot > &slot, const string &name, const Intercube &CreationContext, const RefPtr< VCreationPreferences > &VCP=nullptr) |
| AttachErrorCode | attachNewObject (const RefPtr< VSlot > &slot, const string &name, const RefPtr< VCreationPreferences > &VCP=nullptr) |
| AttachErrorCode | attachInputObject (const RefPtr< VSlot > &slot, const string &name={}, const RefPtr< VCreationPreferences > &VCP=nullptr, bool ReallyUnique=true) |
| CreateConnectionResult_t | createChild (const VAcception &VA, const Intercube &CreationContext) |
| CreateConnectionResult_t | connectChild (const VObjectPtr &ChildObject, const RefPtr< VAcceptInfo > &VA) |
| CreateConnectionResult_t | connectAsChild (const VObjectPtr &ChildObject, const VAcception &VA) |
| virtual void | InputCreation (const RefPtr< VParameter > &CurrentObjectsInput, const VObjectPtr &NewlyCreatedObject, const RefPtr< VParameter > &TheNewObjectsOutputParameter) |
| VObjectPtr | createInput (const WeakPtrVCreatorBase &VCrec, const RefPtr< VSlot > &what, const string &name, Intercube &CreationContext) |
| VObjectPtr | extractSlot (const RefPtr< VSlot > &theSlot, const string &theNewName=string()) const |
| Public Member Functions inherited from MemCore::ReferenceBase< VManagedObjectBase > | |
| auto | getObjectCountID () const noexcept |
| bool | isIdentical (const WeakPtr< Object, Object > &PossibleSelf) const noexcept |
| void | mkAutoDestructive () |
| refcount_t | refcount () const noexcept |
| ReferenceBase (Object *that) noexcept | |
| const auto & | self () const |
| refcount_t | wrefcount () const noexcept |
| Public Member Functions inherited from Wizt::VConnectable | |
| virtual void | adjustConnections (const RefPtr< VSlot > &ChangedSlot, const RefPtr< VParameter > &par) |
| VSlotContainer::AttachErrorCode | attach (const ParameterID &whichone, VSlotContainer &sourceObject, const ParameterID &sourceName) |
| AttachErrorCode | attach (const RefPtr< VParameter > &OldParam, const RefPtr< VParameter > &NewParam, const string &Member={}) |
| AttachErrorCode | attachUniqueObject (const RefPtr< VParameter > ¶m, const RefPtr< VCreationPreferences > &VCP=NullPtr(), bool ReallyUnique=true) |
| AttachErrorCode | attachUniqueObject (const RefPtr< VSlot > &slot, const RefPtr< VCreationPreferences > &VCP=NullPtr(), bool ReallyUnique=true) |
| RefPtr< VSlot > | Connect (const RefPtr< VParameter > &SourceParam) |
| RefPtr< VSlot > | ConnectInterface (const RefPtr< VSlotContainer > &Provider, const RefPtr< InterfaceBase > &IB) |
| virtual bool | CreatedFilteredConnection (const RefPtr< VParameter > &SourceParam) |
| Public Member Functions inherited from Wizt::VSlotContainer | |
| Ageable & | age (const RefPtr< ValuePool > &VP) |
| const Ageable & | age (const RefPtr< ValuePool > &VP) const |
| const Ageable & | ConnectionAge () const |
| bool | ConnectionsHaveChanged (const RefPtr< ValuePool > &VP) const |
| bool | HasYoungerInput (const RefPtr< ValuePool > &Context, int RecursionLevel=0) const |
| Ageable | YoungestInput (const RefPtr< ValuePool > &Context) const |
| Ageable | YoungestOutput (const RefPtr< ValuePool > &Context) const |
| Ageable | YoungestUncachedInput (const RefPtr< ValuePool > &Context) const |
| bool | CheckIfThereExistNewerOutputs (const VRequest &request, bool AdjustObjectAge) const |
| RefPtr< VSlot > | addParameter (const ParameterID &name, int EL, const RefPtr< VParameter > ¶m, bool overwriteExistingSlot) |
| virtual bool | allowParameterReplacement (const RefPtr< VParameter > &NewParam, const RefPtr< VParameter > &OldParam, const string &localName, int ExpertLevel) |
| virtual int | connectSlots (const VSlotContainerPtr &vobj) |
| bool | removeParameter (const ParameterID &s) |
| RefPtr< VParameter > | getParameter (const ParameterID &s) const |
| RefPtr< VSlot > | getSlot (const ParameterID &s, int &EL) const |
| bool | setSlotValueFromText (const ParameterID &s, const string &ValueText, const RefPtr< ValuePool > &VP, const string &theMember={}) |
| RefPtr< VSlot > | findSlot (const RefPtr< VParameter > ¶m) const |
| string | getSlotName (const RefPtr< VParameter > ¶m) const |
| bool | AddAction (const ParameterID &s, const RefPtr< ValueActionBase > &VAB) |
| bool | AddAction (const RefPtr< VSlot > &ActionSlot, bool(DerivedObject::*Action)(const RefPtr< VValueBase > &value)) |
| RefPtr< VParameter > | mkUniqueParameterInput (const ParameterID &s, const string &ContainerName) |
| int | getExpertLevel (const ParameterID &s) const |
| int | setExpertLevel (const ParameterID &s, int EL) |
| int | getExpertLevel (const RefPtr< VParameter > &) const |
| int | getExpertLevel (const RefPtr< VSlot > &S) const |
| int | setExpertLevel (const RefPtr< VSlot > &S, int EL) |
| int | setExpertLevel (const RefPtr< VParameter > &s, int EL) |
| bool | hasChanged (const ParameterID &s, const RefPtr< ValuePool > &Context) const |
| bool | hasChanged (const RefPtr< VSlot > &, const RefPtr< ValuePool > &Context) const |
| bool | hasChanged (const RefPtr< ValuePool > &Context, int n,...) const |
| bool | hasChanged (RefPtr< ValuePool > Context,...) const |
| virtual bool | ignoreInput (const RefPtr< VSlot > &theSlot) const |
| bool | getParameterValue (Type &Variable, const ParameterID &s, const RefPtr< ValuePool > &VP) const |
| bool | getParameterValue (Type &Variable, const ParameterID &s, const VContext &C) const |
| bool | getParameterValue (Type &Variable, const ParameterID &s, const VRequest &R) const |
| bool | setParameterValue (const Type &Variable, const ParameterID &s, const RefPtr< ValuePool > &VP, bool autoCreateLocalValue) const |
| bool | setParameterValue (const Type &Variable, const ParameterID &s, VContext &C, bool autoCreateLocalValue) const |
| bool | setParameterValue (const Type &Variable, const ParameterID &s, VRequest &R, bool autoCreateLocalValue=false) const |
| RefPtr< VSlot > | addParam (const ParameterID &name, const Type &init, const RefPtr< VCreationPreferences > &VP=NullPtr(), int expertLevel=0, bool overwriteExistingSlot=true) |
| bool | setParameterProperty (const ParameterID ¶m, const string &Properties, const RefPtr< VValueBase > &Value=NullPtr()) |
| RefPtr< VSlot > | addFloatParam (double init, const ParameterID ¶m, double min, double max, const RefPtr< VCreationPreferences > &IP=NullPtr(), int expertLevel=0) |
| AttachErrorCode | attach (const RefPtr< VParameter > &OldParam, const RefPtr< VParameter > &NewParam, const string &Member={}) |
| int | iterateParameters (int expertLevel, VSlotIterator &VIIt) const |
| int | iterateInputSlots (int expertLevel, VSlotIterator &VIIt) const |
| int | iterateInputs (VSlotIterator &VIIt, int expertLevel=0) |
| int | iterate_inputs (const std::function< bool(VSlot &what, int ExpertLevel)>) const |
| RefPtr< VSlot > | getUniqueInputSlot (const type_info &what) |
| int | getNumberOfParameters (int expertLevel) const |
| virtual bool | implements (const type_info &what) const |
| virtual RefPtr< VParameter > | getImplementation (const type_info &what, const string &name={}, const string &member={}) const |
| RefPtr< VSlot > | getImplementationSlot (const type_info &what, const string &Name={}, const string &Member={}) const |
| VAcceptInfoList_t | getAcceptInfoList (const std::type_info &request_type) const |
| bool | provides (const RefPtr< VSlot > &OutputSlot) const |
| RefPtr< VSlot > | findOutputSlot (const RefPtr< VParameter > &Who) const |
| bool | isYounger (const RefPtr< VParameter > &OutputParam, const RefPtr< ValuePool > &VP) const |
| bool | isNewlyConnected (const RefPtr< VParameter > &Who, const RefPtr< ValuePool > &VP) const |
| bool | hasNewlyConnectedOutputs (const RefPtr< ValuePool > &VP) const |
| void | findNewlyConnectedOutputs (const RefPtr< ValuePool > &VP, VSlotSet &WhichOnes) const |
| RefPtr< VSlot > | getOutput (const string &Name) const |
| RefPtr< MemCore::StringList > | getOutputs (const type_info &what=typeid(void)) const |
| virtual int | iterateOutputs (VOutputIterator &VOut, const type_info &just_these=typeid(void)) const |
| bool | registerOutput (const RefPtr< VParameter > &P, const string &AsName={}) |
| bool | registerOutput (const RefPtr< VParameter > &P, const string &AsName, const type_info &MemberType, const string &UseMember) |
| bool | registerOutput (const RefPtr< VParameter > &P, const type_info &MemberType, const string &UseMember) |
| int | getNumberOfInputs () const |
| int | getNumberOfOutputs () const |
| bool | hasChangedSlots (const MemCore::Intercube &IC, const RefPtr< ValuePool > &Context) const |
| auto | include_self (const std::tuple< SlotList... > &t) const -> decltype(std::tuple_cat(std::make_tuple(this), t)) |
| Public Member Functions inherited from Wizt::VStateCreatorBase | |
| RefPtr< State > & | getState (const WeakPtr< ValuePool > &VP) const |
| RefPtr< InterfaceBase > | hasLocalInterface (const type_info &InterfaceType) const |
| RefPtr< State > | myState (const WeakPtr< ValuePool > &Context) const |
| void | setState (const WeakPtr< ValuePool > &, const RefPtr< State > &st) const |
| Public Member Functions inherited from Wizt::VSaveable | |
| void | addSaver (const string &, const RefPtr< VishSaver > &) |
| void | addSavers (AppClass &A) |
| bool | autosave () const |
| RefPtr< VishSaver > | getMostRecentSaver () const |
| size_t | getNumberOfSavers () const |
| RefPtr< VishSaver > | getSaver (const string &) const |
| RefPtr< VishSaver > | getSaverByExt (const string &ext) const |
| int | iterate_savers (const save_iterator &si) const |
| Public Member Functions inherited from Wizt::VManagedDomainObject< VObject > | |
| const type_info & | getDomainType () const override |
| void | remove () |
| VManagedDomainObject (const string &name, int priority=DEFAULT_PRIORITY) | |
| Public Member Functions inherited from Wizt::VManagedObject | |
| string | getLoadModule () const |
| void | insert (const string &s, int priority=DEFAULT_PRIORITY) |
| void | remove () |
| void | setPriority (int priority) |
| VManagedObject (const string &name, int priority=DEFAULT_PRIORITY) | |
| Public Member Functions inherited from MemCore::Intercube | |
| void | addInterface (const RefPtr< InterfaceBase > &I) const |
| void | addInterfaceData (const Data &D) |
| void | addInterfaceData (const Data &D) |
| void | clearInterfaces () |
| bool | const_iterateInterfaces (const RefPtr< InterfaceIterationParameter > &IIP) const |
| virtual RefPtr< InterfaceBase > | createInterface (const type_info &) const |
| RefPtr< InterfaceBase > | findInterface (const type_info &t) const |
| RefPtr< InterfaceBase > | getInterface (const type_info &t) |
| std::string | getInterfaceNames (const char delim=';') const |
| bool | gotNewInterfaceData (const Data &D) |
| bool | gotNewInterfaceData (mutex &M, const Data &D) |
| bool | gotNewInterfaceData (mutex &M, const Data &D) |
| bool | gotNewInterfaceData (mutex &M, const Data &D, const Selector &S) |
| bool | gotNewInterfaceData (mutex &M, const Data &D, const Selector *S) |
| bool | hasChangedInterfaceData (const Data &D) const |
| bool | hasChangedInterfaceData (const Data &D) const |
| bool | hasChangedInterfaceData (const Data &D, const Selector &) const |
| bool | hasChangedInterfaceData (const Data &D, const Selector *) const |
| bool | hasInterface (const type_info &t) const |
| bool | iterateInterfaces (const RefPtr< InterfaceIterationParameter > &IIP) |
| void | printInterfaces () const |
| void | registerInterface (const type_info &t) |
| void | removeInterface () |
| void | removeInterfaceBase (const type_info &InterfaceBaseID) |
| Public Member Functions inherited from MemCore::MutableName | |
| void | addNameChangeNotifier (const WeakPtr< Notifier > &) |
| std::string | BaseName (const char Separator) const |
| const std::string & | getName () const |
| MutableName (const std::string &theName) | |
| const std::string & | Name () const |
| void | rename (const std::string &newName) |
| void | setName (const std::string &newName) |
| Public Member Functions inherited from Wizt::VScriptable | |
| RefPtr< VScriptFunctor > | findFunctor (const string &name) const |
| RefPtr< VScriptFunctor > | insertFunctor (const string &name, const RefPtr< VScriptFunctor > &) |
| bool | iterate (iterator &it) |
| int | nFunctors () const |
| void | removeFunctor (const string &name) |
| Public Member Functions inherited from Wizt::VTraceRequestID | |
| bool | addRequest (const VRequest &request) |
| bool | hasRequest (const VRequest &request) const |
| Public Member Functions inherited from Wizt::VTransformable | |
| RenderBasin::glsl | getTransformationShaderFunctions (VRenderContext &Context) const |
| bool | initializeAnemoneTransformation (Anemone &RenderAnemone, VRenderContext &Context) const |
| RefPtr< BoundingBox > | shadedVolume (const RefPtr< ValuePool > &Context, const RefPtr< BoundingBox > &VerticesBBox) const |
| Public Member Functions inherited from Wizt::StatusIndicator | |
| bool | setStatusCritical (const RefPtr< ValuePool > &Context, const string &what) const |
| bool | setStatusError (const RefPtr< ValuePool > &Context, const string &what, bool AnnouncePublic=false) const |
| bool | setStatusInfo (const RefPtr< ValuePool > &Context, const string &what) const |
| bool | setStatusWarning (const RefPtr< ValuePool > &Context, const string &what) const |
| StatusIndicator (VObject *what, const string &initialtext="", int EL=0, const string &statusslotname=Slotname) | |
| Public Member Functions inherited from Wizt::Fish< Fiber::Slice > | |
| Fish (const string &time="time", const string ×cale="timescale") | |
| Constructor, uses the VObject from the virtual base class. | |
| ~Fish () | |
| Destructor. | |
| double | getTime (const RefPtr< ValuePool > &VP, const RefPtr< Fiber::Bundle > &SpaceTime) const override |
| Get the time value for the current selection from the value pool. | |
| Fiber::Bundle::GridInfo_t | findRecentGrid (Fiber::GridSelector &GS, const RefPtr< ValuePool > &VP) const |
| Public Member Functions inherited from Wizt::Fish< double > | |
| Fish () | |
| Default constructor. | |
| ~Fish () | |
| Destructor. | |
| bool | IterateLevels (LevelIterator &LI, const Fiber::Info< Fiber::Grid > &G, const RefPtr< ValuePool > &Context) const |
| Iterate over the diverse refinement levels of a Grid, which may exist at times different from the given coarsest grid. | |
| Public Member Functions inherited from Wizt::TimeDependent | |
| double | getTime (const RefPtr< ValuePool > &VP, double DefaultTime=0.0, const Range &DefaultRange=Range(0.0, 1.0)) const |
| const TypedSlot< VTime > & | getTimeSlot () const |
| void | setupTime (const VConnectable::CreationSlots_t &CreationSlots, bool CreateNewTimeObjectIfNoneExistent=true) |
| TimeDependent (const char *timename="time", const char *timescalename="timescale", const RefPtr< VCreationPreferences > &VP=NullPtr(), const VTime &VT=VTime(0.0, 0.0, 0.0)) | |
| Public Member Functions inherited from Wizt::Fish< Fiber::Skeleton > | |
| Fish (const string &max="AMRmaxlevel", const string &min="AMRminlevel", int ExpertLevel=3) | |
| Fish (int ExpertLevel, const string &max="AMRmaxlevel", const string &min="AMRminlevel") | |
| int | getMinRefinementLevel (const RefPtr< ValuePool > &VP) const override |
| The minimal refinement level. | |
| int | getMaxRefinementLevel (const RefPtr< ValuePool > &VP) const override |
| The maximal refinement level. | |
| Public Member Functions inherited from Wizt::FragmentPainter | |
| FragmentPainter (VObject *that, const string &fragmentselectorname="selection", int EL=5) | |
| Constructor, needs a VObject to initialize the slot driving the fragment selector. | |
| virtual string | FragmentSelectionField () const |
| Return the name of the field that will be responsible for the coordinates of the fields. | |
| virtual string | GLCacheField (const RefPtr< ValuePool > &Context) const |
| The name of the field that will be used for caching opengl VBO's at each of this fragments. | |
| virtual string | VBOCacheKey (const RefPtr< ValuePool > &Context) const |
| A child-class defined arbitrary string used to extend the cache modifier. | |
| virtual RefPtr< VBO::Renderer > | createRenderer (VGLRenderContext &Context, const RefPtr< MemBase > &FieldCoordinates, const RefPtr< FragmentSelector > &FS) const |
| Create a Renderer object for the VBO, which by default is a DrawArrays() renderer that emits points for each vertex. | |
| virtual void | updateRenderer (VGLRenderContext &Context, const RefPtr< VBO::Renderer > &R, const RefPtr< MemBase > &FieldCoordinates, const RefPtr< FragmentSelector > &FS) const |
| Update a renderer object, in case the fragment selector is newer. | |
| virtual Ageable | YoungestDependency (const RefPtr< ValuePool > &Context, const WeakPtr< Representation > &RefinementRep) const |
| Optional child class for specifying dependencies that may have changed and require re-creation of a cached VBO. | |
| virtual bool | appendOnDemandFragments (VGLRenderContext &Context, const RefPtr< VBO > &myVBO, int RefinementLevel, const WeakPtr< Representation > &RefinementRep, const RefPtr< FragmentID > &fragment_identifier, const Fiber::Fragment &FragmentData, const RefPtr< GLProgram > &Shader) const |
| Virtual function to allow derived classes to create data on demand, i.e. | |
| virtual void | setRendererParameters (VGLRenderContext &Context, const RefPtr< VBO::Renderer > &theRenderer, const RefPtr< CreativeArrayBase > &VertexCoordinates, const RefPtr< GLProgram > &theShaderProgram) const =0 |
| Given a Renderer, which usually is has been created by the createRenderer() virtual function, modify its parameters, depending on the context. | |
| virtual bool | FunctorsAreOlderThan (const Ageable &A, const RefPtr< ValuePool > &Context) const |
| virtual void | updateFromFunctorsAge (Ageable &A, const RefPtr< ValuePool > &Context) const |
| void | renderFragments (Fiber::FragmentCluster &FC, VGLRenderContext &Context, VGLRenderObject::UsedVBO_t &UsedVBO, const RefPtr< GLProgram > &myProgram) const |
| Render all the field fragments that are stored and available here. | |
| Public Member Functions inherited from Wizt::VertexFieldCollection | |
| VertexFieldCollection (VObject *that) | |
| Construct a collection of fields on the vertices of a Grid. | |
| ~VertexFieldCollection () | |
| Destructor. | |
| TypedSlot< Fiber::Field > & | insertVertexField (const string &s, const RefPtr< VertexField > &) |
| Add a vertex field under the given name. | |
| RefPtr< VertexField > & | operator[] (const string &s) |
| Retrieve a VertexField for the given name, create one, if required. | |
| RefPtr< VertexField > | operator() (const string &s) const |
| Search for a VertexField under the given name. | |
| Fiber::Info< Fiber::Skeleton > | getRefinementLevel (int Level, const RefPtr< ValuePool > &VP, int IndexDepth=0, const Fiber::BundlePtr &SpaceTime=Fiber::BundlePtr(NullPtr())) const override |
| Implementation of the virtual callback function that will load data sets from a grid into a collection of VertexFields, as specified earlier. | |
| virtual GridSelector | myGridSelector (const RefPtr< ValuePool > &VP) const |
| Virtual function that allows child classes to specify the Grid that shall be used. | |
| GridSelector | getGridSelector (const RefPtr< ValuePool > &VP) const override |
| Get the Grid that will be used here. | |
| void | retrieveFields (Fiber::FieldCollection &FieldMap, const RefPtr< Fiber::Representation > &MyRepresentation, const RefPtr< ValuePool > &Context, const RefPtr< Fiber::Skeleton > &DestVertices, Fiber::Grid &DestGrid, Fiber::Slice &DestGridSlice, const string &HelperDestGridName, bool StoreResult=true) |
| From the given Representation, retrieve all fields as required here into the provided Fieldmap. | |
| int | append (const RefPtr< VBO > &myVBO, const VertexFragment &VertexFragments, const RefPtr< GLProgram > &Shader) const |
| Append all the fields stored in these vertex fragments to the given vertex buffer object. | |
| bool | isOlderThan (const Ageable &A, const RefPtr< ValuePool > &Context) const |
| Check if all parameters in this collection of fields is older than the given age. | |
| void | updateAge (Ageable &A, const RefPtr< ValuePool > &Context) const |
| RefPtr< StringList > | getCurrentFieldnames (const RefPtr< ValuePool > &Context) const |
| Get a list of all currently selected fields. | |
| int | iterate (Iterator &It) const |
| Iterate through all available vertex fields. | |
| Public Member Functions inherited from Wizt::Fish< Fiber::Grid > | |
| Fish (const string &s="grid", int prior=2) | |
| Constructor, optionally pass a parameter of this grid's name (ie. | |
| virtual | ~Fish () |
| Destructor. | |
| void | registerGridAsOutput () |
| Make grid visible as output. | |
| Fiber::Bundle::GridInfo_t | findMostRecentGrid (GridSelector &GS, const RefPtr< ValuePool > &VP, const Fiber::BundlePtr &SpaceTime=Fiber::BundlePtr(NullPtr())) const |
| This is a convenience function to find the most recent grid for the current time ( Fish<Slice>() or virtual function getTime() ). | |
| Fiber::Bundle::GridInfo_t | findMostRecentGrid (const RefPtr< ValuePool > &VP, const Fiber::BundlePtr &SpaceTime=Fiber::BundlePtr(NullPtr())) const |
| Find the most recent grid for the current time ( Fish<Slice>() or virtual function getTime() ). | |
| bool | IterateLevelsOnMostRecentGrid (LevelIterator &LI, const RefPtr< ValuePool > &Context, const Fiber::BundlePtr &SpaceTime=Fiber::BundlePtr(NullPtr())) const |
| Iterate over all the selected levels of a Grid via an instance of the LevelIterator. | |
| RefPtr< Fiber::Field > | getField (const Fiber::FieldSelector &FS, const RefPtr< ValuePool > &VP, const Fiber::BundlePtr &SpaceTime=Fiber::BundlePtr(NullPtr())) |
| Retrieve a field for the given FieldSelector on the currently selected Grid. | |
| Public Member Functions inherited from Wizt::FloatOrigin | |
| RefPtr< Chunk< Eagle::point3 > > | computeShiftedCoordinates (const RefPtr< Chunk< Eagle::point3 > > &RawCoordinates, const Eagle::tvector3 &TranslationVector) const |
| VRenderContext::ModelViewState | getCoordinateTranslation (const VRenderContext &Context, Eagle::tvector3 &TranslationVector) const |
| VRenderContext::ModelViewState | getCoordinateTranslation (const VRenderContext &Context, Intercube &IC, Eagle::tvector3 &TranslationVector) const |
Additional Inherited Members | |
| Static Public Member Functions inherited from Wizt::RenderAble | |
| static const char * | VisibilitySlotName () |
| Static Public Member Functions inherited from Wizt::VObject | |
| static bool | remove (const string &s) |
| static int | findOutputObjects (const type_info &Type, OutputObjectIterator &GOutputs) |
| static string | createChildname (const string &parent_name) |
| static VAcceptInfoList_t | accept (const VObjectPtr &vobj) |
| static RefPtr< VParameter > | findUniqueOutputObject (const type_info &Type, const RefPtr< VCreationPreferences > &VCP, bool ReallyUnique, const VObject *NotThisOne) |
| Static Public Member Functions inherited from Wizt::VConnectable | |
| static bool | attachSlot (const WeakPtr< VSlot > &DestSlot, const RefPtr< VParameter > &ProvidedParam, const string &Member={}) |
| static bool | attachSlot (const WeakPtr< VSlot > &DestSlot, const RefPtr< VSlot > &SourceSlot, const string &Member={}) |
| static bool | detachSlot (const RefPtr< VSlot > &SourceSlot) |
| Static Public Member Functions inherited from Wizt::VSlotContainer | |
| static const char * | AttachErrorCodeMessage (AttachErrorCode) |
| static bool | attachParameter (const RefPtr< VParameter > &theProvidedParam, const WeakPtr< VSlot > &theDestSlot, const string &theMember={}) |
| Static Public Member Functions inherited from Wizt::ValueCacheable | |
| static ValueCache & | consider (MemCore::Intercube &IC, const WeakPtr< VSlot > &VS, const RefPtr< ValuePool > &Context) |
| static ValueCache & | getValueCache (MemCore::Intercube &IC) |
| static bool | hasChangedSlots (const WeakPtrToVSlotContainer &theSlotOwner, const MemCore::Intercube &IC, const RefPtr< ValuePool > &Context) |
| Static Public Member Functions inherited from Wizt::VSaveable | |
| static VSaveable & | GlobalState () |
| Static Public Member Functions inherited from Wizt::VManagedDomainObject< VObject > | |
| static RefPtr< VManagedObject > | find (const string &s) |
| static int | iterate (VManagedObjectIterator_t VIt, int p_start=INT_MIN, int p_end=INT_MAX) |
| static int | size () |
| static int | traverse (VManagedObjectIterator &VIt, int p_start=INT_MIN, int p_end=INT_MAX) |
| Static Public Member Functions inherited from Wizt::VManagedObject | |
| static int | count () |
| static VManagedObjectPtr | find (const type_info &, const std::string &s) |
| static bool | InitDomain (const type_info &) |
| static int | iterateModules (ModuleIterator &VIM) |
| static int | size (const type_info &) |
| static int | traverse (const type_info &, VManagedObjectIterator &VIt, int p_start, int p_end) |
| static void | UnloadVModule (const string &what, VRemoveItem &RI) |
| Static Public Member Functions inherited from MemCore::MutableName | |
| static std::string | BaseName (const std::string &theName, const char Separator) |
| Static Public Member Functions inherited from Wizt::FloatOrigin | |
| static VRenderContext::ModelViewState | getTranslationVector (const VRenderContext &Context, Intercube &IC, Eagle::tvector3 &TranslationVector, double CameraShiftThreshold) |
| static Eagle::tvector3 | getTranslationVector (Intercube &IC) |
| Public Attributes inherited from Wizt::VEnvironmentRenderObject | |
| VOutput< VCameraSetPtr > | myCameraSet |
| Public Attributes inherited from Wizt::RenderAble | |
| out< double > | outRenderTimeContribution |
| in< bool > | Visibility |
| Public Attributes inherited from Wizt::VObject | |
| HelpURL | |
| HTMLText | |
| PlainText | |
| ShortHTMLText | |
| ShortText | |
| std::string | whyupdate |
| string | UserInfo |
| Public Attributes inherited from Wizt::VSlotContainer | |
| AllLevels | |
| DestParameterNotFound | |
| InvalidDestParameter | |
| Public Attributes inherited from Wizt::RenderNamespace | |
| COLORS | |
| COORDINATES | |
| LINE_LOOP | |
| LINE_STRIP | |
| LINES | |
| NORMALS | |
| POINTS | |
| POLYGON | |
| TRIANGLE_STRIP | |
| TRIANGLE_FAN | |
| TRIANGLES | |
| QUAD_STRIP | |
| QUADS | |
| SECONDARY_COLORS | |
| TEXTURE0 | |
| TEXTURE1 | |
| USER_DEFINED | |
| Public Attributes inherited from Wizt::StatusIndicator | |
| VOutput< VObjectStatus > | StatusInfo |
| Public Attributes inherited from Wizt::Fish< Fiber::Skeleton > | |
| TypedSlot< int > | MinRefinementLevel |
| TypedSlot< int > | MaxRefinementLevel |
| Public Attributes inherited from Wizt::FragmentPainter | |
| TypedSlot< FragmentSelector > | MyFragmentSelector |
| The input slot for selecting fragments out of a collection of fragments. | |
| TypedSlot< int > | MyNumOfRefFragments |
| TypedSlot< Options > | MyOptions |
| TypedSlot< double > | tsFloatOriginThreshold |
| Public Attributes inherited from Wizt::VertexFieldCollection | |
| RefPtr< VertexField > | Positions |
| The coordinates are a field that will always be available here. | |
| Public Attributes inherited from Wizt::Fish< Fiber::Grid > | |
| TypedSlot< Fiber::Grid > | MyGrid |
| Static Public Attributes inherited from Wizt::VObject | |
| static constexpr char | NameSeparator |
| static constexpr char | SlotNameSeparator |
| Static Public Attributes inherited from Wizt::VManagedObject | |
| static string | CurrentLoadModule |
| Static Public Attributes inherited from Wizt::StatusIndicator | |
| static const char | Slotname [] |
| Static Public Attributes inherited from Wizt::TimeDependent | |
| static const char * | GlobalTimePreference |
| Protected Types inherited from Wizt::VObject | |
| typedef bool(* | UpdateFunction) (VObject *, VRequest &, double precision) |
| Protected Member Functions inherited from Wizt::RenderAble | |
| RenderAble (const string &name, int p, const RefPtr< VCreationPreferences > &VP) | |
| Protected Member Functions inherited from Wizt::VObject | |
| virtual bool | unsychronized_update (VRequest &VR, double precision) |
| Protected Member Functions inherited from MemCore::ReferenceBase< VManagedObjectBase > | |
| virtual void | extremeUnction () |
| ReferenceBase & | operator= (const ReferenceBase &R) |
| void | suicide () |
| Protected Member Functions inherited from Wizt::VSlotContainer | |
| virtual void | setup (const CreationSlots_t &CreationSlots) |
| Protected Member Functions inherited from Wizt::TimeDependent | |
| void | TimeSetup (const VConnectable::CreationSlots_t &CreationSlots) |
| Protected Attributes inherited from Wizt::VObject | |
| MemCore::Counter | UpdateCounter |
| MemCore::Counter | RequestCounter |
Base class for object that render data given on vertices.
This class takes care of shuffling data from a set a Fiber::Fields to the graphics card as a vertex array. In the constructor there only needs to be defined a mapping from Fiber::Fields to vertex arrays, which then can be used directly in a Shader, for instance via the Programmable class. The FragmentPainter base class takes care of setting up a Vertex Buffer Object (VBO) with the set of Fiber::Fields loaded as vertex arrays, possibly creating and calling multiple VBOs in case the field comes with fragmented data instead of contiguous arrays.
An example shuffing a scalar field of type double to the GPU is given by the following code snippet. An input port expecting a Fiber::Field of name "scalarfield" is setup, it expect data to be of type double. This will be load the scalar field's data as a one-dimensional texture coordinate for texture unit 0. It is stored internally via a "scalarvalues" identifier, which is not visible to GLGS code. In cases where not a pre-defined OpenGL type is used, such as an named array, this name will be expected to be an existing vertex array attribture in the GLGS code and the FragmentPainter will assign this array with the field data.
Rendering is performed by overloading FragmentPainter::createRenderer(), which by default performs an DrawArray() call. This might just be right for most cases, it will be sufficient for all cases where just points are drawn. Overloading it and replacing it by another kind of VBO::Renderer will be required if topological information among vertices is to be taken into account, such as when drawing lines or triangles.
To execute a specific GLGS shader program on each vertex overload the render() function, create a Program there, use it (Program::use()), and call the renderFragments() function. This code will use the same shader program with different vertex arrays, according to the Fragments of the Fiber::Field. Code will look like this:
Note that class Programmable provides convenience functions to create GLGS Shader Programs. It is adviseable to derive from this class, which reduces code size even further:
The above function still needs to implement the virtual functions of class Programmable. If the render object would make use of a geometry shader, then derive from class ProgrammableGeometry instead.
| Wizt::VertexRenderObject::VertexRenderObject | ( | const string & | name, |
| int | Q, | ||
| const RefPtr< VCreationPreferences > & | VP, | ||
| int | SelectionEL = 5 ) |
Constructor.
| name | The default name under which this object will be created. |
| Q | The object priority |
| VP | The Creation preferences |
| SelectionEL | Expert level of the fragment selector input |
References Wizt::FragmentPainter::FragmentPainter(), and Wizt::VGLRenderObject::VGLRenderObject().
Referenced by Wizt::SplatRenderObject::SplatRenderObject(), and Wizt::VertexGeometryShader::VertexGeometryShader().
|
virtual |
Return a set of variables for which the results shall be cached, i.e.
there resides an OpenGL object for each state of each of those variables. They are all kept in memory until the cache is full. A typical example are fields. So when the user switches from one field to another field, and back to the first one, the OpenGL object does not need to be recomputed again, but is retrieved from the Cache. A typical counter example is a floating point value, since that one has an infinite number of possibilities. And it is unlikely that a user will accidentally switch back to an old value of a float slider, thus caching relative to float values is not reasonable. It is still possible, however, and could make sense if float values are rounded.
A typical implementation of this function, assuming two slots "MyGrid" and "MyField") looks like this:
Reimplemented from Wizt::FragmentPainter.
|
inlineoverridevirtual |
Reimplemented from Wizt::VStateCreatorBase.
|
overridevirtual |
Implements the render() function and defers it to the FragmentPainter::renderFragments() function.
Implements Wizt::VGLRenderObject.
References Wizt::VStateCreatorBase::getState(), Wizt::VStateCreatorBase::myState(), MemCore::MutableName::Name(), newProgram(), and Wizt::FragmentPainter::renderFragments().
|
virtual |
virtual callback
Reimplemented from Wizt::VObject.
References apply(), Fiber::GridSelector::findMostRecentGrid(), Fiber::GridSelector::getBundle(), Fiber::GridSelector::getGridname(), Wizt::VertexFieldCollection::getGridSelector(), Wizt::Fish< Fiber::Slice >::getTime(), Wizt::Fish< double >::IterateLevels(), Wizt::VStateCreatorBase::myState(), Wizt::VRenderObject::resetBBox(), Wizt::VertexFieldCollection::retrieveFields(), Wizt::VRenderObject::setBoundingBall(), Wizt::StatusIndicator::setStatusError(), Wizt::StatusIndicator::setStatusInfo(), MemCore::DynPtr< class Object, class ObjectBase >::Speak(), and Wizt::String().