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 =========================================================================*/ 00046 #ifndef __vtkPropAssembly_h 00047 #define __vtkPropAssembly_h 00048 00049 #include "vtkProp.h" 00050 00051 class VTK_FILTERING_EXPORT vtkPropAssembly : public vtkProp 00052 { 00053 public: 00054 vtkTypeRevisionMacro(vtkPropAssembly,vtkProp); 00055 void PrintSelf(ostream& os, vtkIndent indent); 00056 00058 static vtkPropAssembly *New(); 00059 00061 void AddPart(vtkProp *); 00062 00064 void RemovePart(vtkProp *); 00065 00067 vtkPropCollection *GetParts(); 00068 00070 00073 int RenderOpaqueGeometry(vtkViewport *ren); 00074 virtual int RenderTranslucentPolygonalGeometry( vtkViewport *ren); 00075 virtual int RenderVolumetricGeometry( vtkViewport *ren); 00076 int RenderOverlay(vtkViewport *ren); 00078 00080 virtual int HasTranslucentPolygonalGeometry(); 00081 00085 void ReleaseGraphicsResources(vtkWindow *); 00086 00090 double *GetBounds(); 00091 00093 void ShallowCopy(vtkProp *Prop); 00094 00097 unsigned long int GetMTime(); 00098 00100 00108 void InitPathTraversal(); 00109 vtkAssemblyPath *GetNextPath(); 00110 int GetNumberOfPaths(); 00112 00113 //BTX 00117 void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path); 00118 //ETX 00119 00120 protected: 00121 vtkPropAssembly(); 00122 ~vtkPropAssembly(); 00123 00124 vtkPropCollection *Parts; 00125 double Bounds[6]; 00126 00127 // Support the BuildPaths() method, 00128 vtkTimeStamp PathTime; 00129 void UpdatePaths(); //apply transformations and properties recursively 00130 private: 00131 vtkPropAssembly(const vtkPropAssembly&); // Not implemented. 00132 void operator=(const vtkPropAssembly&); // Not implemented. 00133 }; 00134 00135 #endif 00136 00137 00138 00139