VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkPropAssembly.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 =========================================================================*/ 00049 #ifndef __vtkPropAssembly_h 00050 #define __vtkPropAssembly_h 00051 00052 #include "vtkRenderingCoreModule.h" // For export macro 00053 #include "vtkProp.h" 00054 00055 class VTKRENDERINGCORE_EXPORT vtkPropAssembly : public vtkProp 00056 { 00057 public: 00058 vtkTypeMacro(vtkPropAssembly,vtkProp); 00059 void PrintSelf(ostream& os, vtkIndent indent); 00060 00062 static vtkPropAssembly *New(); 00063 00065 void AddPart(vtkProp *); 00066 00068 void RemovePart(vtkProp *); 00069 00071 vtkPropCollection *GetParts(); 00072 00074 00077 int RenderOpaqueGeometry(vtkViewport *ren); 00078 virtual int RenderTranslucentPolygonalGeometry( vtkViewport *ren); 00079 virtual int RenderVolumetricGeometry( vtkViewport *ren); 00080 int RenderOverlay(vtkViewport *ren); 00082 00084 virtual int HasTranslucentPolygonalGeometry(); 00085 00089 void ReleaseGraphicsResources(vtkWindow *); 00090 00094 double *GetBounds(); 00095 00097 void ShallowCopy(vtkProp *Prop); 00098 00101 unsigned long int GetMTime(); 00102 00104 00112 void InitPathTraversal(); 00113 vtkAssemblyPath *GetNextPath(); 00114 int GetNumberOfPaths(); 00116 00117 //BTX 00119 00122 void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path); 00123 //ETX 00125 00126 protected: 00127 vtkPropAssembly(); 00128 ~vtkPropAssembly(); 00129 00130 vtkPropCollection *Parts; 00131 double Bounds[6]; 00132 00133 // Support the BuildPaths() method, 00134 vtkTimeStamp PathTime; 00135 void UpdatePaths(); //apply transformations and properties recursively 00136 private: 00137 vtkPropAssembly(const vtkPropAssembly&); // Not implemented. 00138 void operator=(const vtkPropAssembly&); // Not implemented. 00139 }; 00140 00141 #endif 00142 00143 00144 00145