MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ VectorVariance

enum class MayaFlux::Kinesis::VectorVariance : uint8_t
strong

How a vector quantity's components behave under a change of frame.

The distinction is differential-geometric and independent of storage: it says whether the numbers stored are attached to the lattice's coordinate basis or to the world, and therefore what must happen to them when the lattice is scaled, rotated or resampled.

A velocity is ContravariantRelative: halve the cell size and the stored components halve with it, because a velocity is a displacement per unit time expressed in lattice units. A surface normal is CovariantNormalize: it transforms by the inverse transpose and is renormalized after. A triple of unrelated scalars carried together for convenience, a colour for instance, is Invariant: nothing happens to it under any change of frame.

Invariant is the default because assuming a vector is a velocity when it is not silently corrupts it the first time anything rescales the lattice, whereas the reverse mistake leaves values untouched and visibly wrong.

Meaningless for scalar quantities. Carried alongside them regardless rather than split into a separate optional, since the pairing is what every consumer wants and a scalar's variance is simply ignored.

The enumerators correspond one to one with OpenVDB's VecType.

Enumerator
Invariant 

Unaffected by any change of frame.

Covariant 

Transforms by the inverse transpose.

CovariantNormalize 

Inverse transpose, then renormalized.

ContravariantRelative 

Transforms by the frame itself; velocities.

ContravariantAbsolute 

Contravariant, treated as a world-space position.

Definition at line 60 of file LatticeSemantics.hpp.

60 : uint8_t {
61 Invariant, ///< Unaffected by any change of frame.
62 Covariant, ///< Transforms by the inverse transpose.
63 CovariantNormalize, ///< Inverse transpose, then renormalized.
64 ContravariantRelative, ///< Transforms by the frame itself; velocities.
65 ContravariantAbsolute, ///< Contravariant, treated as a world-space position.
66};
@ Invariant
Unaffected by any change of frame.
@ ContravariantAbsolute
Contravariant, treated as a world-space position.
@ ContravariantRelative
Transforms by the frame itself; velocities.
@ CovariantNormalize
Inverse transpose, then renormalized.
@ Covariant
Transforms by the inverse transpose.