![]() |
ImFusion C++ SDK 4.5.0
|
#include <ImFusion/ImageMath/OpenGL/GlExprInterface.h>
Base class for all expressions which provides an interface to automatically create shaders from an expression. More...
Base class for all expressions which provides an interface to automatically create shaders from an expression.
Public Member Functions | |
| virtual std::string | evalString (bool tagAndAssign=true) const =0 |
| Print expression. | |
| virtual void | tagAndAssignNames (std::unordered_map< internal::TaggingIndex, const void * > &taggedLeaves, std::unordered_map< std::type_index, int > &countPerLeafType, const std::string &prefix) const =0 |
| We need to tag leaves and tell unique leaves that they are responsible to define the uniforms and set the shader arguments. | |
| virtual void | getUniformDefinitionList (std::string &definitionList, const std::vector< int > &indices, const std::string &prefix) const =0 |
| Collect uniform/sampler definitions. | |
| virtual void | getVariableDefinitionList (std::string &definitionList, const std::vector< int > &indices, const std::string &prefix) const =0 |
| Collect variable definitions. | |
| virtual int | setArguments (GL::Program &p, const std::vector< int > &indices, const std::string &prefix) const =0 |
| Set uniform/sampler arguments. | |
| ExprInterface & | exprInterface () |
| Get image descriptor of the wrapped expression. | |
| const ExprInterface & | exprInterface () const |
| virtual std::vector< GlExprInterface * > | children ()=0 |
| Used for traversing the expression tree. Contains the immediate children of node. | |
| virtual std::vector< const GlExprInterface * > | children () const =0 |
| Used for traversing the expression tree. Contains the immediate children of node. | |
| virtual bool | setMagFilter (ImageMath::MagFilter mag) |
| Set interpolation behaviour of the current leaf (only). | |
| virtual bool | setWrap (ImageMath::Wrap wrap) |
| Set interpolation behaviour of the current leaf (only). | |
| 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. | |
|
pure virtual |
Print expression.
Implemented in ImFusion::ImageMath::internal::ArrayGl< ImplType >, ImFusion::ImageMath::internal::ArrayGl< Array< T, ImgType, BlockAccessEnabled > >, ImFusion::ImageMath::internal::BinaryOpGl, ImFusion::ImageMath::internal::CastWrapperGl, ImFusion::ImageMath::internal::ChannelReductionGl, ImFusion::ImageMath::internal::ChannelSwizzleViewGl, ImFusion::ImageMath::internal::ChannelWiseScalarGl< ImplType >, ImFusion::ImageMath::internal::ChannelWiseScalarGl< ChannelWiseScalar< T, Dim > >, ImFusion::ImageMath::internal::CombineChannelsGl, ImFusion::ImageMath::internal::CoordinatesGl, ImFusion::ImageMath::internal::DeformationLeafGl, ImFusion::ImageMath::internal::DeviceStrategyWrapperGl, ImFusion::ImageMath::internal::MaskLeafGl, ImFusion::ImageMath::internal::NoiseGl< ImplType >, ImFusion::ImageMath::internal::NoiseGl< Noise< imf_img_typeT, Scalar< float >, Scalar< float > > >, ImFusion::ImageMath::internal::PolyWrapper< ExprT >, ImFusion::ImageMath::internal::ResampleGl, ImFusion::ImageMath::internal::ScalarGl< ImplType >, ImFusion::ImageMath::internal::ScalarGl< Scalar< float > >, ImFusion::ImageMath::internal::ScalarGl< Scalar< T > >, ImFusion::ImageMath::internal::SelectGl, ImFusion::ImageMath::internal::StashGl, ImFusion::ImageMath::internal::UnaryOpGl, ImFusion::ImageMath::internal::VariableGl, and ImFusion::ImageMath::StringLeaf.
|
pure virtual |
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
Implemented in ImFusion::ImageMath::internal::ArrayGl< ImplType >, ImFusion::ImageMath::internal::ArrayGl< Array< T, ImgType, BlockAccessEnabled > >, ImFusion::ImageMath::internal::BinaryOpGl, ImFusion::ImageMath::internal::CastWrapperGl, ImFusion::ImageMath::internal::ChannelReductionGl, ImFusion::ImageMath::internal::ChannelSwizzleViewGl, ImFusion::ImageMath::internal::ChannelWiseScalarGl< ImplType >, ImFusion::ImageMath::internal::ChannelWiseScalarGl< ChannelWiseScalar< T, Dim > >, ImFusion::ImageMath::internal::CombineChannelsGl, ImFusion::ImageMath::internal::CoordinatesGl, ImFusion::ImageMath::internal::DeformationLeafGl, ImFusion::ImageMath::internal::DeviceStrategyWrapperGl, ImFusion::ImageMath::internal::MaskLeafGl, ImFusion::ImageMath::internal::NoiseGl< ImplType >, ImFusion::ImageMath::internal::NoiseGl< Noise< imf_img_typeT, Scalar< float >, Scalar< float > > >, ImFusion::ImageMath::internal::PolyWrapper< ExprT >, ImFusion::ImageMath::internal::ResampleGl, ImFusion::ImageMath::internal::ScalarGl< ImplType >, ImFusion::ImageMath::internal::ScalarGl< Scalar< float > >, ImFusion::ImageMath::internal::ScalarGl< Scalar< T > >, ImFusion::ImageMath::internal::SelectGl, ImFusion::ImageMath::internal::StashGl, ImFusion::ImageMath::internal::UnaryOpGl, ImFusion::ImageMath::internal::VariableGl, and ImFusion::ImageMath::StringLeaf.
|
pure virtual |
Collect uniform/sampler definitions.
Implemented in ImFusion::ImageMath::internal::ArrayGl< ImplType >, ImFusion::ImageMath::internal::ArrayGl< Array< T, ImgType, BlockAccessEnabled > >, ImFusion::ImageMath::internal::BinaryOpGl, ImFusion::ImageMath::internal::CastWrapperGl, ImFusion::ImageMath::internal::ChannelReductionGl, ImFusion::ImageMath::internal::ChannelSwizzleViewGl, ImFusion::ImageMath::internal::ChannelWiseScalarGl< ImplType >, ImFusion::ImageMath::internal::ChannelWiseScalarGl< ChannelWiseScalar< T, Dim > >, ImFusion::ImageMath::internal::CombineChannelsGl, ImFusion::ImageMath::internal::CoordinatesGl, ImFusion::ImageMath::internal::DeformationLeafGl, ImFusion::ImageMath::internal::DeviceStrategyWrapperGl, ImFusion::ImageMath::internal::MaskLeafGl, ImFusion::ImageMath::internal::NoiseGl< ImplType >, ImFusion::ImageMath::internal::NoiseGl< Noise< imf_img_typeT, Scalar< float >, Scalar< float > > >, ImFusion::ImageMath::internal::PolyWrapper< ExprT >, ImFusion::ImageMath::internal::ResampleGl, ImFusion::ImageMath::internal::ScalarGl< ImplType >, ImFusion::ImageMath::internal::ScalarGl< Scalar< float > >, ImFusion::ImageMath::internal::ScalarGl< Scalar< T > >, ImFusion::ImageMath::internal::SelectGl, ImFusion::ImageMath::internal::StashGl, ImFusion::ImageMath::internal::UnaryOpGl, ImFusion::ImageMath::internal::VariableGl, and ImFusion::ImageMath::StringLeaf.
|
pure virtual |
Collect variable definitions.
Implemented in ImFusion::ImageMath::internal::ArrayGl< ImplType >, ImFusion::ImageMath::internal::ArrayGl< Array< T, ImgType, BlockAccessEnabled > >, ImFusion::ImageMath::internal::BinaryOpGl, ImFusion::ImageMath::internal::CastWrapperGl, ImFusion::ImageMath::internal::ChannelReductionGl, ImFusion::ImageMath::internal::ChannelSwizzleViewGl, ImFusion::ImageMath::internal::ChannelWiseScalarGl< ImplType >, ImFusion::ImageMath::internal::ChannelWiseScalarGl< ChannelWiseScalar< T, Dim > >, ImFusion::ImageMath::internal::CombineChannelsGl, ImFusion::ImageMath::internal::CoordinatesGl, ImFusion::ImageMath::internal::DeformationLeafGl, ImFusion::ImageMath::internal::DeviceStrategyWrapperGl, ImFusion::ImageMath::internal::MaskLeafGl, ImFusion::ImageMath::internal::NoiseGl< ImplType >, ImFusion::ImageMath::internal::NoiseGl< Noise< imf_img_typeT, Scalar< float >, Scalar< float > > >, ImFusion::ImageMath::internal::PolyWrapper< ExprT >, ImFusion::ImageMath::internal::ResampleGl, ImFusion::ImageMath::internal::ScalarGl< ImplType >, ImFusion::ImageMath::internal::ScalarGl< Scalar< float > >, ImFusion::ImageMath::internal::ScalarGl< Scalar< T > >, ImFusion::ImageMath::internal::SelectGl, ImFusion::ImageMath::internal::StashGl, ImFusion::ImageMath::internal::UnaryOpGl, ImFusion::ImageMath::internal::VariableGl, and ImFusion::ImageMath::StringLeaf.
|
pure virtual |
Set uniform/sampler arguments.
Implemented in ImFusion::ImageMath::internal::ArrayGl< ImplType >, ImFusion::ImageMath::internal::ArrayGl< Array< T, ImgType, BlockAccessEnabled > >, ImFusion::ImageMath::internal::BinaryOpGl, ImFusion::ImageMath::internal::CastWrapperGl, ImFusion::ImageMath::internal::ChannelReductionGl, ImFusion::ImageMath::internal::ChannelSwizzleViewGl, ImFusion::ImageMath::internal::ChannelWiseScalarGl< ImplType >, ImFusion::ImageMath::internal::ChannelWiseScalarGl< ChannelWiseScalar< T, Dim > >, ImFusion::ImageMath::internal::CombineChannelsGl, ImFusion::ImageMath::internal::CoordinatesGl, ImFusion::ImageMath::internal::DeformationLeafGl, ImFusion::ImageMath::internal::DeviceStrategyWrapperGl, ImFusion::ImageMath::internal::MaskLeafGl, ImFusion::ImageMath::internal::NoiseGl< ImplType >, ImFusion::ImageMath::internal::NoiseGl< Noise< imf_img_typeT, Scalar< float >, Scalar< float > > >, ImFusion::ImageMath::internal::PolyWrapper< ExprT >, ImFusion::ImageMath::internal::ResampleGl, ImFusion::ImageMath::internal::ScalarGl< ImplType >, ImFusion::ImageMath::internal::ScalarGl< Scalar< float > >, ImFusion::ImageMath::internal::ScalarGl< Scalar< T > >, ImFusion::ImageMath::internal::SelectGl, ImFusion::ImageMath::internal::StashGl, ImFusion::ImageMath::internal::UnaryOpGl, ImFusion::ImageMath::internal::VariableGl, and ImFusion::ImageMath::StringLeaf.
|
pure virtual |
Used for traversing the expression tree. Contains the immediate children of node.
Implemented in ImFusion::ImageMath::internal::ArrayGl< ImplType >, ImFusion::ImageMath::internal::ArrayGl< Array< T, ImgType, BlockAccessEnabled > >, ImFusion::ImageMath::internal::BinaryOpGl, ImFusion::ImageMath::internal::CastWrapperGl, ImFusion::ImageMath::internal::ChannelReductionGl, ImFusion::ImageMath::internal::ChannelSwizzleViewGl, ImFusion::ImageMath::internal::ChannelWiseScalarGl< ImplType >, ImFusion::ImageMath::internal::ChannelWiseScalarGl< ChannelWiseScalar< T, Dim > >, ImFusion::ImageMath::internal::CombineChannelsGl, ImFusion::ImageMath::internal::CoordinatesGl, ImFusion::ImageMath::internal::DeformationLeafGl, ImFusion::ImageMath::internal::DeviceStrategyWrapperGl, ImFusion::ImageMath::internal::NoiseGl< ImplType >, ImFusion::ImageMath::internal::NoiseGl< Noise< imf_img_typeT, Scalar< float >, Scalar< float > > >, ImFusion::ImageMath::internal::PolyWrapper< ExprT >, ImFusion::ImageMath::internal::ResampleGl, ImFusion::ImageMath::internal::ScalarGl< ImplType >, ImFusion::ImageMath::internal::ScalarGl< Scalar< float > >, ImFusion::ImageMath::internal::ScalarGl< Scalar< T > >, ImFusion::ImageMath::internal::SelectGl, ImFusion::ImageMath::internal::StashGl, ImFusion::ImageMath::internal::UnaryOpGl, ImFusion::ImageMath::internal::VariableGl, ImFusion::ImageMath::MaskLeaf< OperandT >, and ImFusion::ImageMath::StringLeaf.
|
pure virtual |
Used for traversing the expression tree. Contains the immediate children of node.
Implemented in ImFusion::ImageMath::internal::ArrayGl< ImplType >, ImFusion::ImageMath::internal::BinaryOpGl, ImFusion::ImageMath::internal::CastWrapperGl, ImFusion::ImageMath::internal::ChannelReductionGl, ImFusion::ImageMath::internal::ChannelSwizzleViewGl, ImFusion::ImageMath::internal::ChannelWiseScalarGl< ImplType >, ImFusion::ImageMath::internal::CombineChannelsGl, ImFusion::ImageMath::internal::CoordinatesGl, ImFusion::ImageMath::internal::DeformationLeafGl, ImFusion::ImageMath::internal::DeviceStrategyWrapperGl, ImFusion::ImageMath::internal::NoiseGl< ImplType >, ImFusion::ImageMath::internal::PolyWrapper< ExprT >, ImFusion::ImageMath::internal::ResampleGl, ImFusion::ImageMath::internal::ScalarGl< ImplType >, ImFusion::ImageMath::internal::SelectGl, ImFusion::ImageMath::internal::StashGl, ImFusion::ImageMath::internal::UnaryOpGl, ImFusion::ImageMath::internal::VariableGl, ImFusion::ImageMath::MaskLeaf< OperandT >, and ImFusion::ImageMath::StringLeaf.
|
virtual |
Set interpolation behaviour of the current leaf (only).
Reimplemented in ImFusion::ImageMath::internal::ArrayGl< ImplType >, and ImFusion::ImageMath::internal::ArrayGl< Array< T, ImgType, BlockAccessEnabled > >.
|
virtual |
Set interpolation behaviour of the current leaf (only).
Reimplemented in ImFusion::ImageMath::internal::ArrayGl< ImplType >, and ImFusion::ImageMath::internal::ArrayGl< Array< T, ImgType, BlockAccessEnabled > >.
| bool ImFusion::ImageMath::internal::GlExprInterface::setMagFilterRecursive | ( | ImageMath::MagFilter | mag | ) |
Set interpolation behaviour of the current leaf and all of its children.
| bool ImFusion::ImageMath::internal::GlExprInterface::setWrapRecursive | ( | ImageMath::Wrap | wrap | ) |
Set wrap behaviour of the current leaf and all of its children.