/*========================================================================= Program: Visualization Toolkit Module: vtkWebGLDataSet.h Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ /** * @class vtkWebGLDataSet * * vtkWebGLDataSet represent vertices, lines, polygons, and triangles. */ #ifndef vtkWebGLDataSet_h #define vtkWebGLDataSet_h #include "vtkObject.h" #include "vtkWebGLExporterModule.h" // needed for export macro #include "vtkWebGLObject.h" // Needed for the enum #include // needed for md5 class VTKWEBGLEXPORTER_EXPORT vtkWebGLDataSet : public vtkObject { public: static vtkWebGLDataSet* New(); vtkTypeMacro(vtkWebGLDataSet, vtkObject) void PrintSelf(ostream &os, vtkIndent indent) override; void SetVertices(float* v, int size); void SetIndexes(short* i, int size); void SetNormals(float* n); void SetColors(unsigned char* c); void SetPoints(float* p, int size); void SetTCoords(float *t); void SetMatrix(float* m); void SetType(WebGLObjectTypes t); unsigned char* GetBinaryData(); int GetBinarySize(); void GenerateBinaryData(); bool HasChanged(); std::string GetMD5(); protected: vtkWebGLDataSet(); ~vtkWebGLDataSet() override; int NumberOfVertices; int NumberOfPoints; int NumberOfIndexes; WebGLObjectTypes webGLType; float* Matrix; float* vertices; float* normals; short* indexes; float* points; float* tcoords; unsigned char* colors; unsigned char* binary; // Data in binary int binarySize; // Size of the data in binary bool hasChanged; std::string MD5; private: vtkWebGLDataSet(const vtkWebGLDataSet&) = delete; void operator=(const vtkWebGLDataSet&) = delete; }; #endif