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 "vtkProp.h" 00053 00054 class VTK_FILTERING_EXPORT vtkPropAssembly : public vtkProp 00055 { 00056 public: 00057 vtkTypeMacro(vtkPropAssembly,vtkProp); 00058 void PrintSelf(ostream& os, vtkIndent indent); 00059 00061 static vtkPropAssembly *New(); 00062 00064 void AddPart(vtkProp *); 00065 00067 void RemovePart(vtkProp *); 00068 00070 vtkPropCollection *GetParts(); 00071 00073 00076 int RenderOpaqueGeometry(vtkViewport *ren); 00077 virtual int RenderTranslucentPolygonalGeometry( vtkViewport *ren); 00078 virtual int RenderVolumetricGeometry( vtkViewport *ren); 00079 int RenderOverlay(vtkViewport *ren); 00081 00083 virtual int HasTranslucentPolygonalGeometry(); 00084 00088 void ReleaseGraphicsResources(vtkWindow *); 00089 00093 double *GetBounds(); 00094 00096 void ShallowCopy(vtkProp *Prop); 00097 00100 unsigned long int GetMTime(); 00101 00103 00111 void InitPathTraversal(); 00112 vtkAssemblyPath *GetNextPath(); 00113 int GetNumberOfPaths(); 00115 00116 //BTX 00120 void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path); 00121 //ETX 00122 00123 protected: 00124 vtkPropAssembly(); 00125 ~vtkPropAssembly(); 00126 00127 vtkPropCollection *Parts; 00128 double Bounds[6]; 00129 00130 // Support the BuildPaths() method, 00131 vtkTimeStamp PathTime; 00132 void UpdatePaths(); //apply transformations and properties recursively 00133 private: 00134 vtkPropAssembly(const vtkPropAssembly&); // Not implemented. 00135 void operator=(const vtkPropAssembly&); // Not implemented. 00136 }; 00137 00138 #endif 00139 00140 00141 00142