00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkPropAssembly.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00061 #ifndef __vtkPropAssembly_h 00062 #define __vtkPropAssembly_h 00063 00064 #include "vtkProp.h" 00065 00066 class VTK_COMMON_EXPORT vtkPropAssembly : public vtkProp 00067 { 00068 public: 00069 vtkTypeRevisionMacro(vtkPropAssembly,vtkProp); 00070 void PrintSelf(ostream& os, vtkIndent indent); 00071 00073 static vtkPropAssembly *New(); 00074 00076 void AddPart(vtkProp *); 00077 00079 void RemovePart(vtkProp *); 00080 00082 vtkPropCollection *GetParts(); 00083 00085 00088 int RenderOpaqueGeometry(vtkViewport *ren); 00089 int RenderTranslucentGeometry(vtkViewport *ren); 00090 int RenderOverlay(vtkViewport *); 00092 00096 void ReleaseGraphicsResources(vtkWindow *); 00097 00101 float *GetBounds(); 00102 00104 void ShallowCopy(vtkProp *Prop); 00105 00108 unsigned long int GetMTime(); 00109 00111 00119 void InitPathTraversal(); 00120 vtkAssemblyPath *GetNextPath(); 00121 int GetNumberOfPaths(); 00123 00124 //BTX 00128 void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path); 00129 //ETX 00130 00131 protected: 00132 vtkPropAssembly(); 00133 ~vtkPropAssembly(); 00134 00135 vtkPropCollection *Parts; 00136 float Bounds[6]; 00137 00138 // Support the BuildPaths() method, 00139 vtkTimeStamp PathTime; 00140 void UpdatePaths(); //apply transformations and properties recursively 00141 private: 00142 vtkPropAssembly(const vtkPropAssembly&); // Not implemented. 00143 void operator=(const vtkPropAssembly&); // Not implemented. 00144 }; 00145 00146 #endif 00147 00148 00149 00150