DNACalib
-
class dnac::DNACalibDNAReader : public dna::Reader
Inheritence diagram for dnac::DNACalibDNAReader:
Collaboration diagram for dnac::DNACalibDNAReader:
Subclassed by dnac::ReaderImpl< DNACalibDNAReader >
Public Static Functions
-
static DNACalibDNAReader *create(MemoryResource *memRes = nullptr)
-
static DNACalibDNAReader *create(const dna::Reader *reader, MemoryResource *memRes = nullptr)
-
static void destroy(DNACalibDNAReader *instance)
Protected Functions
-
virtual ~DNACalibDNAReader()
-
static DNACalibDNAReader *create(MemoryResource *memRes = nullptr)
-
class dnac::Command
Command is an abstract class whose implementations are expected to modify the DNA provided in the run() method in some way.
Subclassed by dnac::CalculateMeshLowerLODsCommand, dnac::ClearBlendShapesCommand, dnac::CommandSequence, dnac::ConditionalCommand< TCommand, TCondition >, dnac::PruneBlendShapeTargetsCommand, dnac::RemoveAnimatedMapCommand, dnac::RemoveBlendShapeCommand, dnac::RemoveJointAnimationCommand, dnac::RemoveJointCommand, dnac::RemoveMeshCommand, dnac::RenameAnimatedMapCommand, dnac::RenameBlendShapeCommand, dnac::RenameJointCommand, dnac::RenameMeshCommand, dnac::RotateCommand, dnac::ScaleCommand, dnac::SetBlendShapeTargetDeltasCommand, dnac::SetLODsCommand, dnac::SetNeutralJointRotationsCommand, dnac::SetNeutralJointTranslationsCommand, dnac::SetSkinWeightsCommand, dnac::SetVertexPositionsCommand, dnac::TranslateCommand
-
class dnac::ClearBlendShapesCommand : public dnac::Command
Inheritence diagram for dnac::ClearBlendShapesCommand:
Collaboration diagram for dnac::ClearBlendShapesCommand:
ClearBlendShapesCommand is used to clear all blend shapes data from a DNA.
Note
This command clears blend shape target deltas and blend shape animation data. By doing so, it transforms the DNA to be “joints only”.
Public Functions
-
DNACAPI explicit ClearBlendShapesCommand(MemoryResource *memRes = nullptr)
-
DNACAPI ~ClearBlendShapesCommand()
-
ClearBlendShapesCommand(const ClearBlendShapesCommand&) = delete
-
ClearBlendShapesCommand &operator=(const ClearBlendShapesCommand&) = delete
-
DNACAPI ClearBlendShapesCommand(ClearBlendShapesCommand&&)
-
DNACAPI ClearBlendShapesCommand &operator=(ClearBlendShapesCommand&&)
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::ClearBlendShapesCommand::Impl:
Collaboration diagram for dnac::ClearBlendShapesCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit ClearBlendShapesCommand(MemoryResource *memRes = nullptr)
-
class dnac::RemoveAnimatedMapCommand : public dnac::Command
Inheritence diagram for dnac::RemoveAnimatedMapCommand:
Collaboration diagram for dnac::RemoveAnimatedMapCommand:
RemoveAnimatedMapCommand is used to remove animated maps.
Public Functions
-
DNACAPI explicit RemoveAnimatedMapCommand(MemoryResource *memRes = nullptr)
-
DNACAPI RemoveAnimatedMapCommand(std::uint16_t animatedMapIndex, MemoryResource *memRes = nullptr)
-
DNACAPI RemoveAnimatedMapCommand(ConstArrayView<std::uint16_t> animatedMapIndices, MemoryResource *memRes = nullptr)
-
DNACAPI ~RemoveAnimatedMapCommand()
-
RemoveAnimatedMapCommand(const RemoveAnimatedMapCommand&) = delete
-
RemoveAnimatedMapCommand &operator=(const RemoveAnimatedMapCommand&) = delete
-
DNACAPI RemoveAnimatedMapCommand(RemoveAnimatedMapCommand&&)
-
DNACAPI RemoveAnimatedMapCommand &operator=(RemoveAnimatedMapCommand&&)
-
DNACAPI void setAnimatedMapIndex(std::uint16_t animatedMapIndex)
Method for setting the index of the animated map to remove.
Note
Call to either setter overwrites previous setter calls. When running the command, the last set animated map(s) will be removed.
- Parameters
animatedMapIndex – The index of the animated map.
-
DNACAPI void setAnimatedMapIndices(ConstArrayView<std::uint16_t> animatedMapIndices)
Method for setting the indices of animated maps to remove.
Note
Call to either setter overwrites previous setter calls. When running the command, the last set animated map(s) will be removed.
- Parameters
animatedMapIndices – The animated map indices.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::RemoveAnimatedMapCommand::Impl:
Collaboration diagram for dnac::RemoveAnimatedMapCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setAnimatedMapIndex(std::uint16_t animatedMapIndex_)
-
inline void setAnimatedMapIndices(ConstArrayView<std::uint16_t> animatedMapIndices_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
Private Members
-
Vector<std::uint16_t> animatedMapIndices
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit RemoveAnimatedMapCommand(MemoryResource *memRes = nullptr)
-
class dnac::RemoveBlendShapeCommand : public dnac::Command
Inheritence diagram for dnac::RemoveBlendShapeCommand:
Collaboration diagram for dnac::RemoveBlendShapeCommand:
RemoveBlendShapeCommand is used to remove blend shapes.
Public Functions
-
DNACAPI explicit RemoveBlendShapeCommand(MemoryResource *memRes = nullptr)
-
DNACAPI RemoveBlendShapeCommand(std::uint16_t blendShapeIndex, MemoryResource *memRes = nullptr)
-
DNACAPI RemoveBlendShapeCommand(ConstArrayView<std::uint16_t> blendShapeIndices, MemoryResource *memRes = nullptr)
-
DNACAPI ~RemoveBlendShapeCommand()
-
RemoveBlendShapeCommand(const RemoveBlendShapeCommand&) = delete
-
RemoveBlendShapeCommand &operator=(const RemoveBlendShapeCommand&) = delete
-
DNACAPI RemoveBlendShapeCommand(RemoveBlendShapeCommand&&)
-
DNACAPI RemoveBlendShapeCommand &operator=(RemoveBlendShapeCommand&&)
-
DNACAPI void setBlendShapeIndex(std::uint16_t blendShapeIndex)
Method for setting the index of the blend shape to remove.
Note
Call to either setter overwrites previous setter calls. When running the command, the last set blend shape(s) will be removed.
- Parameters
blendShapeIndex – The index of the blend shape.
-
DNACAPI void setBlendShapeIndices(ConstArrayView<std::uint16_t> blendShapeIndices)
Method for setting the indices of blend shapes to remove.
Note
Call to either setter overwrites previous setter calls. When running the command, the last set blend shape(s) will be removed.
- Parameters
blendShapeIndices – The blend shape indices.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::RemoveBlendShapeCommand::Impl:
Collaboration diagram for dnac::RemoveBlendShapeCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setBlendShapeIndex(std::uint16_t blendShapeIndex_)
-
inline void setBlendShapeIndices(ConstArrayView<std::uint16_t> blendShapeIndices_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
Private Members
-
Vector<std::uint16_t> blendShapeIndices
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit RemoveBlendShapeCommand(MemoryResource *memRes = nullptr)
-
class dnac::RemoveMeshCommand : public dnac::Command
Inheritence diagram for dnac::RemoveMeshCommand:
Collaboration diagram for dnac::RemoveMeshCommand:
RemoveMeshCommand is used to remove meshes.
Public Functions
-
DNACAPI explicit RemoveMeshCommand(MemoryResource *memRes = nullptr)
-
DNACAPI RemoveMeshCommand(std::uint16_t meshIndex, MemoryResource *memRes = nullptr)
-
DNACAPI RemoveMeshCommand(ConstArrayView<std::uint16_t> meshIndices, MemoryResource *memRes = nullptr)
-
DNACAPI ~RemoveMeshCommand()
-
RemoveMeshCommand(const RemoveMeshCommand&) = delete
-
RemoveMeshCommand &operator=(const RemoveMeshCommand&) = delete
-
DNACAPI RemoveMeshCommand(RemoveMeshCommand&&)
-
DNACAPI RemoveMeshCommand &operator=(RemoveMeshCommand&&)
-
DNACAPI void setMeshIndex(std::uint16_t meshIndex)
Method for setting the index of the mesh to remove.
- Parameters
meshIndex – The index of the mesh.
-
DNACAPI void setMeshIndices(ConstArrayView<std::uint16_t> meshIndices)
Method for setting the indices of meshes to remove.
Note
Call to either setter overwrites previous setter calls. When running the command, the last set mesh(es) will be removed.
- Parameters
meshIndices – The mesh indices.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::RemoveMeshCommand::Impl:
Collaboration diagram for dnac::RemoveMeshCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setMeshIndex(std::uint16_t meshIndex_)
-
inline void setMeshIndices(ConstArrayView<std::uint16_t> meshIndices_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
Private Members
-
Vector<std::uint16_t> meshIndices
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit RemoveMeshCommand(MemoryResource *memRes = nullptr)
-
class dnac::RenameJointCommand : public dnac::Command
Inheritence diagram for dnac::RenameJointCommand:
Collaboration diagram for dnac::RenameJointCommand:
RenameJointCommand is used to rename a joint.
Public Functions
-
DNACAPI explicit RenameJointCommand(MemoryResource *memRes = nullptr)
-
DNACAPI RenameJointCommand(std::uint16_t jointIndex, const char *newName, MemoryResource *memRes = nullptr)
-
DNACAPI RenameJointCommand(const char *oldName, const char *newName, MemoryResource *memRes = nullptr)
-
DNACAPI ~RenameJointCommand()
-
RenameJointCommand(const RenameJointCommand&) = delete
-
RenameJointCommand &operator=(const RenameJointCommand&) = delete
-
DNACAPI RenameJointCommand(RenameJointCommand&&)
-
DNACAPI RenameJointCommand &operator=(RenameJointCommand&&)
-
DNACAPI void setName(std::uint16_t jointIndex, const char *newName)
Method for setting a new name for joint with given index.
- Parameters
jointIndex – The index of the joint whose name to change.
newName – The new name for the joint.
-
DNACAPI void setName(const char *oldName, const char *newName)
Method for setting a new name for joint with given name.
Note
The renaming will not happen if there is no joint with given current name.
- Parameters
oldName – The current name of the joint whose name to change.
newName – The new name for the joint.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::RenameResourceCommand<Impl>
Inheritence diagram for dnac::RenameJointCommand::Impl:
Collaboration diagram for dnac::RenameJointCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
Private Types
-
using Super = RenameResourceCommand<Impl>
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit RenameJointCommand(MemoryResource *memRes = nullptr)
-
class dnac::CalculateMeshLowerLODsCommand : public dnac::Command
Inheritence diagram for dnac::CalculateMeshLowerLODsCommand:
Collaboration diagram for dnac::CalculateMeshLowerLODsCommand:
CalculateMeshLowerLODsCommand is used to recalculate vertex positions for lower LOD meshes of the specified mesh.
Note
The calculation is done based on vertex positions of the specified mesh and vertex texture coordinates of its lower LOD meshes.
Public Functions
-
DNACAPI explicit CalculateMeshLowerLODsCommand(MemoryResource *memRes = nullptr)
-
DNACAPI explicit CalculateMeshLowerLODsCommand(std::uint16_t meshIndex, MemoryResource *memRes = nullptr)
-
DNACAPI ~CalculateMeshLowerLODsCommand()
-
CalculateMeshLowerLODsCommand(const CalculateMeshLowerLODsCommand&) = delete
-
CalculateMeshLowerLODsCommand &operator=(const CalculateMeshLowerLODsCommand&) = delete
-
DNACAPI CalculateMeshLowerLODsCommand(CalculateMeshLowerLODsCommand&&)
-
DNACAPI CalculateMeshLowerLODsCommand &operator=(CalculateMeshLowerLODsCommand&&)
-
DNACAPI void setMeshIndex(std::uint16_t meshIndex)
Method for setting the index of the mesh to calculate lower LOD meshes from.
- Parameters
meshIndex – The index of the mesh.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::CalculateMeshLowerLODsCommand::Impl:
Collaboration diagram for dnac::CalculateMeshLowerLODsCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setMeshIndex(std::uint16_t meshIndex_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
Private Functions
-
inline Vector<std::uint16_t> findIndicesOfMeshLowerLODs(DNACalibDNAReaderImpl *output)
Private Members
-
std::uint16_t meshIndex
Private Static Functions
-
static inline StringView getMeshName(DNACalibDNAReaderImpl *output, std::uint16_t mi)
Get the Mesh Name without postfix ” _lodX_mesh”.
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit CalculateMeshLowerLODsCommand(MemoryResource *memRes = nullptr)
-
class dnac::CommandSequence : public dnac::Command
Inheritence diagram for dnac::CommandSequence:
Collaboration diagram for dnac::CommandSequence:
CommandSequence is used to run a sequence of commands on the same DNA.
Note
Commands will be run in the order in which they were added to the sequence.
Note
CommandSequence holds pointers to commands, but does not own them.
Public Functions
-
DNACAPI explicit CommandSequence(MemoryResource *memRes = nullptr)
-
DNACAPI ~CommandSequence()
-
CommandSequence(const CommandSequence&) = delete
-
CommandSequence &operator=(const CommandSequence&) = delete
-
DNACAPI CommandSequence(CommandSequence&&)
-
DNACAPI CommandSequence &operator=(CommandSequence&&)
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
DNACAPI void add(Command *command)
Method for adding a command to a sequence of commands to run.
- Parameters
command – The command to add.
-
DNACAPI void add(ArrayView<Command> commands)
Method for adding multiple commands to a sequence of commands to run.
- Parameters
commands – The commands to add.
-
DNACAPI void remove(Command *command)
Method for removing a command from the sequence of commands to run.
- Parameters
command – The command to remove.
-
DNACAPI void remove(ArrayView<Command> commands)
Method for removing an array of commands from the sequence of commands to run.
- Parameters
commands – The commands to remove.
-
DNACAPI bool contains(Command *command) const
Method for checking if the provided command is part of the command sequence.
- Parameters
command – The command to check.
-
DNACAPI std::size_t size() const
Number of commands in command sequence.
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::CommandSequence::Impl:
Collaboration diagram for dnac::CommandSequence::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void run(DNACalibDNAReader *output)
-
inline std::size_t size() const
Private Types
-
using Super = CommandImplBase<Impl>
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit CommandSequence(MemoryResource *memRes = nullptr)
-
template<class TCommand, class TCondition>
class dnac::ConditionalCommand : public dnac::Command Inheritence diagram for dnac::ConditionalCommand:
Collaboration diagram for dnac::ConditionalCommand:
ConditionalCommand is used to run a command if the specified condition is met.
Public Functions
-
inline ConditionalCommand()
-
inline ConditionalCommand(CommandType *command_, ConditionType condition_)
-
~ConditionalCommand() = default
-
ConditionalCommand(const ConditionalCommand&) = delete
-
ConditionalCommand &operator=(const ConditionalCommand&) = delete
-
ConditionalCommand(ConditionalCommand&&) = default
-
ConditionalCommand &operator=(ConditionalCommand&&) = default
-
inline void setCommand(Command *command_)
Method for setting the command to run.
- Parameters
command_ – The command to run.
-
inline void setCondition(ConditionType condition_)
Method for setting the condition under which the command should run.
- Parameters
condition_ – The condition that should be met.
-
inline virtual void run(DNACalibDNAReader *output) override
-
inline ConditionalCommand()
-
class dnac::PruneBlendShapeTargetsCommand : public dnac::Command
Inheritence diagram for dnac::PruneBlendShapeTargetsCommand:
Collaboration diagram for dnac::PruneBlendShapeTargetsCommand:
PruneBlendShapeTargetsCommand is used to prune blend shape target deltas whose absolute magnitude is less than or equal to the specified threshold.
Public Functions
-
DNACAPI explicit PruneBlendShapeTargetsCommand(MemoryResource *memRes = nullptr)
-
DNACAPI explicit PruneBlendShapeTargetsCommand(float threshold, MemoryResource *memRes = nullptr)
-
DNACAPI ~PruneBlendShapeTargetsCommand()
-
PruneBlendShapeTargetsCommand(const PruneBlendShapeTargetsCommand&) = delete
-
PruneBlendShapeTargetsCommand &operator=(const PruneBlendShapeTargetsCommand&) = delete
-
DNACAPI PruneBlendShapeTargetsCommand(PruneBlendShapeTargetsCommand&&)
-
DNACAPI PruneBlendShapeTargetsCommand &operator=(PruneBlendShapeTargetsCommand&&)
-
DNACAPI void setThreshold(float threshold)
Method for setting the threshold for pruning blend shape target deltas.
- Parameters
threshold – The threshold to use.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::PruneBlendShapeTargetsCommand::Impl:
Collaboration diagram for dnac::PruneBlendShapeTargetsCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setThreshold(float threshold_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
Private Members
-
float threshold
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit PruneBlendShapeTargetsCommand(MemoryResource *memRes = nullptr)
-
class dnac::RemoveJointAnimationCommand : public dnac::Command
Inheritence diagram for dnac::RemoveJointAnimationCommand:
Collaboration diagram for dnac::RemoveJointAnimationCommand:
RemoveJointAnimationCommand is used to remove joint animation data.
Public Functions
-
DNACAPI explicit RemoveJointAnimationCommand(MemoryResource *memRes = nullptr)
-
DNACAPI RemoveJointAnimationCommand(std::uint16_t jointIndex, MemoryResource *memRes = nullptr)
-
DNACAPI RemoveJointAnimationCommand(ConstArrayView<std::uint16_t> jointIndices, MemoryResource *memRes = nullptr)
-
DNACAPI ~RemoveJointAnimationCommand()
-
RemoveJointAnimationCommand(const RemoveJointAnimationCommand&) = delete
-
RemoveJointAnimationCommand &operator=(const RemoveJointAnimationCommand&) = delete
-
DNACAPI RemoveJointAnimationCommand(RemoveJointAnimationCommand&&)
-
DNACAPI RemoveJointAnimationCommand &operator=(RemoveJointAnimationCommand&&)
-
DNACAPI void setJointIndex(std::uint16_t jointIndex)
Method for setting the index of a joint whose animation data to remove.
Note
Call to either setter overwrites previous setter calls. When running the command, the last set joint animation(s) will be removed.
- Parameters
jointIndex – The index of the joint.
-
DNACAPI void setJointIndices(ConstArrayView<std::uint16_t> jointIndices)
Method for setting the indices of joints whose animation data to remove.
Note
Call to either setter overwrites previous setter calls. When running the command, the last set joint animation(s) will be removed.
- Parameters
jointIndices – The joint indices.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::RemoveJointAnimationCommand::Impl:
Collaboration diagram for dnac::RemoveJointAnimationCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setJointIndex(std::uint16_t jointIndex_)
-
inline void setJointIndices(ConstArrayView<std::uint16_t> jointIndices_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
Private Members
-
Vector<std::uint16_t> jointIndices
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit RemoveJointAnimationCommand(MemoryResource *memRes = nullptr)
-
class dnac::RemoveJointCommand : public dnac::Command
Inheritence diagram for dnac::RemoveJointCommand:
Collaboration diagram for dnac::RemoveJointCommand:
RemoveJointCommand is used to remove joints.
Public Functions
-
DNACAPI explicit RemoveJointCommand(MemoryResource *memRes = nullptr)
-
DNACAPI RemoveJointCommand(std::uint16_t jointIndex, MemoryResource *memRes = nullptr)
-
DNACAPI RemoveJointCommand(ConstArrayView<std::uint16_t> jointIndices, MemoryResource *memRes = nullptr)
-
DNACAPI ~RemoveJointCommand()
-
RemoveJointCommand(const RemoveJointCommand&) = delete
-
RemoveJointCommand &operator=(const RemoveJointCommand&) = delete
-
DNACAPI RemoveJointCommand(RemoveJointCommand&&)
-
DNACAPI RemoveJointCommand &operator=(RemoveJointCommand&&)
-
DNACAPI void setJointIndex(std::uint16_t jointIndex)
Method for setting the index of the joint to remove.
Note
Call to either setter overwrites previous setter calls. When running the command, the last set joint(s) will be removed.
- Parameters
jointIndex – The index of the joint.
-
DNACAPI void setJointIndices(ConstArrayView<std::uint16_t> jointIndices)
Method for setting the indices of joints to remove.
Note
Call to either setter overwrites previous setter calls. When running the command, the last set joint(s) will be removed.
- Parameters
jointIndices – The joint indices.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::RemoveJointCommand::Impl:
Collaboration diagram for dnac::RemoveJointCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setJointIndex(std::uint16_t jointIndex_)
-
inline void setJointIndices(ConstArrayView<std::uint16_t> jointIndices_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
Private Members
-
Vector<std::uint16_t> jointIndices
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit RemoveJointCommand(MemoryResource *memRes = nullptr)
-
class dnac::RenameAnimatedMapCommand : public dnac::Command
Inheritence diagram for dnac::RenameAnimatedMapCommand:
Collaboration diagram for dnac::RenameAnimatedMapCommand:
RenameAnimatedMapCommand is used to rename an animated map.
Public Functions
-
DNACAPI explicit RenameAnimatedMapCommand(MemoryResource *memRes = nullptr)
-
DNACAPI RenameAnimatedMapCommand(std::uint16_t animatedMapIndex, const char *newName, MemoryResource *memRes = nullptr)
-
DNACAPI RenameAnimatedMapCommand(const char *oldName, const char *newName, MemoryResource *memRes = nullptr)
-
DNACAPI ~RenameAnimatedMapCommand()
-
RenameAnimatedMapCommand(const RenameAnimatedMapCommand&) = delete
-
RenameAnimatedMapCommand &operator=(const RenameAnimatedMapCommand&) = delete
-
DNACAPI RenameAnimatedMapCommand(RenameAnimatedMapCommand&&)
-
DNACAPI RenameAnimatedMapCommand &operator=(RenameAnimatedMapCommand&&)
-
DNACAPI void setName(std::uint16_t animatedMapIndex, const char *newName)
Method for setting a new name for animated map with given index.
- Parameters
animatedMapIndex – The index of the animated map whose name to change.
newName – The new name for the animated map.
-
DNACAPI void setName(const char *oldName, const char *newName)
Method for setting a new name for animated map with given name.
Note
The renaming will not happen if there is no animated map with given current name.
- Parameters
oldName – The current name of the animated map whose name to change.
newName – The new name for the animated map.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::RenameResourceCommand<Impl>
Inheritence diagram for dnac::RenameAnimatedMapCommand::Impl:
Collaboration diagram for dnac::RenameAnimatedMapCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
Private Types
-
using Super = RenameResourceCommand<Impl>
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit RenameAnimatedMapCommand(MemoryResource *memRes = nullptr)
-
class dnac::RenameBlendShapeCommand : public dnac::Command
Inheritence diagram for dnac::RenameBlendShapeCommand:
Collaboration diagram for dnac::RenameBlendShapeCommand:
RenameBlendShapeCommand is used to rename a blend shape channel.
Public Functions
-
DNACAPI explicit RenameBlendShapeCommand(MemoryResource *memRes = nullptr)
-
DNACAPI RenameBlendShapeCommand(std::uint16_t blendShapeIndex, const char *newName, MemoryResource *memRes = nullptr)
-
DNACAPI RenameBlendShapeCommand(const char *oldName, const char *newName, MemoryResource *memRes = nullptr)
-
DNACAPI ~RenameBlendShapeCommand()
-
RenameBlendShapeCommand(const RenameBlendShapeCommand&) = delete
-
RenameBlendShapeCommand &operator=(const RenameBlendShapeCommand&) = delete
-
DNACAPI RenameBlendShapeCommand(RenameBlendShapeCommand&&)
-
DNACAPI RenameBlendShapeCommand &operator=(RenameBlendShapeCommand&&)
-
DNACAPI void setName(std::uint16_t blendShapeIndex, const char *newName)
Method for setting a new name for blend shape channel with given index.
- Parameters
blendShapeIndex – The index of the blend shape channel whose name to change.
newName – The new name for the blend shape channel.
-
DNACAPI void setName(const char *oldName, const char *newName)
Method for setting a new name for blend shape channel with given name.
Note
The renaming will not happen if there is no blend shape channel with given current name.
- Parameters
oldName – The current name of the blend shape channel whose name to change.
newName – The new name for the blend shape channel.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::RenameResourceCommand<Impl>
Inheritence diagram for dnac::RenameBlendShapeCommand::Impl:
Collaboration diagram for dnac::RenameBlendShapeCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
Private Types
-
using Super = RenameResourceCommand<Impl>
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit RenameBlendShapeCommand(MemoryResource *memRes = nullptr)
-
class dnac::RenameMeshCommand : public dnac::Command
Inheritence diagram for dnac::RenameMeshCommand:
Collaboration diagram for dnac::RenameMeshCommand:
RenameMeshCommand is used to rename a mesh.
Public Functions
-
DNACAPI explicit RenameMeshCommand(MemoryResource *memRes = nullptr)
-
DNACAPI RenameMeshCommand(std::uint16_t meshIndex, const char *newName, MemoryResource *memRes = nullptr)
-
DNACAPI RenameMeshCommand(const char *oldName, const char *newName, MemoryResource *memRes = nullptr)
-
DNACAPI ~RenameMeshCommand()
-
RenameMeshCommand(const RenameMeshCommand&) = delete
-
RenameMeshCommand &operator=(const RenameMeshCommand&) = delete
-
DNACAPI RenameMeshCommand(RenameMeshCommand&&)
-
DNACAPI RenameMeshCommand &operator=(RenameMeshCommand&&)
-
DNACAPI void setName(std::uint16_t meshIndex, const char *newName)
Method for setting a new name for mesh with given index.
- Parameters
meshIndex – The index of the mesh whose name to change.
newName – The new name for the mesh.
-
DNACAPI void setName(const char *oldName, const char *newName)
Method for setting a new name for mesh with given name.
Note
The renaming will not happen if there is no mesh with given current name.
- Parameters
oldName – The current name of the mesh whose name to change.
newName – The new name for the mesh.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::RenameResourceCommand<Impl>
Inheritence diagram for dnac::RenameMeshCommand::Impl:
Collaboration diagram for dnac::RenameMeshCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
Private Types
-
using Super = RenameResourceCommand<Impl>
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit RenameMeshCommand(MemoryResource *memRes = nullptr)
-
class dnac::RotateCommand : public dnac::Command
Inheritence diagram for dnac::RotateCommand:
Collaboration diagram for dnac::RotateCommand:
RotateCommand is used to rotate neutral joints and vertex positions around given origin.
Note
Joint rotations are represented in parent space, so it is enough to rotate only root joints, as that rotation will be propagated to the rest of the joints.
Note
If the origin is not set, the assumed origin is (0, 0, 0).
Public Functions
-
DNACAPI explicit RotateCommand(MemoryResource *memRes = nullptr)
-
DNACAPI RotateCommand(Vector3 degrees, Vector3 origin, MemoryResource *memRes = nullptr)
-
DNACAPI ~RotateCommand()
-
RotateCommand(const RotateCommand&) = delete
-
RotateCommand &operator=(const RotateCommand&) = delete
-
DNACAPI RotateCommand(RotateCommand&&)
-
DNACAPI RotateCommand &operator=(RotateCommand&&)
-
DNACAPI void setRotation(Vector3 degrees)
Method for setting the rotation angles.
- Parameters
degrees – Rotation angles in degrees.
-
DNACAPI void setOrigin(Vector3 origin)
Method for setting the rotation origin.
- Parameters
origin – Origin coordinates.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::RotateCommand::Impl:
Collaboration diagram for dnac::RotateCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setRotation(Vector3 degrees_)
-
inline void setOrigin(Vector3 origin_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
Private Functions
-
inline tdm::mat4<float> getRotationTransformationMatrix() const
-
inline void rotateNeutralJoints(DNACalibDNAReaderImpl *output)
-
inline void rotateVertexPositions(DNACalibDNAReaderImpl *output)
-
inline void rotateBlendShapeTargetDeltas(DNACalibDNAReaderImpl *output)
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit RotateCommand(MemoryResource *memRes = nullptr)
-
class dnac::ScaleCommand : public dnac::Command
Inheritence diagram for dnac::ScaleCommand:
Collaboration diagram for dnac::ScaleCommand:
ScaleCommand is used to scale neutral joints, vertex positions and joint and blendshape deltas by a factor.
Note
Only translation attributes of neutral joints and joint deltas are scaled.
Public Functions
-
DNACAPI explicit ScaleCommand(MemoryResource *memRes = nullptr)
-
DNACAPI ScaleCommand(float scale, Vector3 origin, MemoryResource *memRes = nullptr)
-
DNACAPI ~ScaleCommand()
-
ScaleCommand(const ScaleCommand&) = delete
-
ScaleCommand &operator=(const ScaleCommand&) = delete
-
DNACAPI ScaleCommand(ScaleCommand&&)
-
DNACAPI ScaleCommand &operator=(ScaleCommand&&)
-
DNACAPI void setScale(float scale)
Method for setting the scale factor to multiply with.
- Parameters
scale – Scale factor.
-
DNACAPI void setOrigin(Vector3 origin)
Method for setting the origin.
Note
The origin is used to properly scale position values (vertex positions and neutral joint translations).
- Parameters
origin – Origin coordinates.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::ScaleCommand::Impl:
Collaboration diagram for dnac::ScaleCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setScale(float scale_)
-
inline void setOrigin(Vector3 origin_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
Private Functions
-
inline void scaleNeutralJoints(DNACalibDNAReaderImpl *output)
-
inline void scaleJointBehavior(DNACalibDNAReaderImpl *output)
-
inline void scaleGeometry(DNACalibDNAReaderImpl *output)
-
inline void scaleVertexPositions(DNACalibDNAReaderImpl *output, std::uint16_t meshIndex)
-
inline void scaleBlendShapeTargetDeltas(DNACalibDNAReaderImpl *output, std::uint16_t meshIndex)
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit ScaleCommand(MemoryResource *memRes = nullptr)
-
class dnac::SetBlendShapeTargetDeltasCommand : public dnac::Command
Inheritence diagram for dnac::SetBlendShapeTargetDeltasCommand:
Collaboration diagram for dnac::SetBlendShapeTargetDeltasCommand:
SetBlendShapeTargetDeltasCommand is used to change blend shape target deltas.
Public Functions
-
DNACAPI explicit SetBlendShapeTargetDeltasCommand(MemoryResource *memRes = nullptr)
-
DNACAPI SetBlendShapeTargetDeltasCommand(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex, ConstArrayView<Vector3> deltas, ConstArrayView<std::uint32_t> vertexIndices, VectorOperation operation, MemoryResource *memRes = nullptr)
-
DNACAPI SetBlendShapeTargetDeltasCommand(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex, ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs, ConstArrayView<std::uint32_t> vertexIndices, VectorOperation operation, MemoryResource *memRes = nullptr)
-
DNACAPI SetBlendShapeTargetDeltasCommand(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex, ConstArrayView<Vector3> deltas, ConstArrayView<std::uint32_t> vertexIndices, ConstArrayView<float> masks, VectorOperation operation, MemoryResource *memRes = nullptr)
-
DNACAPI SetBlendShapeTargetDeltasCommand(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex, ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs, ConstArrayView<std::uint32_t> vertexIndices, ConstArrayView<float> masks, VectorOperation operation, MemoryResource *memRes = nullptr)
-
DNACAPI ~SetBlendShapeTargetDeltasCommand()
-
SetBlendShapeTargetDeltasCommand(const SetBlendShapeTargetDeltasCommand&) = delete
-
SetBlendShapeTargetDeltasCommand &operator=(const SetBlendShapeTargetDeltasCommand&) = delete
-
DNACAPI SetBlendShapeTargetDeltasCommand(SetBlendShapeTargetDeltasCommand&&)
-
DNACAPI SetBlendShapeTargetDeltasCommand &operator=(SetBlendShapeTargetDeltasCommand&&)
-
DNACAPI void setMeshIndex(std::uint16_t meshIndex)
Method for setting the index of the mesh whose blend shape target to change.
- Parameters
meshIndex – The mesh index.
-
DNACAPI void setBlendShapeTargetIndex(std::uint16_t blendShapeTargetIndex)
Method for setting the index of the blend shape target to change.
- Parameters
blendShapeTargetIndex – The blend shape target index.
-
DNACAPI void setDeltas(ConstArrayView<Vector3> deltas)
Method for setting the values used to calculate new deltas for blend shape target.
- Parameters
deltas – The values used in calculation.
-
DNACAPI void setDeltas(ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs)
Method for setting the values used to calculate new deltas for blend shape target.
- Parameters
xs – The X values for each delta.
ys – The Y values for each delta.
zs – The Z values for each delta.
-
DNACAPI void setVertexIndices(ConstArrayView<std::uint32_t> vertexIndices)
Method for setting the vertex indices that correspond to new deltas.
- Parameters
vertexIndices – The vertexIndices.
-
DNACAPI void setMasks(ConstArrayView<float> masks)
Method for setting masks used to calculate new deltas for blend shape target.
Note
If no masks are set, default weight value of 1 is used for each delta.
- Parameters
masks – The weights for each delta.
-
DNACAPI void setOperation(VectorOperation operation)
Method for setting the type of operation used to calculate new deltas for blend shape target.
Interpolate: \(newValue = previousValue * (1 - weight) + setValue * weight\) Add: \(newValue = previousValue + (setValue * weight)\) Subtract: \(newValue = previousValue - (setValue * weight)\) Multiply: \(newValue = previousValue * (setValue * weight)\) setValue is the value from new deltas that were set, and weight is the value from masks array.
Note
Available operations are: Interpolate, Add, Subtract and Multiply. Each delta is calculated based on the provided operation type in the following way:
- Parameters
operation – The operation to use.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
Public Static Attributes
-
DNACAPI static const sc::StatusCode VertexIndicesOutOfBoundsError = {3101, "%s"}
-
DNACAPI static const sc::StatusCode NoVertexIndicesSetError = {3102, "%s"}
-
DNACAPI static const sc::StatusCode DeltasVertexIndicesCountMismatch = {3103, "%s"}
-
DNACAPI static const sc::StatusCode DeltasMasksCountMismatch = {3104, "%s"}
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::SetBlendShapeTargetDeltasCommand::Impl:
Collaboration diagram for dnac::SetBlendShapeTargetDeltasCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setMeshIndex(std::uint16_t meshIndex_)
-
inline void setBlendShapeTargetIndex(std::uint16_t blendShapeTargetIndex_)
-
inline void setDeltas(ConstArrayView<Vector3> deltas_)
-
inline void setDeltas(ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs)
-
inline void setVertexIndices(ConstArrayView<std::uint32_t> vertexIndices_)
-
inline void setMasks(ConstArrayView<float> masks_)
-
inline void setOperation(VectorOperation operation_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
Private Functions
-
template<typename FOperation, typename FWeightGetter>
inline void computeBlendShapeTargetDeltas(FOperation op, FWeightGetter getWeight, DNACalibDNAReaderImpl *output)
Private Members
-
RawVector3Vector deltas
-
Vector<std::uint32_t> vertexIndices
-
Vector<float> masks
-
VectorOperation operation
-
std::uint16_t meshIndex
-
std::uint16_t blendShapeTargetIndex
Private Static Functions
-
static inline void densify(RawVector3Vector &bsDeltas, Vector<std::uint32_t> &bsVertexIndices, std::uint32_t vertexCount)
-
static inline void sparsify(RawVector3Vector &bsDeltas, Vector<std::uint32_t> &bsVertexIndices, float threshold)
Private Static Attributes
-
static sc::StatusProvider status = {VertexIndicesOutOfBoundsError, NoVertexIndicesSetError, DeltasVertexIndicesCountMismatch, DeltasMasksCountMismatch}
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit SetBlendShapeTargetDeltasCommand(MemoryResource *memRes = nullptr)
-
class dnac::SetLODsCommand : public dnac::Command
Inheritence diagram for dnac::SetLODsCommand:
Collaboration diagram for dnac::SetLODsCommand:
SetLODsCommand is used to specify LODs to use. Joints, blend shapes, animated maps and meshes that are not in specified LODs are removed from the DNA.
Public Functions
-
DNACAPI explicit SetLODsCommand(MemoryResource *memRes = nullptr)
-
DNACAPI SetLODsCommand(ConstArrayView<std::uint16_t> lods, MemoryResource *memRes = nullptr)
-
DNACAPI ~SetLODsCommand()
-
SetLODsCommand(const SetLODsCommand&) = delete
-
SetLODsCommand &operator=(const SetLODsCommand&) = delete
-
DNACAPI SetLODsCommand(SetLODsCommand&&)
-
DNACAPI SetLODsCommand &operator=(SetLODsCommand&&)
-
DNACAPI void setLODs(ConstArrayView<std::uint16_t> lods)
Method for setting the LODs to keep.
- Parameters
lods – New LODs to be used.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::SetLODsCommand::Impl:
Collaboration diagram for dnac::SetLODsCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setLODs(ConstArrayView<std::uint16_t> lods_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
Private Members
-
Vector<std::uint16_t> lods
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit SetLODsCommand(MemoryResource *memRes = nullptr)
-
class dnac::SetNeutralJointRotationsCommand : public dnac::Command
Inheritence diagram for dnac::SetNeutralJointRotationsCommand:
Collaboration diagram for dnac::SetNeutralJointRotationsCommand:
SetNeutralJointRotationsCommand is used to set new rotation values to neutral joints.
Public Functions
-
DNACAPI explicit SetNeutralJointRotationsCommand(MemoryResource *memRes = nullptr)
-
DNACAPI SetNeutralJointRotationsCommand(ConstArrayView<Vector3> rotations, MemoryResource *memRes = nullptr)
-
DNACAPI SetNeutralJointRotationsCommand(ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs, MemoryResource *memRes = nullptr)
-
DNACAPI ~SetNeutralJointRotationsCommand()
-
SetNeutralJointRotationsCommand(const SetNeutralJointRotationsCommand&) = delete
-
SetNeutralJointRotationsCommand &operator=(const SetNeutralJointRotationsCommand&) = delete
-
DNACAPI SetNeutralJointRotationsCommand(SetNeutralJointRotationsCommand&&)
-
DNACAPI SetNeutralJointRotationsCommand &operator=(SetNeutralJointRotationsCommand&&)
-
DNACAPI void setRotations(ConstArrayView<Vector3> rotations)
Method for setting the neutral joint rotations.
- Parameters
rotations – Rotation values for each joint.
-
DNACAPI void setRotations(ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs)
Method for setting the neutral joint rotations.
- Parameters
xs – The X rotation value for each joint.
ys – The Y rotation value for each joint.
zs – The Z rotation value for each joint.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::SetNeutralJointRotationsCommand::Impl:
Collaboration diagram for dnac::SetNeutralJointRotationsCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setRotations(ConstArrayView<Vector3> rotations_)
-
inline void setRotations(ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
Private Members
-
RawVector3Vector rotations
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit SetNeutralJointRotationsCommand(MemoryResource *memRes = nullptr)
-
class dnac::SetNeutralJointTranslationsCommand : public dnac::Command
Inheritence diagram for dnac::SetNeutralJointTranslationsCommand:
Collaboration diagram for dnac::SetNeutralJointTranslationsCommand:
SetNeutralJointTranslationsCommand is used to set new translation values to neutral joints.
Public Functions
-
DNACAPI explicit SetNeutralJointTranslationsCommand(MemoryResource *memRes = nullptr)
-
DNACAPI SetNeutralJointTranslationsCommand(ConstArrayView<Vector3> translations, MemoryResource *memRes = nullptr)
-
DNACAPI SetNeutralJointTranslationsCommand(ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs, MemoryResource *memRes = nullptr)
-
DNACAPI ~SetNeutralJointTranslationsCommand()
-
SetNeutralJointTranslationsCommand(const SetNeutralJointTranslationsCommand&) = delete
-
SetNeutralJointTranslationsCommand &operator=(const SetNeutralJointTranslationsCommand&) = delete
-
DNACAPI SetNeutralJointTranslationsCommand(SetNeutralJointTranslationsCommand&&)
-
DNACAPI SetNeutralJointTranslationsCommand &operator=(SetNeutralJointTranslationsCommand&&)
-
DNACAPI void setTranslations(ConstArrayView<Vector3> translations)
Method for setting the neutral joint translations.
- Parameters
translations – Translation values for each joint.
-
DNACAPI void setTranslations(ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs)
Method for setting the neutral joint translations.
- Parameters
xs – The X translation value for each joint.
ys – The Y translation value for each joint.
zs – The Z translation value for each joint.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::SetNeutralJointTranslationsCommand::Impl:
Collaboration diagram for dnac::SetNeutralJointTranslationsCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setTranslations(ConstArrayView<Vector3> translations_)
-
inline void setTranslations(ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
Private Members
-
RawVector3Vector translations
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit SetNeutralJointTranslationsCommand(MemoryResource *memRes = nullptr)
-
class dnac::SetSkinWeightsCommand : public dnac::Command
Inheritence diagram for dnac::SetSkinWeightsCommand:
Collaboration diagram for dnac::SetSkinWeightsCommand:
SetSkinWeightsCommand is used to set new skin weights for a vertex in a mesh.
Public Functions
-
DNACAPI explicit SetSkinWeightsCommand(MemoryResource *memRes = nullptr)
-
DNACAPI SetSkinWeightsCommand(std::uint16_t meshIndex, std::uint32_t vertexIndex, ConstArrayView<float> weights, ConstArrayView<std::uint16_t> jointIndices, MemoryResource *memRes = nullptr)
-
DNACAPI ~SetSkinWeightsCommand()
-
SetSkinWeightsCommand(const SetSkinWeightsCommand&) = delete
-
SetSkinWeightsCommand &operator=(const SetSkinWeightsCommand&) = delete
-
DNACAPI SetSkinWeightsCommand(SetSkinWeightsCommand&&)
-
DNACAPI SetSkinWeightsCommand &operator=(SetSkinWeightsCommand&&)
-
DNACAPI void setMeshIndex(std::uint16_t meshIndex)
Method for setting the index of the targeted mesh.
- Parameters
meshIndex – The mesh index.
-
DNACAPI void setVertexIndex(std::uint32_t vertexIndex)
Method for setting the index of the vertex to change.
- Parameters
vertexIndex – The vertex index.
-
DNACAPI void setWeights(ConstArrayView<float> weights)
Method for setting the weights with which joints influence the vertex in question.
- Parameters
weights – Weights for each joint that has an influence on the vertex.
-
DNACAPI void setJointIndices(ConstArrayView<std::uint16_t> jointIndices)
Method for setting the joint indices of joints that influence the vertex in question.
- Parameters
jointIndices – Joint indices of joints that have an influence on the vertex.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::SetSkinWeightsCommand::Impl:
Collaboration diagram for dnac::SetSkinWeightsCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setMeshIndex(std::uint16_t meshIndex_)
-
inline void setVertexIndex(std::uint32_t vertexIndex_)
-
inline void setWeights(ConstArrayView<float> weights_)
-
inline void setJointIndices(ConstArrayView<std::uint16_t> jointIndices_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit SetSkinWeightsCommand(MemoryResource *memRes = nullptr)
-
class dnac::SetVertexPositionsCommand : public dnac::Command
Inheritence diagram for dnac::SetVertexPositionsCommand:
Collaboration diagram for dnac::SetVertexPositionsCommand:
SetVertexPositionsCommand is used to change vertex positions values.
Public Functions
-
DNACAPI explicit SetVertexPositionsCommand(MemoryResource *memRes = nullptr)
-
DNACAPI SetVertexPositionsCommand(std::uint16_t meshIndex, ConstArrayView<Vector3> positions, VectorOperation operation, MemoryResource *memRes = nullptr)
-
DNACAPI SetVertexPositionsCommand(std::uint16_t meshIndex, ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs, VectorOperation operation, MemoryResource *memRes = nullptr)
-
DNACAPI SetVertexPositionsCommand(std::uint16_t meshIndex, ConstArrayView<Vector3> positions, ConstArrayView<float> masks, VectorOperation operation, MemoryResource *memRes = nullptr)
-
DNACAPI SetVertexPositionsCommand(std::uint16_t meshIndex, ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs, ConstArrayView<float> masks, VectorOperation operation, MemoryResource *memRes = nullptr)
-
DNACAPI ~SetVertexPositionsCommand()
-
SetVertexPositionsCommand(const SetVertexPositionsCommand&) = delete
-
SetVertexPositionsCommand &operator=(const SetVertexPositionsCommand&) = delete
-
DNACAPI SetVertexPositionsCommand(SetVertexPositionsCommand&&)
-
DNACAPI SetVertexPositionsCommand &operator=(SetVertexPositionsCommand&&)
-
DNACAPI void setMeshIndex(std::uint16_t meshIndex)
Method for setting the index of the mesh to change.
- Parameters
meshIndex – The mesh index.
-
DNACAPI void setPositions(ConstArrayView<Vector3> positions)
Method for setting the vertex positions used to calculate new values.
- Parameters
positions – The vertex positions.
-
DNACAPI void setPositions(ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs)
Method for setting the vertex positions used to calculate new values.
- Parameters
xs – The X coordinates for each vertex.
ys – The Y coordinates for each vertex.
zs – The Z coordinates for each vertex.
-
DNACAPI void setMasks(ConstArrayView<float> masks)
Method for setting vertex masks used to calculate new vertex position values.
Note
If no masks are set, default weight value of 1 is used for each vertex.
- Parameters
masks – The weights for each vertex.
-
DNACAPI void setOperation(VectorOperation operation)
Method for setting the type of operation used to calculate new vertex position values.
Interpolate: \(newValue = previousValue * (1 - weight) + setValue * weight\) Add: \(newValue = previousValue + (setValue * weight)\) Subtract: \(newValue = previousValue - (setValue * weight)\) Multiply: \(newValue = previousValue * (setValue * weight)\) setValue is the value from new positions that were set, and weight is the value from masks array.
Note
Available operations are: Interpolate, Add, Subtract and Multiply. Each position is calculated based on the provided operation type in the following way:
- Parameters
operation – The operation to use.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
Public Static Attributes
-
DNACAPI static const sc::StatusCode PositionsMasksCountMismatch = {3201, "%s"}
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::SetVertexPositionsCommand::Impl:
Collaboration diagram for dnac::SetVertexPositionsCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setMeshIndex(std::uint16_t meshIndex_)
-
inline void setPositions(ConstArrayView<Vector3> positions_)
-
inline void setPositions(ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs)
-
inline void setMasks(ConstArrayView<float> masks_)
-
inline void setOperation(VectorOperation operation_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
Private Functions
-
template<typename FOperation, typename FWeightGetter>
inline void computeVertexPositions(FOperation op, FWeightGetter getWeight, DNACalibDNAReaderImpl *output)
Private Members
-
RawVector3Vector positions
-
Vector<float> masks
-
VectorOperation operation
-
std::uint16_t meshIndex
Private Static Attributes
-
static sc::StatusProvider status = {PositionsMasksCountMismatch}
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit SetVertexPositionsCommand(MemoryResource *memRes = nullptr)
-
class dnac::TranslateCommand : public dnac::Command
Inheritence diagram for dnac::TranslateCommand:
Collaboration diagram for dnac::TranslateCommand:
TranslateCommand is used to translate neutral joints and vertex positions.
Note
Joint translations are represented in parent space, so it is enough to translate only root joints, as that translation will be propagated to the rest of the joints.
Public Functions
-
DNACAPI explicit TranslateCommand(MemoryResource *memRes = nullptr)
-
DNACAPI TranslateCommand(Vector3 translation, MemoryResource *memRes = nullptr)
-
DNACAPI ~TranslateCommand()
-
TranslateCommand(const TranslateCommand&) = delete
-
TranslateCommand &operator=(const TranslateCommand&) = delete
-
DNACAPI TranslateCommand(TranslateCommand&&)
-
DNACAPI TranslateCommand &operator=(TranslateCommand&&)
-
DNACAPI void setTranslation(Vector3 translation)
Method for setting the translation vector.
- Parameters
translation – The translation vector.
-
DNACAPI virtual void run(DNACalibDNAReader *output) override
-
class Impl : public dnac::CommandImplBase<Impl>
Inheritence diagram for dnac::TranslateCommand::Impl:
Collaboration diagram for dnac::TranslateCommand::Impl:
Public Functions
-
inline explicit Impl(MemoryResource *memRes_)
-
inline void setTranslation(Vector3 translation_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
using Super = CommandImplBase<Impl>
Private Functions
-
inline void translateNeutralJoints(DNACalibDNAReaderImpl *output)
-
inline void translateVertexPositions(DNACalibDNAReaderImpl *output)
Private Members
-
Vector3 translation
-
inline explicit Impl(MemoryResource *memRes_)
-
DNACAPI explicit TranslateCommand(MemoryResource *memRes = nullptr)
-
template<class TCommand>
class dnac::CommandImplBase Inheritence diagram for dnac::CommandImplBase:
Collaboration diagram for dnac::CommandImplBase:
Public Functions
-
inline MemoryResource *getMemoryResource()
Public Static Functions
Protected Functions
-
inline explicit CommandImplBase(MemoryResource *memRes_)
Private Members
-
MemoryResource *memRes
-
inline MemoryResource *getMemoryResource()
-
template<class TDerived>
class dnac::RenameResourceCommand : public dnac::CommandImplBase<TDerived> Inheritence diagram for dnac::RenameResourceCommand:
Collaboration diagram for dnac::RenameResourceCommand:
Public Functions
-
inline explicit RenameResourceCommand(MemoryResource *memRes_)
-
virtual ~RenameResourceCommand() = default
-
RenameResourceCommand(const RenameResourceCommand&) = default
-
RenameResourceCommand &operator=(const RenameResourceCommand&) = default
-
RenameResourceCommand(RenameResourceCommand&&) = default
-
RenameResourceCommand &operator=(RenameResourceCommand&&) = default
-
inline void setName(std::uint16_t index_, const char *newName_)
-
inline void setName(const char *oldName_, const char *newName_)
-
inline void run(DNACalibDNAReaderImpl *output)
Private Types
-
enum class Configuration
Values:
-
enumerator Unconfigured
-
enumerator SearchAndRename
-
enumerator RenameByIndex
-
enumerator Unconfigured
-
using Super = CommandImplBase<TDerived>
Private Functions
-
inline void searchAndRename(DNACalibDNAReaderImpl *output)
-
inline void rename(DNACalibDNAReaderImpl *output)
Private Members
-
String<char> oldName
-
String<char> newName
-
std::uint16_t index
-
Configuration config
-
inline explicit RenameResourceCommand(MemoryResource *memRes_)
-
class dnac::BaseImpl
Inheritence diagram for dnac::BaseImpl:
Collaboration diagram for dnac::BaseImpl:
Subclassed by dnac::ReaderImpl< DNACalibDNAReader >, dnac::WriterImpl< dna::Writer >, dnac::ReaderImpl< TReaderBase >, dnac::WriterImpl< TWriterBase >
Public Functions
-
inline MemoryResource *getMemoryResource()
-
inline MemoryResource *getMemoryResource()
-
class dnac::DNACalibDNAReaderImpl : public dnac::ReaderImpl<DNACalibDNAReader>, public dnac::WriterImpl<dna::Writer>
Inheritence diagram for dnac::DNACalibDNAReaderImpl:
Collaboration diagram for dnac::DNACalibDNAReaderImpl:
Public Functions
-
explicit DNACalibDNAReaderImpl(MemoryResource *memRes_)
-
virtual ~DNACalibDNAReaderImpl()
-
DNACalibDNAReaderImpl(const DNACalibDNAReaderImpl&) = delete
-
DNACalibDNAReaderImpl &operator=(const DNACalibDNAReaderImpl&) = delete
-
DNACalibDNAReaderImpl(DNACalibDNAReaderImpl&&) = delete
-
DNACalibDNAReaderImpl &operator=(DNACalibDNAReaderImpl&&) = delete
-
virtual void setLODCount(std::uint16_t lodCount)
Available levels of detail (e.g. 6 which means the following levels are available: [0,1,2,3,4,5], where 0 is the LOD with the highest details, and 5 is the LOD with lowest details).
- Parameters
lodCount – The number of levels available.
-
void setNeutralJointTranslations(ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs)
-
void setNeutralJointTranslations(RawVector3Vector &&translations)
-
void setNeutralJointTranslation(std::uint16_t index, const Vector3 &translation)
-
void setNeutralJointRotations(ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs)
-
void setNeutralJointRotations(RawVector3Vector &&rotations)
-
void setNeutralJointRotation(std::uint16_t index, const Vector3 &rotation)
-
void setJointGroupValues(std::uint16_t jointGroupIndex, AlignedDynArray<float> &&values)
-
void setVertexPositions(std::uint16_t meshIndex, ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs)
-
void setVertexPositions(std::uint16_t meshIndex, RawVector3Vector &&positions)
-
void setBlendShapeTargetDeltas(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex, ConstArrayView<float> xs, ConstArrayView<float> ys, ConstArrayView<float> zs)
-
void setBlendShapeTargetDeltas(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex, RawVector3Vector &&deltas)
-
void setBlendShapeTargetVertexIndices(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex, ConstArrayView<std::uint32_t> vertexIndices)
-
void pruneBlendShapeTargets(float threshold)
-
void removeMeshes(ConstArrayView<std::uint16_t> meshIndices)
-
void removeJoints(ConstArrayView<std::uint16_t> jointIndices)
-
void removeJointAnimations(ConstArrayView<std::uint16_t> jointIndex)
-
void removeBlendShapes(ConstArrayView<std::uint16_t> blendShapeIndices)
-
void removeAnimatedMaps(ConstArrayView<std::uint16_t> animatedMapIndices)
-
explicit DNACalibDNAReaderImpl(MemoryResource *memRes_)
-
class dnac::LODConstraint
Collaboration diagram for dnac::LODConstraint:
Public Functions
-
LODConstraint(std::uint16_t maxLOD, std::uint16_t minLOD, MemoryResource *memRes)
-
LODConstraint(ConstArrayView<std::uint16_t> lods, MemoryResource *memRes)
-
bool hasImpactOn(std::uint16_t lodCount) const
-
std::uint16_t getMaxLOD() const
-
std::uint16_t getMinLOD() const
-
std::uint16_t getLODCount() const
-
void clampTo(std::uint16_t lodCount)
-
void applyTo(Vector<std::uint16_t> &unconstrainedLODs) const
-
void applyTo(DynArray<std::uint16_t> &unconstrainedLODs) const
Private Members
-
Vector<std::uint16_t> lods
-
LODConstraint(std::uint16_t maxLOD, std::uint16_t minLOD, MemoryResource *memRes)
-
class dnac::LODMapping
Inheritence diagram for dnac::LODMapping:
Collaboration diagram for dnac::LODMapping:
Subclassed by dnac::RawLODMapping
Public Functions
-
explicit LODMapping(MemoryResource *memRes_)
-
std::uint16_t getLODCount() const
-
void resetIndices()
-
void resetLODs()
-
void reset()
-
void setLODCount(std::uint16_t lodCount)
-
void discardLODs(const LODConstraint &lodConstraint)
-
ConstArrayView<std::uint16_t> getIndices(std::uint16_t lod) const
-
std::uint16_t getIndexListCount() const
-
void clearIndices(std::uint16_t index)
-
void addIndices(std::uint16_t index, const std::uint16_t *source, std::uint16_t count)
-
void associateLODWithIndices(std::uint16_t lod, std::uint16_t index)
-
void mapIndices(std::function<std::uint16_t(std::uint16_t)> mapper)
-
void filterIndices(std::function<bool(std::uint16_t)> filterer)
-
UnorderedSet<std::uint16_t> getCombinedDistinctIndices(MemoryResource *memRes) const
Private Functions
-
void cleanupIndices()
-
explicit LODMapping(MemoryResource *memRes_)
-
template<class TReaderBase>
class dnac::ReaderImpl : public TReaderBase, public virtual dnac::BaseImpl Inheritence diagram for dnac::ReaderImpl:
Collaboration diagram for dnac::ReaderImpl:
Public Functions
-
inline explicit ReaderImpl(MemoryResource *memRes_)
-
inline StringView getName() const override
-
inline Archetype getArchetype() const override
-
inline Gender getGender() const override
-
inline std::uint16_t getAge() const override
-
inline std::uint32_t getMetaDataCount() const override
-
inline StringView getMetaDataKey(std::uint32_t index) const override
-
inline StringView getMetaDataValue(const char *key) const override
-
inline TranslationUnit getTranslationUnit() const override
-
inline RotationUnit getRotationUnit() const override
-
inline CoordinateSystem getCoordinateSystem() const override
-
inline std::uint16_t getLODCount() const override
-
inline std::uint16_t getDBMaxLOD() const override
-
inline StringView getDBComplexity() const override
-
inline StringView getDBName() const override
-
inline std::uint16_t getGUIControlCount() const override
-
inline StringView getGUIControlName(std::uint16_t index) const override
-
inline std::uint16_t getRawControlCount() const override
-
inline StringView getRawControlName(std::uint16_t index) const override
-
inline std::uint16_t getJointCount() const override
-
inline StringView getJointName(std::uint16_t index) const override
-
inline std::uint16_t getJointIndexListCount() const override
-
inline ConstArrayView<std::uint16_t> getJointIndicesForLOD(std::uint16_t lod) const override
-
inline std::uint16_t getJointParentIndex(std::uint16_t index) const override
-
inline std::uint16_t getBlendShapeChannelCount() const override
-
inline StringView getBlendShapeChannelName(std::uint16_t index) const override
-
inline std::uint16_t getBlendShapeChannelIndexListCount() const override
-
inline ConstArrayView<std::uint16_t> getBlendShapeChannelIndicesForLOD(std::uint16_t lod) const override
-
inline std::uint16_t getAnimatedMapCount() const override
-
inline StringView getAnimatedMapName(std::uint16_t index) const override
-
inline std::uint16_t getAnimatedMapIndexListCount() const override
-
inline ConstArrayView<std::uint16_t> getAnimatedMapIndicesForLOD(std::uint16_t lod) const override
-
inline std::uint16_t getMeshCount() const override
-
inline StringView getMeshName(std::uint16_t index) const override
-
inline std::uint16_t getMeshIndexListCount() const override
-
inline ConstArrayView<std::uint16_t> getMeshIndicesForLOD(std::uint16_t lod) const override
-
inline std::uint16_t getMeshBlendShapeChannelMappingCount() const override
-
inline MeshBlendShapeChannelMapping getMeshBlendShapeChannelMapping(std::uint16_t index) const override
-
inline ConstArrayView<std::uint16_t> getMeshBlendShapeChannelMappingIndicesForLOD(std::uint16_t lod) const override
-
inline Vector3 getNeutralJointTranslation(std::uint16_t index) const override
-
inline ConstArrayView<float> getNeutralJointTranslationXs() const override
-
inline ConstArrayView<float> getNeutralJointTranslationYs() const override
-
inline ConstArrayView<float> getNeutralJointTranslationZs() const override
-
inline Vector3 getNeutralJointRotation(std::uint16_t index) const override
-
inline ConstArrayView<float> getNeutralJointRotationXs() const override
-
inline ConstArrayView<float> getNeutralJointRotationYs() const override
-
inline ConstArrayView<float> getNeutralJointRotationZs() const override
-
inline ConstArrayView<std::uint16_t> getGUIToRawInputIndices() const override
-
inline ConstArrayView<std::uint16_t> getGUIToRawOutputIndices() const override
-
inline ConstArrayView<float> getGUIToRawFromValues() const override
-
inline ConstArrayView<float> getGUIToRawToValues() const override
-
inline ConstArrayView<float> getGUIToRawSlopeValues() const override
-
inline ConstArrayView<float> getGUIToRawCutValues() const override
-
inline std::uint16_t getPSDCount() const override
-
inline ConstArrayView<std::uint16_t> getPSDRowIndices() const override
-
inline ConstArrayView<std::uint16_t> getPSDColumnIndices() const override
-
inline ConstArrayView<float> getPSDValues() const override
-
inline std::uint16_t getJointRowCount() const override
-
inline std::uint16_t getJointColumnCount() const override
-
inline ConstArrayView<std::uint16_t> getJointVariableAttributeIndices(std::uint16_t lod) const override
-
inline std::uint16_t getJointGroupCount() const override
-
inline ConstArrayView<std::uint16_t> getJointGroupLODs(std::uint16_t jointGroupIndex) const override
-
inline ConstArrayView<std::uint16_t> getJointGroupInputIndices(std::uint16_t jointGroupIndex) const override
-
inline ConstArrayView<std::uint16_t> getJointGroupOutputIndices(std::uint16_t jointGroupIndex) const override
-
inline ConstArrayView<float> getJointGroupValues(std::uint16_t jointGroupIndex) const override
-
inline ConstArrayView<std::uint16_t> getJointGroupJointIndices(std::uint16_t jointGroupIndex) const override
-
inline ConstArrayView<std::uint16_t> getBlendShapeChannelLODs() const override
-
inline ConstArrayView<std::uint16_t> getBlendShapeChannelOutputIndices() const override
-
inline ConstArrayView<std::uint16_t> getBlendShapeChannelInputIndices() const override
-
inline ConstArrayView<std::uint16_t> getAnimatedMapLODs() const override
-
inline ConstArrayView<std::uint16_t> getAnimatedMapInputIndices() const override
-
inline ConstArrayView<std::uint16_t> getAnimatedMapOutputIndices() const override
-
inline ConstArrayView<float> getAnimatedMapFromValues() const override
-
inline ConstArrayView<float> getAnimatedMapToValues() const override
-
inline ConstArrayView<float> getAnimatedMapSlopeValues() const override
-
inline ConstArrayView<float> getAnimatedMapCutValues() const override
-
inline std::uint32_t getVertexPositionCount(std::uint16_t meshIndex) const override
-
inline Position getVertexPosition(std::uint16_t meshIndex, std::uint32_t vertexIndex) const override
-
inline ConstArrayView<float> getVertexPositionXs(std::uint16_t meshIndex) const override
-
inline ConstArrayView<float> getVertexPositionYs(std::uint16_t meshIndex) const override
-
inline ConstArrayView<float> getVertexPositionZs(std::uint16_t meshIndex) const override
-
inline std::uint32_t getVertexTextureCoordinateCount(std::uint16_t meshIndex) const override
-
inline TextureCoordinate getVertexTextureCoordinate(std::uint16_t meshIndex, std::uint32_t textureCoordinateIndex) const override
-
inline ConstArrayView<float> getVertexTextureCoordinateUs(std::uint16_t meshIndex) const override
-
inline ConstArrayView<float> getVertexTextureCoordinateVs(std::uint16_t meshIndex) const override
-
inline std::uint32_t getVertexNormalCount(std::uint16_t meshIndex) const override
-
inline Normal getVertexNormal(std::uint16_t meshIndex, std::uint32_t normalIndex) const override
-
inline ConstArrayView<float> getVertexNormalXs(std::uint16_t meshIndex) const override
-
inline ConstArrayView<float> getVertexNormalYs(std::uint16_t meshIndex) const override
-
inline ConstArrayView<float> getVertexNormalZs(std::uint16_t meshIndex) const override
-
inline std::uint32_t getFaceCount(std::uint16_t meshIndex) const override
-
inline ConstArrayView<std::uint32_t> getFaceVertexLayoutIndices(std::uint16_t meshIndex, std::uint32_t faceIndex) const override
-
inline std::uint32_t getVertexLayoutCount(std::uint16_t meshIndex) const override
-
inline VertexLayout getVertexLayout(std::uint16_t meshIndex, std::uint32_t layoutIndex) const override
-
inline ConstArrayView<std::uint32_t> getVertexLayoutPositionIndices(std::uint16_t meshIndex) const override
-
inline ConstArrayView<std::uint32_t> getVertexLayoutTextureCoordinateIndices(std::uint16_t meshIndex) const override
-
inline ConstArrayView<std::uint32_t> getVertexLayoutNormalIndices(std::uint16_t meshIndex) const override
-
inline std::uint16_t getMaximumInfluencePerVertex(std::uint16_t meshIndex) const override
-
inline std::uint32_t getSkinWeightsCount(std::uint16_t meshIndex) const override
-
inline ConstArrayView<float> getSkinWeightsValues(std::uint16_t meshIndex, std::uint32_t vertexIndex) const override
-
inline ConstArrayView<std::uint16_t> getSkinWeightsJointIndices(std::uint16_t meshIndex, std::uint32_t vertexIndex) const override
-
inline std::uint16_t getBlendShapeTargetCount(std::uint16_t meshIndex) const override
-
inline std::uint16_t getBlendShapeChannelIndex(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex) const override
-
inline std::uint32_t getBlendShapeTargetDeltaCount(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex) const override
-
inline Delta getBlendShapeTargetDelta(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex, std::uint32_t deltaIndex) const override
-
inline ConstArrayView<float> getBlendShapeTargetDeltaXs(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex) const override
-
inline ConstArrayView<float> getBlendShapeTargetDeltaYs(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex) const override
-
inline ConstArrayView<float> getBlendShapeTargetDeltaZs(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex) const override
-
inline ConstArrayView<std::uint32_t> getBlendShapeTargetVertexIndices(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex) const override
-
void unload(DataLayer layer) override
Protected Attributes
-
mutable DenormalizedData<TReaderBase> cache
-
inline explicit ReaderImpl(MemoryResource *memRes_)
-
template<class TWriterBase>
class dnac::WriterImpl : public TWriterBase, public virtual dnac::BaseImpl Inheritence diagram for dnac::WriterImpl:
Collaboration diagram for dnac::WriterImpl:
Public Functions
-
explicit WriterImpl(MemoryResource *memRes_)
-
inline void setName(const char *name) override
-
inline void setArchetype(Archetype archetype) override
-
inline void setGender(Gender gender) override
-
inline void setAge(std::uint16_t age) override
-
inline void clearMetaData() override
-
inline void setMetaData(const char *key, const char *value) override
-
inline void setTranslationUnit(TranslationUnit unit) override
-
inline void setRotationUnit(RotationUnit unit) override
-
inline void setCoordinateSystem(CoordinateSystem system) override
-
inline void setLODCount(std::uint16_t lodCount) override
-
inline void setDBMaxLOD(std::uint16_t lod) override
-
inline void setDBComplexity(const char *name) override
-
inline void setDBName(const char *name) override
-
inline void clearGUIControlNames() override
-
inline void setGUIControlName(std::uint16_t index, const char *name) override
-
inline void clearRawControlNames() override
-
inline void setRawControlName(std::uint16_t index, const char *name) override
-
inline void clearJointNames() override
-
inline void setJointName(std::uint16_t index, const char *name) override
-
inline void clearJointIndices() override
-
inline void setJointIndices(std::uint16_t index, const std::uint16_t *jointIndices, std::uint16_t count) override
-
inline void clearLODJointMappings() override
-
inline void setLODJointMapping(std::uint16_t lod, std::uint16_t index) override
-
inline void clearBlendShapeChannelNames() override
-
inline void setJointHierarchy(const std::uint16_t *jointIndices, std::uint16_t count) override
-
inline void setBlendShapeChannelName(std::uint16_t index, const char *name) override
-
inline void clearBlendShapeChannelIndices() override
-
inline void setBlendShapeChannelIndices(std::uint16_t index, const std::uint16_t *blendShapeChannelIndices, std::uint16_t count) override
-
inline void clearLODBlendShapeChannelMappings() override
-
inline void setLODBlendShapeChannelMapping(std::uint16_t lod, std::uint16_t index) override
-
inline void clearAnimatedMapNames() override
-
inline void setAnimatedMapName(std::uint16_t index, const char *name) override
-
inline void clearAnimatedMapIndices() override
-
inline void setAnimatedMapIndices(std::uint16_t index, const std::uint16_t *animatedMapIndices, std::uint16_t count) override
-
inline void clearLODAnimatedMapMappings() override
-
inline void setLODAnimatedMapMapping(std::uint16_t lod, std::uint16_t index) override
-
inline void clearMeshNames() override
-
inline void setMeshName(std::uint16_t index, const char *name) override
-
inline void clearMeshIndices() override
-
inline void setMeshIndices(std::uint16_t index, const std::uint16_t *meshIndices, std::uint16_t count) override
-
inline void clearLODMeshMappings() override
-
inline void setLODMeshMapping(std::uint16_t lod, std::uint16_t index) override
-
inline void clearMeshBlendShapeChannelMappings() override
-
inline void setMeshBlendShapeChannelMapping(std::uint32_t index, std::uint16_t meshIndex, std::uint16_t blendShapeChannelIndex) override
-
inline void setNeutralJointTranslations(const Vector3 *translations, std::uint16_t count) override
-
inline void setNeutralJointRotations(const Vector3 *rotations, std::uint16_t count) override
-
inline void setGUIToRawInputIndices(const std::uint16_t *inputIndices, std::uint16_t count) override
-
inline void setGUIToRawOutputIndices(const std::uint16_t *outputIndices, std::uint16_t count) override
-
inline void setGUIToRawFromValues(const float *fromValues, std::uint16_t count) override
-
inline void setGUIToRawToValues(const float *toValues, std::uint16_t count) override
-
inline void setGUIToRawSlopeValues(const float *slopeValues, std::uint16_t count) override
-
inline void setGUIToRawCutValues(const float *cutValues, std::uint16_t count) override
-
inline void setPSDCount(std::uint16_t count) override
-
inline void setPSDRowIndices(const std::uint16_t *rowIndices, std::uint16_t count) override
-
inline void setPSDColumnIndices(const std::uint16_t *columnIndices, std::uint16_t count) override
-
inline void setPSDValues(const float *weights, std::uint16_t count) override
-
inline void setJointRowCount(std::uint16_t rowCount) override
-
inline void setJointColumnCount(std::uint16_t columnCount) override
-
inline void clearJointGroups() override
-
inline void deleteJointGroup(std::uint16_t jointGroupIndex) override
-
inline void setJointGroupLODs(std::uint16_t jointGroupIndex, const std::uint16_t *lods, std::uint16_t count) override
-
inline void setJointGroupInputIndices(std::uint16_t jointGroupIndex, const std::uint16_t *inputIndices, std::uint16_t count) override
-
inline void setJointGroupOutputIndices(std::uint16_t jointGroupIndex, const std::uint16_t *outputIndices, std::uint16_t count) override
-
inline void setJointGroupValues(std::uint16_t jointGroupIndex, const float *values, std::uint32_t count) override
-
inline void setJointGroupJointIndices(std::uint16_t jointGroupIndex, const std::uint16_t *jointIndices, std::uint16_t count) override
-
inline void setBlendShapeChannelLODs(const std::uint16_t *lods, std::uint16_t count) override
-
inline void setBlendShapeChannelInputIndices(const std::uint16_t *inputIndices, std::uint16_t count) override
-
inline void setBlendShapeChannelOutputIndices(const std::uint16_t *outputIndices, std::uint16_t count) override
-
inline void setAnimatedMapLODs(const std::uint16_t *lods, std::uint16_t count) override
-
inline void setAnimatedMapInputIndices(const std::uint16_t *inputIndices, std::uint16_t count) override
-
inline void setAnimatedMapOutputIndices(const std::uint16_t *outputIndices, std::uint16_t count) override
-
inline void setAnimatedMapFromValues(const float *fromValues, std::uint16_t count) override
-
inline void setAnimatedMapToValues(const float *toValues, std::uint16_t count) override
-
inline void setAnimatedMapSlopeValues(const float *slopeValues, std::uint16_t count) override
-
inline void setAnimatedMapCutValues(const float *cutValues, std::uint16_t count) override
-
inline void clearMeshes() override
-
inline void deleteMesh(std::uint16_t meshIndex) override
-
inline void setVertexPositions(std::uint16_t meshIndex, const Position *positions, std::uint32_t count) override
-
inline void setVertexTextureCoordinates(std::uint16_t meshIndex, const TextureCoordinate *textureCoordinates, std::uint32_t count) override
-
inline void setVertexNormals(std::uint16_t meshIndex, const Normal *normals, std::uint32_t count) override
-
inline void setVertexLayouts(std::uint16_t meshIndex, const VertexLayout *layouts, std::uint32_t count) override
-
inline void clearFaceVertexLayoutIndices(std::uint16_t meshIndex) override
-
inline void setFaceVertexLayoutIndices(std::uint16_t meshIndex, std::uint32_t faceIndex, const std::uint32_t *layoutIndices, std::uint32_t count) override
-
inline void setMaximumInfluencePerVertex(std::uint16_t meshIndex, std::uint16_t maxInfluenceCount) override
-
inline void clearSkinWeights(std::uint16_t meshIndex) override
-
inline void setSkinWeightsValues(std::uint16_t meshIndex, std::uint32_t vertexIndex, const float *weights, std::uint16_t count) override
-
inline void setSkinWeightsJointIndices(std::uint16_t meshIndex, std::uint32_t vertexIndex, const std::uint16_t *jointIndices, std::uint16_t count) override
-
inline void clearBlendShapeTargets(std::uint16_t meshIndex) override
-
inline void setBlendShapeChannelIndex(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex, std::uint16_t blendShapeChannelIndex) override
-
inline void setBlendShapeTargetDeltas(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex, const Delta *deltas, std::uint32_t count) override
-
inline void setBlendShapeTargetVertexIndices(std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex, const std::uint32_t *vertexIndices, std::uint32_t count) override
-
explicit WriterImpl(MemoryResource *memRes_)
-
class dnac::AnimatedMapFilter
Collaboration diagram for dnac::AnimatedMapFilter:
Public Functions
-
explicit AnimatedMapFilter(MemoryResource *memRes_)
-
void configure(std::uint16_t animatedMapCount, UnorderedSet<std::uint16_t> allowedAnimatedMapIndices, Matrix<std::uint16_t> lodIndices)
-
void apply(RawDefinition &dest)
-
void apply(RawBehavior &dest)
-
bool passes(std::uint16_t index) const
-
explicit AnimatedMapFilter(MemoryResource *memRes_)
-
class dnac::BlendShapeFilter
Collaboration diagram for dnac::BlendShapeFilter:
Public Functions
-
explicit BlendShapeFilter(MemoryResource *memRes_)
-
void configure(std::uint16_t blendShapeCount, UnorderedSet<std::uint16_t> allowedBlendShapeIndices, Vector<std::uint16_t> blendShapeLODs)
-
void apply(RawDefinition &dest)
-
void apply(RawBehavior &dest)
-
bool passes(std::uint16_t index) const
-
explicit BlendShapeFilter(MemoryResource *memRes_)
-
class dnac::JointFilter
Collaboration diagram for dnac::JointFilter:
Public Functions
-
explicit JointFilter(MemoryResource *memRes_)
-
void configure(std::uint16_t jointCount, UnorderedSet<std::uint16_t> allowedJointIndices, Option option_ = Option::All)
-
void apply(RawDefinition &dest)
-
void apply(RawBehavior &dest)
-
void apply(RawVertexSkinWeights &dest)
-
bool passes(std::uint16_t index) const
-
std::uint16_t remapped(std::uint16_t oldIndex) const
-
std::uint16_t maxRemappedIndex() const
-
explicit JointFilter(MemoryResource *memRes_)
-
class dnac::MeshFilter
Collaboration diagram for dnac::MeshFilter:
Public Functions
-
explicit MeshFilter(MemoryResource *memRes_)
-
void configure(std::uint16_t meshCount, UnorderedSet<std::uint16_t> allowedMeshIndices)
-
void apply(RawDefinition &dest)
-
bool passes(std::uint16_t index) const
-
explicit MeshFilter(MemoryResource *memRes_)
-
class dnac::BoundingBox
Collaboration diagram for dnac::BoundingBox:
Public Functions
-
template<typename TIter, typename std::enable_if<std::is_same<unqualified_iter_value_type<TIter>, fvec2>::value, void>::type* = nullptr>
inline BoundingBox(TIter begin, TIter end, float alpha)
-
template<typename TContainer>
inline explicit BoundingBox(TContainer container, float alpha = defaultAlpha)
-
inline bool contains(const fvec2 &point) const
-
inline fvec2 getMin() const
-
inline fvec2 getMax() const
Public Static Attributes
-
static constexpr float defaultAlpha = 0.0003f
Private Types
-
template<typename TIter, typename std::enable_if<std::is_same<unqualified_iter_value_type<TIter>, fvec2>::value, void>::type* = nullptr>
-
class dnac::Triangle
Collaboration diagram for dnac::Triangle:
-
class dnac::UVBarycentricMapping
Collaboration diagram for dnac::UVBarycentricMapping:
Public Types
-
using BarycentricPositionIndicesPair = std::pair<fvec3, ConstArrayView<std::uint32_t>>
Public Functions
-
UVBarycentricMapping(const std::function<ConstArrayView<std::uint32_t>(std::uint32_t)> &faceGetter, ConstArrayView<std::uint32_t> vertexPositionIndices, ConstArrayView<std::uint32_t> textureCoordinateUVIndices, ConstArrayView<float> Us, ConstArrayView<float> Vs, std::uint32_t faceCount, MemoryResource *memRes)
-
explicit UVBarycentricMapping(const dna::Reader *reader, std::uint16_t meshIndex, MemoryResource *memRes)
-
ConstArrayView<TrianglePositionIndicesPair> getTriangles() const
-
ConstArrayView<BoundingBox> getBoundingBoxes() const
-
BarycentricPositionIndicesPair getBarycentric(const fvec2 &uv) const
-
using BarycentricPositionIndicesPair = std::pair<fvec3, ConstArrayView<std::uint32_t>>
-
template<class Reader>
struct dnac::DenormalizedData Public Functions
-
inline explicit DenormalizedData(MemoryResource *memRes)
Private Functions
-
inline void populateJointVariableAttributeIndices(const dna::Reader *source, LODMapping &destination)
-
inline void populateMeshBlendShapeMappingIndices(const dna::Reader *source, LODMapping &destination)
-
inline explicit DenormalizedData(MemoryResource *memRes)
-
struct dnac::WeightGetterFactory
Public Types
-
using GetterFunc = std::function<float(float*, std::size_t)>
Public Static Functions
-
static inline GetterFunc create(const Vector<float> &masks)
-
using GetterFunc = std::function<float(float*, std::size_t)>
-
template<typename TFrom, typename TTo = TFrom>
struct dnac::RawSurjectiveMapping : public dnac::SurjectiveMapping<TFrom, TFrom>
-
template<std::size_t Size>
struct dnac::Signature -
Public Members
-
ExpectedValue<SignatureValueType> value
-
ExpectedValue<SignatureValueType> value
-
struct dnac::Version
-
struct dnac::SectionLookupTable
-
Public Members
-
terse::ArchiveOffset<std::uint32_t> descriptor
-
terse::ArchiveOffset<std::uint32_t> definition
-
terse::ArchiveOffset<std::uint32_t> behavior
-
terse::ArchiveOffset<std::uint32_t> controls
-
terse::ArchiveOffset<std::uint32_t> joints
-
terse::ArchiveOffset<std::uint32_t> blendShapeChannels
-
terse::ArchiveOffset<std::uint32_t> animatedMaps
-
terse::ArchiveOffset<std::uint32_t> geometry
-
terse::ArchiveOffset<std::uint32_t> descriptor
-
struct dnac::RawCoordinateSystem
-
struct dnac::RawLODMapping : public dnac::LODMapping
-
struct dnac::RawDescriptor
Public Types
-
using StringPair = std::tuple<String<char>, String<char>>
Public Functions
-
inline RawDescriptor(terse::ArchiveOffset<std::uint32_t> &markerTarget, MemoryResource *memRes)
Public Members
-
terse::ArchiveOffset<std::uint32_t>::Proxy marker
-
String<char> name
-
std::uint16_t archetype
-
std::uint16_t gender
-
std::uint16_t age
-
Vector<StringPair> metadata
-
std::uint16_t translationUnit
-
std::uint16_t rotationUnit
-
RawCoordinateSystem coordinateSystem
-
std::uint16_t lodCount
-
std::uint16_t maxLOD
-
String<char> complexity
-
String<char> dbName
-
using StringPair = std::tuple<String<char>, String<char>>
-
struct dnac::RawVector3Vector
Public Functions
-
inline explicit RawVector3Vector(MemoryResource *memRes)
-
inline RawVector3Vector(std::size_t size_, float initial, MemoryResource *memRes)
-
inline RawVector3Vector(ConstArrayView<float> xs_, ConstArrayView<float> ys_, ConstArrayView<float> zs_, MemoryResource *memRes)
-
inline std::size_t size() const
-
inline void reserve(std::size_t count)
-
inline void resize(std::size_t count)
-
inline void resize(std::size_t count, float value)
-
inline void clear()
-
inline explicit RawVector3Vector(MemoryResource *memRes)
-
struct dnac::RawDefinition
Public Functions
-
inline RawDefinition(terse::ArchiveOffset<std::uint32_t> &markerTarget, MemoryResource *memRes)
Public Members
-
terse::ArchiveOffset<std::uint32_t>::Proxy marker
-
RawLODMapping lodJointMapping
-
RawLODMapping lodBlendShapeMapping
-
RawLODMapping lodAnimatedMapMapping
-
RawLODMapping lodMeshMapping
-
Vector<String<char>> guiControlNames
-
Vector<String<char>> rawControlNames
-
Vector<String<char>> jointNames
-
Vector<String<char>> blendShapeChannelNames
-
Vector<String<char>> animatedMapNames
-
Vector<String<char>> meshNames
-
RawSurjectiveMapping<std::uint16_t> meshBlendShapeChannelMapping
-
DynArray<std::uint16_t> jointHierarchy
-
RawVector3Vector neutralJointTranslations
-
RawVector3Vector neutralJointRotations
-
inline RawDefinition(terse::ArchiveOffset<std::uint32_t> &markerTarget, MemoryResource *memRes)
-
struct dnac::RawConditionalTable
Public Functions
-
inline explicit RawConditionalTable(MemoryResource *memRes)
-
inline explicit RawConditionalTable(MemoryResource *memRes)
-
struct dnac::RawBlendShapeChannels
Public Functions
-
inline explicit RawBlendShapeChannels(MemoryResource *memRes)
-
inline explicit RawBlendShapeChannels(MemoryResource *memRes)
-
struct dnac::RawAnimatedMaps
Public Functions
-
inline explicit RawAnimatedMaps(MemoryResource *memRes)
-
inline explicit RawAnimatedMaps(MemoryResource *memRes)
-
struct dnac::RawBehavior
Public Functions
-
inline RawBehavior(terse::ArchiveOffset<std::uint32_t> &markerTarget, terse::ArchiveOffset<std::uint32_t> &controlsMarkerTarget, terse::ArchiveOffset<std::uint32_t> &jointsMarkerTarget, terse::ArchiveOffset<std::uint32_t> &blendShapeChannelsMarkerTarget, terse::ArchiveOffset<std::uint32_t> &animatedMapsMarkerTarget, MemoryResource *memRes)
Public Members
-
terse::ArchiveOffset<std::uint32_t>::Proxy marker
-
terse::ArchiveOffset<std::uint32_t>::Proxy controlsMarker
-
RawControls controls
-
terse::ArchiveOffset<std::uint32_t>::Proxy jointsMarker
-
terse::ArchiveOffset<std::uint32_t>::Proxy blendShapeChannelsMarker
-
RawBlendShapeChannels blendShapeChannels
-
terse::ArchiveOffset<std::uint32_t>::Proxy animatedMapsMarker
-
RawAnimatedMaps animatedMaps
-
inline RawBehavior(terse::ArchiveOffset<std::uint32_t> &markerTarget, terse::ArchiveOffset<std::uint32_t> &controlsMarkerTarget, terse::ArchiveOffset<std::uint32_t> &jointsMarkerTarget, terse::ArchiveOffset<std::uint32_t> &blendShapeChannelsMarkerTarget, terse::ArchiveOffset<std::uint32_t> &animatedMapsMarkerTarget, MemoryResource *memRes)
-
struct dnac::RawTextureCoordinateVector
-
struct dnac::RawVertexLayoutVector
-
struct dnac::RawFace
Public Functions
-
inline explicit RawFace(MemoryResource *memRes)
Public Members
-
DynArray<std::uint32_t> layoutIndices
-
inline explicit RawFace(MemoryResource *memRes)
-
struct dnac::RawVertexSkinWeights
Public Functions
-
inline explicit RawVertexSkinWeights(MemoryResource *memRes)
-
inline explicit RawVertexSkinWeights(MemoryResource *memRes)
-
struct dnac::RawBlendShapeTarget
Public Functions
-
inline explicit RawBlendShapeTarget(MemoryResource *memRes)
Public Members
-
RawVector3Vector deltas
-
DynArray<std::uint32_t> vertexIndices
-
std::uint16_t blendShapeChannelIndex
-
inline explicit RawBlendShapeTarget(MemoryResource *memRes)
-
struct dnac::RawMesh
Public Functions
-
inline explicit RawMesh(MemoryResource *memRes)
Public Members
-
terse::ArchiveOffset<std::uint32_t> offset
-
RawVector3Vector positions
-
RawTextureCoordinateVector textureCoordinates
-
RawVector3Vector normals
-
RawVertexLayoutVector layouts
-
std::uint16_t maximumInfluencePerVertex
-
Vector<RawVertexSkinWeights> skinWeights
-
Vector<RawBlendShapeTarget> blendShapeTargets
-
terse::ArchiveOffset<std::uint32_t>::Proxy marker
-
inline explicit RawMesh(MemoryResource *memRes)
-
struct dnac::RawGeometry
Public Functions
-
inline RawGeometry(terse::ArchiveOffset<std::uint32_t> &markerTarget, MemoryResource *memRes)
-
inline RawGeometry(terse::ArchiveOffset<std::uint32_t> &markerTarget, MemoryResource *memRes)
-
struct dnac::DNA
Public Functions
-
inline explicit DNA(MemoryResource *memRes_)
-
inline void unloadDefinition()
-
inline void unloadBehavior()
-
inline void unloadGeometry()
Public Members
-
MemoryResource *memRes
-
SectionLookupTable sections
-
RawDescriptor descriptor
-
RawDefinition definition
-
RawBehavior behavior
-
RawGeometry geometry
-
inline explicit DNA(MemoryResource *memRes_)