ImFusion C++ SDK 4.4.0
ImFusion::ImageMath::internal::ArrayGl< ImplType > Class Template Reference

#include <ImFusion/ImageMath/OpenGL/ArrayGl.h>

Implementation of GlExprInterface for Array (. More...

Inheritance diagram for ImFusion::ImageMath::internal::ArrayGl< ImplType >:

Detailed Description

template<typename ImplType>
class ImFusion::ImageMath::internal::ArrayGl< ImplType >

Implementation of GlExprInterface for Array (.

See also
Array for more details)

Public Member Functions

std::string evalString (bool tagAndAssign=true) const override final
 Print expression.
void tagAndAssignNames (std::unordered_map< internal::TaggingIndex, const void * > &taggedLeaves, std::unordered_map< std::type_index, int > &countPerLeafType, const std::string &prefix) const override final
 We need to tag leaves and tell unique leaves that they are responsible to define the uniforms and set the shader arguments.
void getUniformDefinitionList (std::string &definitionList, const std::vector< int > &indices, const std::string &prefix) const override final
 Collect uniform/sampler definitions.
void getVariableDefinitionList (std::string &definitionList, const std::vector< int > &indices, const std::string &prefix) const override final
 Collect variable definitions.
int setArguments (GL::Program &p, const std::vector< int > &indices, const std::string &prefix) const override final
 Set uniform/sampler arguments.
bool assignGl (const internal::GlExprInterface &expr)
 Evaluates expression into this ArrayGl on the GPU.
std::vector< internal::GlExprInterface * > children () override final
 Used for traversing the expression tree. Contains the immediate children of node.
std::vector< const internal::GlExprInterface * > children () const override final
 Used for traversing the expression tree. Contains the immediate children of node.
bool setMagFilter (ImageMath::MagFilter m) override final
 Set interpolation behaviour of the current leaf (only).
bool setWrap (ImageMath::Wrap w) override final
 Set interpolation behaviour of the current leaf (only).
Public Member Functions inherited from ImFusion::ImageMath::internal::GlExprInterface
ExprInterfaceexprInterface ()
 Get image descriptor of the wrapped expression.
const ExprInterfaceexprInterface () const
bool setMagFilterRecursive (ImageMath::MagFilter mag)
 Set interpolation behaviour of the current leaf and all of its children.
bool setWrapRecursive (ImageMath::Wrap wrap)
 Set wrap behaviour of the current leaf and all of its children.

Member Function Documentation

◆ evalString()

template<typename ImplType>
std::string ImFusion::ImageMath::internal::ArrayGl< ImplType >::evalString ( bool tagAndAssign = true) const
finaloverridevirtual

Print expression.

Implements ImFusion::ImageMath::internal::GlExprInterface.

◆ tagAndAssignNames()

template<typename ImplType>
void ImFusion::ImageMath::internal::ArrayGl< ImplType >::tagAndAssignNames ( std::unordered_map< internal::TaggingIndex, const void * > & taggedLeaves,
std::unordered_map< std::type_index, int > & countPerLeafType,
const std::string & prefix ) const
finaloverridevirtual

We need to tag leaves and tell unique leaves that they are responsible to define the uniforms and set the shader arguments.

The names for uniforms and variables will also be assigned during this stage

Implements ImFusion::ImageMath::internal::GlExprInterface.

◆ getUniformDefinitionList()

template<typename ImplType>
void ImFusion::ImageMath::internal::ArrayGl< ImplType >::getUniformDefinitionList ( std::string & definitionList,
const std::vector< int > & indices,
const std::string & prefix ) const
finaloverridevirtual

Collect uniform/sampler definitions.

Implements ImFusion::ImageMath::internal::GlExprInterface.

◆ getVariableDefinitionList()

template<typename ImplType>
void ImFusion::ImageMath::internal::ArrayGl< ImplType >::getVariableDefinitionList ( std::string & definitionList,
const std::vector< int > & indices,
const std::string & prefix ) const
finaloverridevirtual

Collect variable definitions.

Implements ImFusion::ImageMath::internal::GlExprInterface.

◆ setArguments()

template<typename ImplType>
int ImFusion::ImageMath::internal::ArrayGl< ImplType >::setArguments ( GL::Program & p,
const std::vector< int > & indices,
const std::string & prefix ) const
finaloverridevirtual

Set uniform/sampler arguments.

Implements ImFusion::ImageMath::internal::GlExprInterface.

◆ assignGl()

template<typename ImplType>
bool ImFusion::ImageMath::internal::ArrayGl< ImplType >::assignGl ( const internal::GlExprInterface & expr)

Evaluates expression into this ArrayGl on the GPU.

Parameters
exprExpression to evaluate.
Returns
true if the assignment was successful.
Note
Only implemented for SharedImage.

◆ children() [1/2]

template<typename ImplType>
std::vector< internal::GlExprInterface * > ImFusion::ImageMath::internal::ArrayGl< ImplType >::children ( )
inlinefinaloverridevirtual

Used for traversing the expression tree. Contains the immediate children of node.

Implements ImFusion::ImageMath::internal::GlExprInterface.

◆ children() [2/2]

template<typename ImplType>
std::vector< const internal::GlExprInterface * > ImFusion::ImageMath::internal::ArrayGl< ImplType >::children ( ) const
inlinefinaloverridevirtual

Used for traversing the expression tree. Contains the immediate children of node.

Implements ImFusion::ImageMath::internal::GlExprInterface.

◆ setMagFilter()

template<typename ImplType>
bool ImFusion::ImageMath::internal::ArrayGl< ImplType >::setMagFilter ( ImageMath::MagFilter mag)
inlinefinaloverridevirtual

Set interpolation behaviour of the current leaf (only).

Returns
true if the interpolation mode changed

Reimplemented from ImFusion::ImageMath::internal::GlExprInterface.

◆ setWrap()

template<typename ImplType>
bool ImFusion::ImageMath::internal::ArrayGl< ImplType >::setWrap ( ImageMath::Wrap wrap)
inlinefinaloverridevirtual

Set interpolation behaviour of the current leaf (only).

Returns
true if the interpolation mode changed

Reimplemented from ImFusion::ImageMath::internal::GlExprInterface.


The documentation for this class was generated from the following file:
  • ImFusion/ImageMath/OpenGL/ArrayGl.h
Search Tab / S to search, Esc to close