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 =========================================================================*/ 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 vtkTypeRevisionMacro(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 int RenderTranslucentGeometry(vtkViewport *ren); 00078 int RenderOverlay(vtkViewport *); 00080 00084 void ReleaseGraphicsResources(vtkWindow *); 00085 00089 double *GetBounds(); 00090 00092 void ShallowCopy(vtkProp *Prop); 00093 00096 unsigned long int GetMTime(); 00097 00099 00107 void InitPathTraversal(); 00108 vtkAssemblyPath *GetNextPath(); 00109 int GetNumberOfPaths(); 00111 00112 //BTX 00116 void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path); 00117 //ETX 00118 00119 protected: 00120 vtkPropAssembly(); 00121 ~vtkPropAssembly(); 00122 00123 vtkPropCollection *Parts; 00124 double Bounds[6]; 00125 00126 // Support the BuildPaths() method, 00127 vtkTimeStamp PathTime; 00128 void UpdatePaths(); //apply transformations and properties recursively 00129 private: 00130 vtkPropAssembly(const vtkPropAssembly&); // Not implemented. 00131 void operator=(const vtkPropAssembly&); // Not implemented. 00132 }; 00133 00134 #endif 00135 00136 00137 00138