![]() |
ImFusion SDK 4.3
|
#include <ImFusion/ImageMath/Tpl/Coordinates.h>
ImageMath leaf for using world coordinates in ImageMath expressions. More...
Inheritance diagram for Coordinates< imf_img_typeT >:ImageMath leaf for using world coordinates in ImageMath expressions.
The resulting expression has either
Public Types | |
| using | expr_type = double |
| The expr_type value gives the result of each component of this expression. | |
| using | var_type = void |
| using | imf_img_type = imf_img_typeT |
Public Member Functions | |
| Coordinates (const std::vector< ImageDescriptorWorld > descWorld, CoordinateType coordType=CoordinateType::World, vec4 normal=vec4::Zero(), bool useNormal=false) | |
| Create a Coordinates constructor using vector of ImageDescriptorWorld objects. | |
| Coordinates (const ImageDescriptorWorld &descWorld, CoordinateType coordType=CoordinateType::World) | |
| Create a Coordinates constructor using ImageDescriptorWorld objects. | |
| Coordinates (const imf_img_type &referenceImage, CoordinateType coordType=CoordinateType::World) | |
Coordinates constructor using matrix from referenceImage The matrix is saved by this class, and hence changes to the pose of this image do not propagate to it. | |
| Coordinates (const imf_img_type &referenceImage, vec4 normal, CoordinateType coordType=CoordinateType::World) | |
Use texture to world matrix from image referenceImage The matrix is saved by this class, and hence changes to the pose of this image do not propagate to it. | |
| template<typename ImgT> | |
| auto | convertToMemImgExpr () const noexcept |
| auto | convertToSharedImgExpr (std::size_t index) const |
| IMFUSION_STRONG_INLINE expr_type | eval (const std::size_t, const vec4i &coord) const |
| CPU implementation. | |
| int | numImgs () const override |
| Return number of images of this expression. | |
| ImageMath::DeviceStrategy | deviceStrategy () const override |
| Return DeviceStrategy of this expression. | |
| ImageDescriptor | imgDesc () const override |
| Return ImageDescriptor of this expression. This reference is expected to remain the same while the class exists. | |
Public Member Functions inherited from ExprBaseTpl< Coordinates< imf_img_typeT > > | |
| const auto & | get () const |
| get a const reference to this with the actual type | |
| auto & | get () |
| get a reference to this with the actual type | |
| auto | polyWrapper () const |
| auto | uniquePolyWrapper () const |
| auto | sharedPolyWrapper () const |
| auto | binaryOp (const ExprBaseTpl< RhsT > &rhs, const Op &func=Op()) const |
| auto | binaryOp (RhsT rhs, const Op &func=Op(), typename std::enable_if< std::is_arithmetic_v< RhsT > >::type *=nullptr) const |
| auto | binaryOp (Eigen::Matrix< RhsT, Dim, 1, Options, MaxRows, MaxCols > rhs, const Op &func=Op(), typename std::enable_if< std::is_arithmetic_v< RhsT > >::type *=nullptr) const |
| auto | binaryOp (const ExprBaseTpl< RhsT > &rhs, const Op &func, const StringOp &stringFunc) const |
| auto | binaryOp (RhsT rhs, const Op &func, const StringOp &stringFunc, typename std::enable_if< std::is_arithmetic_v< RhsT > >::type *=nullptr) const |
| auto | binaryOp (Eigen::Matrix< RhsT, Dim, 1, Options, MaxRows, MaxCols > rhs, const Op &func, const StringOp &stringFunc, typename std::enable_if< std::is_arithmetic_v< RhsT > >::type *=nullptr) const |
| auto | unaryOp (const Op &func=Op()) const |
| auto | unaryOp (const Op &func, const StringOp &stringFunc) const |
| reduction_type | reduce (std::vector< vec4i > *arg=nullptr) const |
| auto | forceCPU () const |
| Forces CPU execution. | |
| auto | forceGPU () const |
| Forces GPU execution. | |
| auto | channelSwizzle (const std::vector< std::size_t > &indices) const |
| auto | head () |
| ADD_SPECIAL_SWIZZLE (x, {0}) | |
| ADD_SPECIAL_SWIZZLE (y, {1}) | |
| ADD_SPECIAL_SWIZZLE (z, {2}) | |
| ADD_SPECIAL_SWIZZLE (w, {3}) | |
| ADD_SPECIAL_SWIZZLE (r, {0}) | |
| ADD_SPECIAL_SWIZZLE (g, {1}) | |
| ADD_SPECIAL_SWIZZLE (b, {2}) | |
| ADD_SPECIAL_SWIZZLE (a, {3}) | |
| ADD_SPECIAL_SWIZZLE (xy, std::vector< size_t >({0, 1})) | |
| ADD_SPECIAL_SWIZZLE (rg, std::vector< size_t >({0, 1})) | |
| ADD_SPECIAL_SWIZZLE (xyz, std::vector< size_t >({0, 1, 2})) | |
| ADD_SPECIAL_SWIZZLE (xyzw, std::vector< size_t >({0, 1, 2, 3})) | |
| ADD_SPECIAL_SWIZZLE (rgb, std::vector< size_t >({0, 1, 2})) | |
| ADD_SPECIAL_SWIZZLE (rgba, std::vector< size_t >({0, 1, 2, 3})) | |
| auto | streamChannels (int numStreamedChannels) const |
| auto | substituteVariableWithImg (T &img) const |
| auto | operator- () const |
| auto | cast () const |
| auto | storageToOriginal (const ImageDescriptor &desc) |
| Apply shift/scale to the operand,. | |
| auto | originalToStorage (const ImageDescriptor &desc) |
| Apply shift/scale to the operand,. | |
| auto | channelReduction () |
| ADD_CHANNEL_REDUCTION_OPERATOR (channelSum, add) | |
| ADD_CHANNEL_REDUCTION_OPERATOR (channelProd, mult) | |
| ADD_CHANNEL_REDUCTION_OPERATOR (channelMax, max) | |
| ADD_CHANNEL_REDUCTION_OPERATOR (channelMin, min) | |
| ADD_CHANNEL_REDUCTION_OPERATOR (length, length) | |
| auto | channelMean () |
| auto | squaredLength () const |
| auto | channelDistance (const ExprBaseTpl< RhsT > &other) const |
| auto | channelDistance (const Eigen::Matrix< T, Dim, 1 > c) |
| auto | dot (const ExprBaseTpl< RhsT > &other) const |
| auto | stashThenApply (const ExprBaseTpl< VariableT > &varExpr) const |
| auto | hnormalized () const |
| auto | normalized () const |
| auto | homogeneous () const |
| auto | appendZero () const |
| auto | select (const ExprBaseTpl< LhsT > &lhs, const ExprBaseTpl< RhsT > &rhs) const |
| Ternary (condition.x ? if_true : if_false) operator. | |
| auto | select (LhsT lhs, RhsT rhs, typename std::enable_if< std::is_arithmetic_v< LhsT > &&std::is_arithmetic_v< RhsT > >::type *=nullptr) const |
| Ternary (condition.x ? if_true : if_false) operator. | |
| auto | select (LhsT lhs, const ExprBaseTpl< RhsT > &rhs, typename std::enable_if< std::is_arithmetic_v< LhsT > >::type *=nullptr) const |
| Ternary (condition.x ? if_true : if_false) operator. | |
| auto | select (const ExprBaseTpl< LhsT > &lhs, RhsT rhs, typename std::enable_if< std::is_arithmetic_v< RhsT > >::type *=nullptr) const |
| Ternary (condition.x ? if_true : if_false) operator. | |
| ADD_REDUCTION_OPERATOR (sum, add) | |
| ADD_REDUCTION_OPERATOR (prod, mult) | |
| ADD_ARG_REDUCTION_OPERATOR (min, min) | |
| ADD_ARG_REDUCTION_OPERATOR (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 |
| auto | evaluateIntoImage (bool clearShiftScale=false) const |
| Create an empty image and evaluate this expression into it. | |
| auto | toMask () const |
| auto | toDeformation (const ImageDescriptorWorld imgDesc) const |
| auto | resample (const ImageDescriptorWorld &inputDesc, const ImageDescriptorWorld &outputDesc) const |
| auto | resample (SharedImage &inputDesc, SharedImage &outputDesc, std::enable_if_t< std::is_same_v< T, SharedImage > > *=nullptr) const |
| auto | resample (SharedImageSet &inputDesc, SharedImageSet &outputDesc, std::enable_if_t< std::is_same_v< T, SharedImageSet > > *=nullptr) const |
Public Member Functions inherited from CoordinatesGl | |
| void | tagAndAssignNames (std::unordered_map< ImageMath::internal::TaggingIndex, const void * > &taggedLeaves, std::unordered_map< std::type_index, int > &countPerLeafType, const std::string &prefix) const override |
| 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 |
| Collect uniform/sampler definitions. | |
| void | getVariableDefinitionList (std::string &definitionList, const std::vector< int > &indices, const std::string &prefix) const override |
| Collect variable definitions. | |
| int | setArguments (GL::Program &p, const std::vector< int > &indicesIn, const std::string &prefix) const override |
| Set uniform/sampler arguments. | |
| std::string | evalString (bool tagAndAssign=true) const override |
| Implementation of GlExprInterface interface. | |
| 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. | |
Public Member Functions inherited from GlExprInterface | |
| 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. | |
Static Public Attributes | |
| static constexpr bool | has_variable = false |
Additional Inherited Members | |
Protected Member Functions inherited from CoordinatesImpl | |
| CoordinatesImpl (const std::vector< ImageDescriptorWorld > descWorld, CoordinateType coordType=CoordinateType::World, vec4 normal=vec4::Zero(), bool useNormal=false) | |
| Create a Coordinates constructor using vector of ImageDescriptorWorld objects. | |
| CoordinatesImpl (const SharedImage &referenceImage, CoordinateType coordType=CoordinateType::World) | |
Coordinates constructor using matrix from referenceImage The matrix is saved by this class, and hence changes to the pose of this image do not propagate to it. | |
| CoordinatesImpl (const SharedImageSet &referenceImage, CoordinateType coordType=CoordinateType::World) | |
| CoordinatesImpl (const SharedImage &referenceImage, vec4 normal, CoordinateType coordType=CoordinateType::World) | |
Use texture to world matrix from image referenceImage The matrix is saved by this class, and hence changes to the pose of this image do not propagate to it. | |
| CoordinatesImpl (const SharedImageSet &referenceImage, vec4 normal, CoordinateType coordType=CoordinateType::World) | |
| CoordinatesImpl (std::vector< ImageDescriptor > imageDescriptor, std::vector< mat4 > matrixToWorld, std::vector< mat4 > textureToWorld, vec4 normal, bool useNormal, CoordinateType coordType) | |
Protected Member Functions inherited from CoordinatesGl | |
| CoordinatesImpl & | getImpl () |
| const CoordinatesImpl & | getImpl () const |
Protected Attributes inherited from CoordinatesImpl | |
| const std::vector< ImageDescriptor > | m_imageDescriptor |
| const CoordinateType | m_coordinateType |
| const std::vector< mat4 > | m_matrixToWorld |
| const std::vector< mat4 > | m_textureToWorld |
| const vec3 | m_reciprocalDim |
| const std::vector< vec4 > | m_normalPixel |
| const vec4 | m_normal |
| const bool | m_useNormal = false |
Protected Attributes inherited from CoordinatesGl | |
| std::string | m_name = "uninitialized" |
| bool | m_tagged = false |
|
inline |
Coordinates constructor using matrix from referenceImage The matrix is saved by this class, and hence changes to the pose of this image do not propagate to it.
As TypedImage/MemImage objects do not carry a to-world matrix, these are not supported here.
|
inlineoverridevirtual |
Return number of images of this expression.
Implements ExprInterface.
|
inlineoverridevirtual |
Return DeviceStrategy of this expression.
Implements ExprInterface.
|
inlineoverridevirtual |
Return ImageDescriptor of this expression. This reference is expected to remain the same while the class exists.
Implements ExprInterface.