DNA Calib 1.1
Project brief
Public Member Functions | Static Public Member Functions | List of all members
dna::JSONStreamWriter Class Reference

#include <JSONStreamWriter.h>

Inheritance diagram for dna::JSONStreamWriter:
Inheritance graph
Collaboration diagram for dna::JSONStreamWriter:
Collaboration graph

Public Member Functions

 ~JSONStreamWriter () override
 
- Public Member Functions inherited from dna::StreamWriter
 ~StreamWriter () override
 
virtual void write ()=0
 Write data to stream from internal structures. More...
 
- Public Member Functions inherited from dna::Writer
 ~Writer () override
 
void setFrom (const Reader *source, DataLayer layer=DataLayer::All, MemoryResource *memRes=nullptr)
 Initialize the Writer from the given Reader. More...
 
- Public Member Functions inherited from dna::BehaviorWriter
virtual void setGUIToRawInputIndices (const std::uint16_t *inputIndices, std::uint16_t count)=0
 Input indices used for mapping gui to raw controls. More...
 
virtual void setGUIToRawOutputIndices (const std::uint16_t *outputIndices, std::uint16_t count)=0
 Output indices used for mapping gui to raw controls. More...
 
virtual void setGUIToRawFromValues (const float *fromValues, std::uint16_t count)=0
 Filter values(lower-bounds) used to decide whether a particular entry should be evaluated or not during gui to raw control mapping. More...
 
virtual void setGUIToRawToValues (const float *toValues, std::uint16_t count)=0
 Filter values(upper-bounds) used to decide whether a particular entry should be evaluated or not during gui to raw control mapping. More...
 
virtual void setGUIToRawSlopeValues (const float *slopeValues, std::uint16_t count)=0
 Computational values(slope/gradient) used for calculating the output value during gui to raw control mapping. More...
 
virtual void setGUIToRawCutValues (const float *cutValues, std::uint16_t count)=0
 Computational values(vertical intercept) used for calculating the output value during gui to raw control mapping. More...
 
virtual void setPSDCount (std::uint16_t count)=0
 The number of distinct PSD expressions. More...
 
virtual void setPSDRowIndices (const std::uint16_t *rowIndices, std::uint16_t count)=0
 PSD(input) indices which will become the rows of the PSD matrix. More...
 
virtual void setPSDColumnIndices (const std::uint16_t *columnIndices, std::uint16_t count)=0
 Control(input) indices which will become the columns of the PSD matrix. More...
 
virtual void setPSDValues (const float *weights, std::uint16_t count)=0
 Weights associated with each PSD row and column pair. More...
 
virtual void setJointRowCount (std::uint16_t rowCount)=0
 Number of rows in the entire, uncompressed joint matrix. More...
 
virtual void setJointColumnCount (std::uint16_t columnCount)=0
 Number of columns in the entire, uncompressed joint matrix. More...
 
virtual void clearJointGroups ()=0
 Delete all joint groups. More...
 
virtual void deleteJointGroup (std::uint16_t jointGroupIndex)=0
 Delete the specified joint group. More...
 
virtual void setJointGroupLODs (std::uint16_t jointGroupIndex, const std::uint16_t *lods, std::uint16_t count)=0
 Number of rows per each level of detail for the specified joint group. More...
 
virtual void setJointGroupInputIndices (std::uint16_t jointGroupIndex, const std::uint16_t *inputIndices, std::uint16_t count)=0
 Column indices that the specified joint group contains. More...
 
virtual void setJointGroupOutputIndices (std::uint16_t jointGroupIndex, const std::uint16_t *outputIndices, std::uint16_t count)=0
 Row indices that the specified joint group contains. More...
 
virtual void setJointGroupValues (std::uint16_t jointGroupIndex, const float *values, std::uint32_t count)=0
 Values that the specified joint group contains. More...
 
virtual void setJointGroupJointIndices (std::uint16_t jointGroupIndex, const std::uint16_t *jointIndices, std::uint16_t count)=0
 Joint indices that the specified joint group contains. More...
 
virtual void setBlendShapeChannelLODs (const std::uint16_t *lods, std::uint16_t count)=0
 Input index count per each level of detail for blend shapes. More...
 
virtual void setBlendShapeChannelInputIndices (const std::uint16_t *inputIndices, std::uint16_t count)=0
 Input indices used to index into the input vector. More...
 
virtual void setBlendShapeChannelOutputIndices (const std::uint16_t *outputIndices, std::uint16_t count)=0
 Output indices specify the positions of blend shape output values. More...
 
virtual void setAnimatedMapLODs (const std::uint16_t *lods, std::uint16_t count)=0
 Row count per each level of detail for animated maps. More...
 
virtual void setAnimatedMapInputIndices (const std::uint16_t *inputIndices, std::uint16_t count)=0
 Input indices used to index into the array of input values. More...
 
virtual void setAnimatedMapOutputIndices (const std::uint16_t *outputIndices, std::uint16_t count)=0
 Output indices that specify the computed output value's position. More...
 
virtual void setAnimatedMapFromValues (const float *fromValues, std::uint16_t count)=0
 Filter values(lower-bounds) used to decide whether a particular entry should be evaluated or not. More...
 
virtual void setAnimatedMapToValues (const float *toValues, std::uint16_t count)=0
 Filter values(upper-bounds) used to decide whether a particular entry should be evaluated or not. More...
 
virtual void setAnimatedMapSlopeValues (const float *slopeValues, std::uint16_t count)=0
 Computational values(slope/gradient) used for calculating the output value. More...
 
virtual void setAnimatedMapCutValues (const float *cutValues, std::uint16_t count)=0
 Computational values(vertical intercept) used for calculating the output value. More...
 
- Public Member Functions inherited from dna::DefinitionWriter
virtual void clearGUIControlNames ()=0
 Delete all stored GUI control names. More...
 
virtual void setGUIControlName (std::uint16_t index, const char *name)=0
 Name of the specified GUI control. More...
 
virtual void clearRawControlNames ()=0
 Delete all stored raw control names. More...
 
virtual void setRawControlName (std::uint16_t index, const char *name)=0
 Name of the specified raw control. More...
 
virtual void clearJointNames ()=0
 Delete all stored joint names. More...
 
virtual void setJointName (std::uint16_t index, const char *name)=0
 Name of the specified joint. More...
 
virtual void clearJointIndices ()=0
 Delete all stored joint indices. More...
 
virtual void setJointIndices (std::uint16_t index, const std::uint16_t *jointIndices, std::uint16_t count)=0
 Store a list of joint indices onto a specified index. More...
 
virtual void clearLODJointMappings ()=0
 Delete all stored LOD to joint list index mapping entries. More...
 
virtual void setLODJointMapping (std::uint16_t lod, std::uint16_t index)=0
 Set which joints belong to which level of detail. More...
 
virtual void clearBlendShapeChannelNames ()=0
 Delete all stored blend shape channel names. More...
 
virtual void setBlendShapeChannelName (std::uint16_t index, const char *name)=0
 Name of the specified blend shape channel. More...
 
virtual void clearBlendShapeChannelIndices ()=0
 Delete all stored blend shape channel indices. More...
 
virtual void setBlendShapeChannelIndices (std::uint16_t index, const std::uint16_t *blendShapeChannelIndices, std::uint16_t count)=0
 Store a list of blend shape channel name indices onto a specified index. More...
 
virtual void clearLODBlendShapeChannelMappings ()=0
 Delete all stored LOD to blend shape channel list index mapping entries. More...
 
virtual void setLODBlendShapeChannelMapping (std::uint16_t lod, std::uint16_t index)=0
 Set which blend shape channels belong to which level of detail. More...
 
virtual void clearAnimatedMapNames ()=0
 Delete all stored animated map names. More...
 
virtual void setAnimatedMapName (std::uint16_t index, const char *name)=0
 Name of the specified animated map. More...
 
virtual void clearAnimatedMapIndices ()=0
 Delete all stored animated map indices. More...
 
virtual void setAnimatedMapIndices (std::uint16_t index, const std::uint16_t *animatedMapIndices, std::uint16_t count)=0
 Store a list of animated map name indices onto a specified index. More...
 
virtual void clearLODAnimatedMapMappings ()=0
 Delete all stored LOD to animated map list index mapping entries. More...
 
virtual void setLODAnimatedMapMapping (std::uint16_t lod, std::uint16_t index)=0
 Set which animated maps belong to which level of detail. More...
 
virtual void clearMeshNames ()=0
 Delete all stored mesh names. More...
 
virtual void setMeshName (std::uint16_t index, const char *name)=0
 Name of the specified mesh. More...
 
virtual void clearMeshIndices ()=0
 Delete all stored mesh indices. More...
 
virtual void setMeshIndices (std::uint16_t index, const std::uint16_t *meshIndices, std::uint16_t count)=0
 Store a list of mesh name indices onto a specified index. More...
 
virtual void clearLODMeshMappings ()=0
 Delete all stored LOD to mesh list index mapping entries. More...
 
virtual void setLODMeshMapping (std::uint16_t lod, std::uint16_t index)=0
 Set which meshes belong to which level of detail. More...
 
virtual void clearMeshBlendShapeChannelMappings ()=0
 Delete all stored mesh to blend shape channel mapping entries. More...
 
virtual void setMeshBlendShapeChannelMapping (std::uint32_t index, std::uint16_t meshIndex, std::uint16_t blendShapeChannelIndex)=0
 Associate a blend shape channel with it's mesh. More...
 
virtual void setJointHierarchy (const std::uint16_t *jointIndices, std::uint16_t count)=0
 A simple array describing the parent-child relationships between joints. More...
 
virtual void setNeutralJointTranslations (const Vector3 *translations, std::uint16_t count)=0
 
virtual void setNeutralJointRotations (const Vector3 *rotations, std::uint16_t count)=0
 
- Public Member Functions inherited from dna::DescriptorWriter
virtual void setName (const char *name)=0
 
virtual void setArchetype (Archetype archetype)=0
 
virtual void setGender (Gender gender)=0
 
virtual void setAge (std::uint16_t age)=0
 
virtual void clearMetaData ()=0
 Empties the metadata storage, delete all key-value pairs. More...
 
virtual void setMetaData (const char *key, const char *value)=0
 Associate the metadata value with the given key. More...
 
virtual void setTranslationUnit (TranslationUnit unit)=0
 
virtual void setRotationUnit (RotationUnit unit)=0
 
virtual void setCoordinateSystem (CoordinateSystem system)=0
 
virtual void setLODCount (std::uint16_t lodCount)=0
 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). More...
 
virtual void setDBMaxLOD (std::uint16_t lod)=0
 The maximum level of detail stored in the DNA data for this character. More...
 
virtual void setDBComplexity (const char *name)=0
 Name of the input control interface used to drive this character rig. More...
 
virtual void setDBName (const char *name)=0
 Name of the database from which the character originates. More...
 
- Public Member Functions inherited from dna::GeometryWriter
virtual void clearMeshes ()=0
 Delete all meshes. More...
 
virtual void deleteMesh (std::uint16_t meshIndex)=0
 Delete the specified mesh. More...
 
virtual void setVertexPositions (std::uint16_t meshIndex, const Position *positions, std::uint32_t count)=0
 List of vertex positions. More...
 
virtual void setVertexTextureCoordinates (std::uint16_t meshIndex, const TextureCoordinate *textureCoordinates, std::uint32_t count)=0
 List of vertex texture coordinates. More...
 
virtual void setVertexNormals (std::uint16_t meshIndex, const Normal *normals, std::uint32_t count)=0
 List of vertex normals. More...
 
virtual void setVertexLayouts (std::uint16_t meshIndex, const VertexLayout *layouts, std::uint32_t count)=0
 List of vertex layouts the belong to the specified mesh. More...
 
virtual void clearFaceVertexLayoutIndices (std::uint16_t meshIndex)=0
 Delete all lists of vertex layout indices for the specified mesh. More...
 
virtual void setFaceVertexLayoutIndices (std::uint16_t meshIndex, std::uint32_t faceIndex, const std::uint32_t *layoutIndices, std::uint32_t count)=0
 Vertex layout indices that belong to the specified face. More...
 
virtual void setMaximumInfluencePerVertex (std::uint16_t meshIndex, std::uint16_t maxInfluenceCount)=0
 
virtual void clearSkinWeights (std::uint16_t meshIndex)=0
 Delete all skin weights for the specified mesh. More...
 
virtual void setSkinWeightsValues (std::uint16_t meshIndex, std::uint32_t vertexIndex, const float *weights, std::uint16_t count)=0
 List of skin weights influencing the referenced vertex. More...
 
virtual void setSkinWeightsJointIndices (std::uint16_t meshIndex, std::uint32_t vertexIndex, const std::uint16_t *jointIndices, std::uint16_t count)=0
 List of joint indices associated with each skin weight for the specified vertex. More...
 
virtual void clearBlendShapeTargets (std::uint16_t meshIndex)=0
 Delete all blend shape targets for the specified mesh. More...
 
virtual void setBlendShapeChannelIndex (std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex, std::uint16_t blendShapeChannelIndex)=0
 The matching blend shape channel index of the specified blend shape target. More...
 
virtual void setBlendShapeTargetDeltas (std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex, const Delta *deltas, std::uint32_t count)=0
 List of deltas for each affected vertex. More...
 
virtual void setBlendShapeTargetVertexIndices (std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex, const std::uint32_t *vertexIndices, std::uint32_t count)=0
 Vertex position indices affected by the specified blend shape target. More...
 

Static Public Member Functions

static JSONStreamWritercreate (BoundedIOStream *stream, std::uint32_t indentWidth=4u, MemoryResource *memRes=nullptr)
 Factory method for creation of JSONStreamWriter. More...
 
static void destroy (JSONStreamWriter *instance)
 Method for freeing a JSONStreamWriter instance. More...
 

Additional Inherited Members

- Protected Member Functions inherited from dna::BehaviorWriter
virtual ~BehaviorWriter ()
 
- Protected Member Functions inherited from dna::DefinitionWriter
virtual ~DefinitionWriter ()
 
- Protected Member Functions inherited from dna::DescriptorWriter
virtual ~DescriptorWriter ()
 
- Protected Member Functions inherited from dna::GeometryWriter
virtual ~GeometryWriter ()
 

Constructor & Destructor Documentation

◆ ~JSONStreamWriter()

dna::JSONStreamWriter::~JSONStreamWriter ( )
overridedefault

Member Function Documentation

◆ create()

JSONStreamWriter * dna::JSONStreamWriter::create ( BoundedIOStream stream,
std::uint32_t  indentWidth = 4u,
MemoryResource memRes = nullptr 
)
static

Factory method for creation of JSONStreamWriter.

Parameters
streamStream into which the data is going to be written.
indentWidthNumber of spaces to use for indentation.
memResMemory resource to be used for allocations.
Note
If a memory resource is not given, a default allocation mechanism will be used.
Warning
User is responsible for releasing the returned pointer by calling destroy.
See also
destroy
17 {
18 PolyAllocator<JSONStreamWriterImpl> alloc{memRes};
19 return alloc.newObject(stream, indentWidth, memRes);
20}

◆ destroy()

void dna::JSONStreamWriter::destroy ( JSONStreamWriter instance)
static

Method for freeing a JSONStreamWriter instance.

Parameters
instanceInstance of JSONStreamWriter to be freed.
See also
create
22 {
23 // NOLINTNEXTLINE(cppcoreguidelines-pro-type-static-cast-downcast)
24 auto writer = static_cast<JSONStreamWriterImpl*>(instance);
25 PolyAllocator<JSONStreamWriterImpl> alloc{writer->getMemoryResource()};
26 alloc.deleteObject(writer);
27}

The documentation for this class was generated from the following files: