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 "vtkCollection.h"
33 #include "vtkAssemblyNode.h" // used for inlines
34 
35 class vtkMatrix4x4;
36 class vtkTransform;
37 class vtkProp;
38 
40 {
41 public:
43  void PrintSelf(ostream& os, vtkIndent indent);
44 
46  static vtkAssemblyPath *New();
47 
51  void AddNode(vtkProp *p, vtkMatrix4x4 *m);
52 
58  vtkAssemblyNode *GetNextNode();
59 
63  vtkAssemblyNode *GetFirstNode();
64 
67  vtkAssemblyNode *GetLastNode();
68 
70  void DeleteLastNode();
71 
73  void ShallowCopy(vtkAssemblyPath *path);
74 
77  virtual unsigned long GetMTime();
78 
79  //BTX
81 
84  return static_cast<vtkAssemblyNode *>(this->GetNextItemAsObject(cookie));};
85  //ETX
87 
88 protected:
90  ~vtkAssemblyPath();
91 
92  void AddNode(vtkAssemblyNode *n); //Internal method adds assembly node
93  vtkTransform *Transform; //Used to perform matrix concatentation
94  vtkProp *TransformedProp; //A transformed prop used to do the rendering
95 
96 private:
97  // hide the standard AddItem from the user and the compiler.
98  void AddItem(vtkObject *o) { this->vtkCollection::AddItem(o); };
99 
100 private:
101  vtkAssemblyPath(const vtkAssemblyPath&); // Not implemented.
102  void operator=(const vtkAssemblyPath&); // Not implemented.
103 };
104 
105 #endif
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:49
void * vtkCollectionSimpleIterator
Definition: vtkCollection.h:46
abstract base class for most VTK objects
Definition: vtkObject.h:60
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:37
void PrintSelf(ostream &os, vtkIndent indent)
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:58
a list of nodes that form an assembly path
virtual unsigned long GetMTime()
a simple class to control print indentation
Definition: vtkIndent.h:37
static vtkCollection * New()
#define VTK_COMMON_EXPORT
void AddItem(vtkObject *)
create and manipulate unsorted lists of objects
Definition: vtkCollection.h:51
vtkProp * TransformedProp
vtkTransform * Transform
vtkObject * GetNextItemAsObject()
represent a node in an assembly
vtkAssemblyNode * GetNextNode(vtkCollectionSimpleIterator &cookie)