VTK
vtkCompositePolyDataMapper2.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkCompositePolyDataMapper2.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
31 #ifndef vtkCompositePolyDataMapper2_h
32 #define vtkCompositePolyDataMapper2_h
33 
34 #include "vtkRenderingOpenGL2Module.h" // For export macro
36 
37 class vtkCompositePolyDataMapper2Internal;
38 
39 class VTKRENDERINGOPENGL2_EXPORT vtkCompositePolyDataMapper2 : public vtkGenericCompositePolyDataMapper2
40 {
41 public:
44  void PrintSelf(ostream& os, vtkIndent indent);
45 
47  virtual void Render(vtkRenderer *ren, vtkActor *act);
48 
49  virtual void RenderPiece(vtkRenderer *ren, vtkActor *act);
50  virtual void RenderPieceDraw(vtkRenderer *ren, vtkActor *act);
51  virtual void RenderEdges(vtkRenderer *ren, vtkActor *act);
52 
53 protected:
56 
58 
59  virtual void BuildBufferObjects(vtkRenderer *ren, vtkActor *act);
60  virtual void AppendOneBufferObject(vtkRenderer *ren,
61  vtkActor *act, vtkPolyData *pd, unsigned int flat_index);
63 
64  std::vector<unsigned int> VertexOffsets;
65  std::vector<unsigned int> IndexOffsets;
66  std::vector<unsigned int> IndexArray;
67  std::vector<unsigned int> EdgeIndexArray;
68  std::vector<unsigned int> EdgeIndexOffsets;
69  unsigned int MaximumFlatIndex;
70 
72  {
73  public:
74  unsigned int StartVertex;
75  unsigned int StartIndex;
76  unsigned int StartEdgeIndex;
77  unsigned int EndVertex;
78  unsigned int EndIndex;
79  unsigned int EndEdgeIndex;
80  double Opacity;
81  bool Visibility;
83  unsigned int PickId;
84  };
85 
86  std::vector<RenderValue> RenderValues;
88 
89  bool UseGeneric; // use the generic render
91 
92  // free up memory
93  void FreeStructures();
94 
95  void BuildRenderValues(vtkRenderer *renderer,
96  vtkActor *actor,
97  vtkDataObject *dobj,
98  unsigned int &flat_index,
99  unsigned int &lastVertex,
100  unsigned int &lastIndex,
101  unsigned int &lastEdgeIndex);
102 
103 private:
105  const vtkCompositePolyDataMapper2&); // Not implemented.
106  void operator=(const vtkCompositePolyDataMapper2&); // Not implemented.
107 };
108 
109 #endif
virtual void RenderPieceDraw(vtkRenderer *ren, vtkActor *act)
std::vector< unsigned int > VertexOffsets
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:50
virtual void RenderEdges(vtkRenderer *ren, vtkActor *act)
std::vector< unsigned int > IndexOffsets
mapper for composite dataset consisting of polygonal data.
mapper for composite dataset consisting of polygonal data.
record modification and/or execution time
Definition: vtkTimeStamp.h:34
abstract specification for renderers
Definition: vtkRenderer.h:63
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:83
std::vector< RenderValue > RenderValues
std::vector< unsigned int > EdgeIndexArray
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:632
std::vector< unsigned int > EdgeIndexOffsets
a simple class to control print indentation
Definition: vtkIndent.h:38
std::vector< unsigned int > IndexArray
void PrintSelf(ostream &os, vtkIndent indent)
virtual void RenderPiece(vtkRenderer *ren, vtkActor *a)
virtual void BuildBufferObjects(vtkRenderer *ren, vtkActor *act)
virtual void Render(vtkRenderer *ren, vtkActor *act)
general representation of visualization data
Definition: vtkDataObject.h:64
static vtkGenericCompositePolyDataMapper2 * New()