VTK
vtkAssemblyPath.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkAssemblyPath.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
29 #ifndef vtkAssemblyPath_h
30 #define vtkAssemblyPath_h
31 
32 #include "vtkRenderingCoreModule.h" // For export macro
33 #include "vtkCollection.h"
34 #include "vtkAssemblyNode.h" // used for inlines
35 
36 class vtkMatrix4x4;
37 class vtkTransform;
38 class vtkProp;
39 
41 {
42 public:
44  void PrintSelf(ostream& os, vtkIndent indent);
45 
47  static vtkAssemblyPath *New();
48 
52  void AddNode(vtkProp *p, vtkMatrix4x4 *m);
53 
59  vtkAssemblyNode *GetNextNode();
60 
64  vtkAssemblyNode *GetFirstNode();
65 
68  vtkAssemblyNode *GetLastNode();
69 
71  void DeleteLastNode();
72 
74  void ShallowCopy(vtkAssemblyPath *path);
75 
78  virtual unsigned long GetMTime();
79 
80  //BTX
82 
85  { return static_cast<vtkAssemblyNode *>(this->GetNextItemAsObject(cookie)); }
86  //ETX
88 
89 protected:
91  ~vtkAssemblyPath();
92 
93  void AddNode(vtkAssemblyNode *n); //Internal method adds assembly node
94  vtkTransform *Transform; //Used to perform matrix concatentation
95  vtkProp *TransformedProp; //A transformed prop used to do the rendering
96 
97 private:
98  // hide the standard AddItem from the user and the compiler.
99  void AddItem(vtkObject *o)
100  { this->vtkCollection::AddItem(o); }
101 
102 private:
103  vtkAssemblyPath(const vtkAssemblyPath&); // Not implemented.
104  void operator=(const vtkAssemblyPath&); // Not implemented.
105 };
106 
107 #endif
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:52
void * vtkCollectionSimpleIterator
Definition: vtkCollection.h:47
abstract base class for most VTK objects
Definition: vtkObject.h:61
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:38
void PrintSelf(ostream &os, vtkIndent indent)
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:59
a list of nodes that form an assembly path
virtual unsigned long GetMTime()
a simple class to control print indentation
Definition: vtkIndent.h:38
static vtkCollection * New()
void AddItem(vtkObject *)
create and manipulate unsorted lists of objects
Definition: vtkCollection.h:52
vtkProp * TransformedProp
#define VTKRENDERINGCORE_EXPORT
vtkTransform * Transform
vtkObject * GetNextItemAsObject()
represent a node in an assembly
vtkAssemblyNode * GetNextNode(vtkCollectionSimpleIterator &cookie)