VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkWebGLPolyData.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00020 #ifndef __vtkWebGLPolyData_h 00021 #define __vtkWebGLPolyData_h 00022 00023 #include "vtkWebGLObject.h" 00024 #include "vtkWebGLExporterModule.h" // needed for export macro 00025 00026 class vtkActor; 00027 class vtkMatrix4x4; 00028 class vtkMapper; 00029 class vtkPointData; 00030 class vtkPolyData; 00031 class vtkTriangleFilter; 00032 00033 class VTKWEBGLEXPORTER_EXPORT vtkWebGLPolyData : public vtkWebGLObject 00034 { 00035 public: 00036 static vtkWebGLPolyData* New(); 00037 vtkTypeMacro(vtkWebGLPolyData, vtkWebGLObject); 00038 void PrintSelf(ostream &os, vtkIndent indent); 00039 00040 void GenerateBinaryData(); 00041 unsigned char* GetBinaryData(int part); 00042 int GetBinarySize(int part); 00043 int GetNumberOfParts(); 00044 00045 void GetPoints(vtkTriangleFilter* polydata, vtkActor* actor, int maxSize); 00046 00047 void GetLinesFromPolygon(vtkMapper* mapper, vtkActor* actor, int lineMaxSize, double* edgeColor); 00048 void GetLines(vtkTriangleFilter* polydata, vtkActor* actor, int lineMaxSize); 00049 void GetColorsFromPolyData(unsigned char* color, vtkPolyData* polydata, vtkActor* actor); 00050 00051 // Get following data from the actor 00052 void GetPolygonsFromPointData(vtkTriangleFilter* polydata, vtkActor* actor, int maxSize); 00053 void GetPolygonsFromCellData(vtkTriangleFilter* polydata, vtkActor* actor, int maxSize); 00054 void GetColorsFromPointData(unsigned char* color, vtkPointData* pointdata, vtkPolyData* polydata, vtkActor* actor); 00055 00056 void SetMesh(float* _vertices, int _numberOfVertices, int* _index, int _numberOfIndexes, float* _normals, unsigned char* _colors, float* _tcoords, int maxSize); 00057 void SetLine(float* _points, int _numberOfPoints, int* _index, int _numberOfIndex, unsigned char* _colors, int maxSize); 00058 void SetPoints(float* points, int numberOfPoints, unsigned char* colors, int maxSize); 00059 void SetTransformationMatrix(vtkMatrix4x4* m); 00060 00061 protected: 00062 vtkWebGLPolyData(); 00063 ~vtkWebGLPolyData(); 00064 00065 private: 00066 vtkWebGLPolyData(const vtkWebGLPolyData&); // Not implemented 00067 void operator=(const vtkWebGLPolyData&); // Not implemented 00068 00069 vtkTriangleFilter* TriangleFilter; 00070 00071 class vtkInternal; 00072 vtkInternal* Internal; 00073 }; 00074 00075 #endif