Skip to main content

Post-processing tools 2023 R2

GLTFUtils.h

Last update: 17.04.2023
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 
18 namespace ANSYS { namespace Nexus { 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 unsigned short * ConstructRepackIndex(const unsigned int *indices, unsigned int packNum)=0
virtual unsigned int NumPacks() const =0
virtual unsigned int NumAttributes(unsigned int packNum) const =0
virtual const int * ConstructRepackAttribute(const unsigned int *indices, unsigned int attributeSize, const int *attributeData, unsigned int packNum)=0
static Repack * Create(unsigned int elementCount, unsigned int elementSize, const unsigned int *indices)
static void Destroy(Repack *packer)
virtual const float * ConstructRepackAttribute(const unsigned int *indices, unsigned int attributeSize, const float *attributeData, unsigned int packNum)=0
virtual unsigned int NumElements(unsigned int packNum) const =0
void ComputeVertexNormals3(const unsigned int numVertices, const float *vertices, const unsigned int numElements, const unsigned int elementSize, const unsigned short *indices, float *normals)
void ComputeElementNormals3(const unsigned int numVertices, const float *vertices, const unsigned int numElements, const unsigned int elementSize, const unsigned short *indices, float *normals)
GLTFWriter API Documentation.
Definition: GLTFAnimation.h:19