00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkPropAssembly.h,v $ 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 =========================================================================*/ 00059 #ifndef __vtkPropAssembly_h 00060 #define __vtkPropAssembly_h 00061 00062 #include "vtkProp.h" 00063 00064 class VTK_FILTERING_EXPORT vtkPropAssembly : public vtkProp 00065 { 00066 public: 00067 vtkTypeRevisionMacro(vtkPropAssembly,vtkProp); 00068 void PrintSelf(ostream& os, vtkIndent indent); 00069 00071 static vtkPropAssembly *New(); 00072 00074 void AddPart(vtkProp *); 00075 00077 void RemovePart(vtkProp *); 00078 00080 vtkPropCollection *GetParts(); 00081 00083 00086 int RenderOpaqueGeometry(vtkViewport *ren); 00087 int RenderTranslucentGeometry(vtkViewport *ren); 00088 int RenderOverlay(vtkViewport *); 00090 00094 void ReleaseGraphicsResources(vtkWindow *); 00095 00099 double *GetBounds(); 00100 00102 void ShallowCopy(vtkProp *Prop); 00103 00106 unsigned long int GetMTime(); 00107 00109 00117 void InitPathTraversal(); 00118 vtkAssemblyPath *GetNextPath(); 00119 int GetNumberOfPaths(); 00121 00122 //BTX 00126 void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path); 00127 //ETX 00128 00129 protected: 00130 vtkPropAssembly(); 00131 ~vtkPropAssembly(); 00132 00133 vtkPropCollection *Parts; 00134 double Bounds[6]; 00135 00136 // Support the BuildPaths() method, 00137 vtkTimeStamp PathTime; 00138 void UpdatePaths(); //apply transformations and properties recursively 00139 private: 00140 vtkPropAssembly(const vtkPropAssembly&); // Not implemented. 00141 void operator=(const vtkPropAssembly&); // Not implemented. 00142 }; 00143 00144 #endif 00145 00146 00147 00148