Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# Rendering/vtkAssembly.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkAssembly.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 =========================================================================*/
    00077 #ifndef __vtkAssembly_h
    00078 #define __vtkAssembly_h
    00079
    00080 #include "vtkProp3D.h"
    00081
    00082 class vtkAssemblyPaths;
    00083 class vtkProp3DCollection;
    00084 class vtkMapper;
    00085 class vtkProperty;
    00086 class vtkActor;
    00087
    00088 class VTK_RENDERING_EXPORT vtkAssembly : public vtkProp3D
    00089 {
    00090 public:
    00091   static vtkAssembly *New();
    00092
    00093   vtkTypeRevisionMacro(vtkAssembly,vtkProp3D);
    00094   void PrintSelf(ostream& os, vtkIndent indent);
    00095
    00097   void AddPart(vtkProp3D *);
    00098
    00100   void RemovePart(vtkProp3D *);
    00101
    00103   vtkProp3DCollection *GetParts();
    00104
    00106
    00109   void GetActors(vtkPropCollection *);
    00110   void GetVolumes(vtkPropCollection *);
    00112
    00114
    00119   int RenderOpaqueGeometry(vtkViewport *ren);
    00120   int RenderTranslucentGeometry(vtkViewport *ren);
    00122
    00126   void ReleaseGraphicsResources(vtkWindow *);
    00127
    00129
    00139   void InitPathTraversal();
    00140   vtkAssemblyPath *GetNextPath();
    00141   int GetNumberOfPaths();
    00143
    00145
    00146   void GetBounds(float bounds[6]) {this->vtkProp3D::GetBounds( bounds );};
    00147   float *GetBounds();
    00149
    00152   unsigned long int GetMTime();
    00153
    00155   void ShallowCopy(vtkProp *prop);
    00156
    00157 //BTX
    00162   void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path);
    00163 //ETX
    00164
    00165 protected:
    00166   vtkAssembly();
    00167   ~vtkAssembly();
    00168
    00169   // Keep a list of direct descendants of the assembly hierarchy
    00170   vtkProp3DCollection *Parts;
    00171
    00172   // Support the BuildPaths() method. Caches last paths built for
    00173   // performance.
    00174   vtkTimeStamp PathTime;
    00175   virtual void UpdatePaths(); //apply transformations and properties recursively
    00176
    00177 private:
    00178   vtkAssembly(const vtkAssembly&);  // Not implemented.
    00179   void operator=(const vtkAssembly&);  // Not implemented.
    00180 };
    00181
    00183 inline vtkProp3DCollection *vtkAssembly::GetParts() {return this->Parts;}
    00184
    00185 #endif
    00186
    00187
    00188
    00189