VTK
dox/Web/WebGLExporter/vtkWebGLPolyData.h
Go to the documentation of this file.
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