template<typename Op>
class ImFusion::ImageMath::internal::UnaryOp< Op >
Specialization of ExprBase for unary operators (non template optimization)
- Template Parameters
-
| Op | A struct representing a unary expression examples can be found in SharedImageSetArithmeticOperators.h |
Example for Op:
struct unaryAbs
{
template <typename OperandT>
IMFUSION_STRONG_INLINE OperandT operator()(OperandT operand) const
{
if (operand < OperandT(0))
return -operand;
else
return operand;
}
{
str += "abs(";
str += operandStr;
str += ")";
return str;
}
};
|
|
| UnaryOp (std::shared_ptr< ExprBase > operand, const Op &func=Op()) |
| |
| std::unique_ptr< ExprBase > | clone () const override |
| | Clone the current expression. May not return nullptr.
|
| |
| std::unique_ptr< ExprBase > | substituteVariableWithImg (const SharedImage &variable) const override |
| |
| std::unique_ptr< ExprBase > | substituteVariableWithImg (const SharedImageSet &variable) const override |
| | Substitute all variables with variable.
|
| |
| void | evalImpl (Array< SharedImage, void > &img) const override |
| |
| void | evalImpl (Array< SharedImageSet, void > &img) const override |
| | Implementation functionality used in eval()
|
| |
| std::unique_ptr< ExprBase > | convertToSharedImgExpr (std::size_t index) const override |
| | Convert a SharedImageSet expression to a SharedImage expression.
|
| |
| int | numImgs () const override |
| | Return number of images of this expression.
|
| |
| ExprType | exprType () const override |
| | Return the ImFusion image type, i.e. NoImage, SharedImage, SharedImageSet.
|
| |
| DeviceStrategy | deviceStrategy () const override |
| | Return DeviceStrategy of this expression.
|
| |
| GlExprInterface & | operand () override |
| |
| const GlExprInterface & | operand () const override |
| |
| const ImgOps::UnaryImgOpGl & | op () const override |
| |
|
ImageDescriptor | imgDesc () const |
| | Return ImageDescriptor of the expression (forwards to the ExprInterface)
|
| |
|
int | numImgs () const |
| | Return the number of images of the expression (forwards to the ExprInterface)
|
| |
|
template<typename T, typename ImgType = void> |
| auto | evaluateIntoImage (bool clearShiftScale=false) const |
| | Evaluate expression into an image.
|
| |
| void | eval (Array< SharedImage, void > &img, const SharedImage *variable) const |
| |
|
void | eval (Array< SharedImage, void > &img) const |
| | Evaluate into SharedImage.
|
| |
|
void | eval (Array< SharedImageSet, void > &img, const SharedImageSet *variable) const |
| | Evaluate into SharedImageSet. Variable leafs will be substituted with variable.
|
| |
|
void | eval (Array< SharedImageSet, void > &img) const |
| | Evaluate into SharedImageSet.
|
| |
|
internal::GlExprInterface & | glExprInterface () |
| |
|
const internal::GlExprInterface & | glExprInterface () const |
| |
|
ExprInterface & | exprInterface () |
| |
|
const ExprInterface & | exprInterface () const |
| |
| template<typename Op> |
| reduction_type | reduce (std::vector< vec4i > *arg=nullptr) const |
| |
|
std::unique_ptr< ExprBase > | forceCPU () const |
| | Forces CPU execution.
|
| |
|
std::unique_ptr< ExprBase > | forceGPU () const |
| | Forces GPU execution.
|
| |
| std::unique_ptr< ExprBase > | channelSwizzle (const std::vector< std::size_t > &indices) const |
| |
|
template<typename CastT> |
| std::unique_ptr< ExprBase > | cast () const |
| |
|
| ADD_REDUCTION_OP_DEF (sum, add) |
| |
|
| ADD_REDUCTION_OP_DEF (prod, mult) |
| |
|
| ADD_ARG_REDUCTION_OP_DEF (min, min) |
| |
|
| ADD_ARG_REDUCTION_OP_DEF (max, max) |
| |
| Eigen::Matrix< double, Eigen::Dynamic, 1 > | mean () const |
| |
| Eigen::Matrix< double, Eigen::Dynamic, 1 > | l1Norm () const |
| |
| Eigen::Matrix< double, Eigen::Dynamic, 1 > | squaredl2Norm () const |
| |
| Eigen::Matrix< double, Eigen::Dynamic, 1 > | l2Norm () const |
| |
| Eigen::Matrix< double, Eigen::Dynamic, 1 > | lpNorm (double p) const |
| |
| Eigen::Matrix< double, Eigen::Dynamic, 1 > | lInfNorm () const |
| |
|
| UnaryOpBase (PixelType pixelType) |
| |
| ImageDescriptor | imgDesc () const override final |
| | Return ImageDescriptor of this expression. This reference is expected to remain the same while the class exists.
|
| |
| 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.
|
| |
| std::string | evalString (bool tagAndAssign=true) const override final |
| | Print expression.
|
| |
| std::vector< internal::GlExprInterface * > | children () override |
| | Used for traversing the expression tree. Contains the immediate children of node.
|
| |
| std::vector< const internal::GlExprInterface * > | children () const override |
| | Used for traversing the expression tree. Contains the immediate children of node.
|
| |
|
ExprInterface & | exprInterface () |
| | Get image descriptor of the wrapped expression.
|
| |
|
const ExprInterface & | exprInterface () const |
| |
| 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.
|
| |