Skip to main content

Post-processing tools 2025 R1

GLTFUtils

Last update: 16.07.2025
1/*
2 * Copyright 2018-2021 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.
3 *
4 * Restricted Rights Legend
5 *
6 * Use, duplication, or disclosure of this
7 * software and its documentation by the
8 * Government is subject to restrictions as
9 * set forth in subdivision [(b)(3)(ii)] of
10 * the Rights in Technical Data and Computer
11 * Software clause at 52.227-7013.
12 */
13#ifndef __INCLUDED_GLTF_GLTFUTILS__
14#define __INCLUDED_GLTF_GLTFUTILS__
15
16#include "GLTFCommon.h"
17
18namespace ANSYS { namespace AVZ { namespace GLTFWriter {
22 namespace Utils {
25 GLTFWRITERSPEC void ComputeElementNormals3(const unsigned int numVertices,
26 const float *vertices,
27 const unsigned int numElements,
28 const unsigned int elementSize,
29 const unsigned short *indices,
30 float *normals
31 );
34 GLTFWRITERSPEC void ComputeElementNormals3(const unsigned int numVertices,
35 const float *vertices,
36 const unsigned int numElements,
37 const unsigned int elementSize,
38 const unsigned int *indices,
39 float *normals
40 );
41
45 GLTFWRITERSPEC void ComputeVertexNormals3(const unsigned int numVertices,
46 const float *vertices,
47 const unsigned int numElements,
48 const unsigned int elementSize,
49 const unsigned short *indices,
50 float *normals
51 );
55 GLTFWRITERSPEC void ComputeVertexNormals3(const unsigned int numVertices,
56 const float *vertices,
57 const unsigned int numElements,
58 const unsigned int elementSize,
59 const unsigned int *indices,
60 float *normals
61 );
62
63#if 0
66 GLTFWRITERSPEC unsigned int CreateVectors(unsigned int resolution,
67 float offset,
68 unsigned int numLocations,
69 const float *locations,
70 const float *lengths,
71 const float *directions,
72 std::vector<float> &vertices,
73 std::vector<unsigned int> &indices,
74 std::vector<unsigned int> &newToOld
75 );
77 GLTFWRITERSPEC void CreateStreamTubes(unsigned int resolution,
78 float diameter,
79 unsigned int numLines,
80 const unsigned int *lineLengths,
81 const float *locations,
82 std::vector<float> &vertices,
83 std::vector<unsigned int> &indices,
84 std::vector<unsigned int> &newToOld
85 );
86#endif
87
105 class Repack
106 {
107 protected:
108 virtual ~Repack() {}
109
110 public:
112 static GLTFWRITERSPEC Repack *Create(unsigned int elementCount,
113 unsigned int elementSize,
114 const unsigned int *indices
115 );
117 static GLTFWRITERSPEC void Destroy(Repack *packer);
118
121 GLTFWRITERSPEC virtual unsigned int NumPacks() const = 0;
123 GLTFWRITERSPEC virtual unsigned int NumAttributes(unsigned int packNum
124 ) const = 0;
127 GLTFWRITERSPEC virtual const int *ConstructRepackAttribute(const unsigned int *indices,
128 unsigned int attributeSize,
129 const int *attributeData,
130 unsigned int packNum
131 ) = 0;
134 GLTFWRITERSPEC virtual const float *ConstructRepackAttribute(const unsigned int *indices,
135 unsigned int attributeSize,
136 const float *attributeData,
137 unsigned int packNum
138 ) = 0;
141 GLTFWRITERSPEC virtual unsigned int NumElements(unsigned int packNum
142 ) const = 0;
145 GLTFWRITERSPEC virtual const unsigned short *ConstructRepackIndex(const unsigned int *indices,
146 unsigned int packNum
147 ) = 0;
148 };
149 };
150
151} } }
152
153#endif
Manages repacking of indices from unsigned int type to unsigned short type. This only works for POINT...
Definition GLTFUtils.h:106
virtual const int * ConstructRepackAttribute(const unsigned int *indices, unsigned int attributeSize, const int *attributeData, unsigned int packNum)=0
virtual unsigned int NumAttributes(unsigned int packNum) const =0
virtual unsigned int NumElements(unsigned int packNum) const =0
virtual unsigned int NumPacks() const =0
static Repack * Create(unsigned int elementCount, unsigned int elementSize, const unsigned int *indices)
virtual const unsigned short * ConstructRepackIndex(const unsigned int *indices, unsigned int packNum)=0
static void Destroy(Repack *packer)
virtual const float * ConstructRepackAttribute(const unsigned int *indices, unsigned int attributeSize, const float *attributeData, unsigned int packNum)=0
void ComputeElementNormals3(const unsigned int numVertices, const float *vertices, const unsigned int numElements, const unsigned int elementSize, const unsigned short *indices, float *normals)
void ComputeVertexNormals3(const unsigned int numVertices, const float *vertices, const unsigned int numElements, const unsigned int elementSize, const unsigned short *indices, float *normals)
GLTFWriter API Documentation.

Connect with Ansys