00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkAnnotatedCubeActor.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 =========================================================================*/ 00041 #ifndef __vtkAnnotatedCubeActor_h 00042 #define __vtkAnnotatedCubeActor_h 00043 00044 #include "vtkProp3D.h" 00045 00046 class vtkActor; 00047 class vtkAppendPolyData; 00048 class vtkAssembly; 00049 class vtkCubeSource; 00050 class vtkFeatureEdges; 00051 class vtkPropCollection; 00052 class vtkProperty; 00053 class vtkRenderer; 00054 class vtkTransform; 00055 class vtkTransformFilter; 00056 class vtkVectorText; 00057 00058 class VTK_HYBRID_EXPORT vtkAnnotatedCubeActor : public vtkProp3D 00059 { 00060 public: 00061 static vtkAnnotatedCubeActor *New(); 00062 vtkTypeRevisionMacro(vtkAnnotatedCubeActor,vtkProp3D); 00063 void PrintSelf(ostream& os, vtkIndent indent); 00064 00068 virtual void GetActors(vtkPropCollection *); 00069 00071 00072 virtual int RenderOpaqueGeometry(vtkViewport *viewport); 00073 virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport); 00075 00077 virtual int HasTranslucentPolygonalGeometry(); 00078 00080 void ShallowCopy(vtkProp *prop); 00081 00085 void ReleaseGraphicsResources(vtkWindow *); 00086 00088 00091 void GetBounds(double bounds[6]); 00092 double *GetBounds(); 00094 00096 unsigned long int GetMTime(); 00097 00099 00100 void SetFaceTextScale(double); 00101 vtkGetMacro(FaceTextScale, double); 00103 00105 00106 vtkProperty *GetXPlusFaceProperty(); 00107 vtkProperty *GetXMinusFaceProperty(); 00108 vtkProperty *GetYPlusFaceProperty(); 00109 vtkProperty *GetYMinusFaceProperty(); 00110 vtkProperty *GetZPlusFaceProperty(); 00111 vtkProperty *GetZMinusFaceProperty(); 00113 00115 vtkProperty *GetCubeProperty(); 00116 00118 vtkProperty *GetTextEdgesProperty(); 00119 00121 00122 vtkSetStringMacro( XPlusFaceText ); 00123 vtkGetStringMacro( XPlusFaceText ); 00124 vtkSetStringMacro( XMinusFaceText ); 00125 vtkGetStringMacro( XMinusFaceText ); 00126 vtkSetStringMacro( YPlusFaceText ); 00127 vtkGetStringMacro( YPlusFaceText ); 00128 vtkSetStringMacro( YMinusFaceText ); 00129 vtkGetStringMacro( YMinusFaceText ); 00130 vtkSetStringMacro( ZPlusFaceText ); 00131 vtkGetStringMacro( ZPlusFaceText ); 00132 vtkSetStringMacro( ZMinusFaceText ); 00133 vtkGetStringMacro( ZMinusFaceText ); 00135 00137 00138 void SetTextEdgesVisibility(int); 00139 int GetTextEdgesVisibility(); 00141 00143 00144 void SetCubeVisibility(int); 00145 int GetCubeVisibility(); 00147 00149 00150 void SetFaceTextVisibility(int); 00151 int GetFaceTextVisibility(); 00153 00155 00156 vtkSetMacro(XFaceTextRotation,double); 00157 vtkGetMacro(XFaceTextRotation,double); 00158 vtkSetMacro(YFaceTextRotation,double); 00159 vtkGetMacro(YFaceTextRotation,double); 00160 vtkSetMacro(ZFaceTextRotation,double); 00161 vtkGetMacro(ZFaceTextRotation,double); 00163 00165 00166 vtkAssembly *GetAssembly() 00167 { return this->Assembly; } 00169 00170 protected: 00171 vtkAnnotatedCubeActor(); 00172 ~vtkAnnotatedCubeActor(); 00173 00174 vtkCubeSource *CubeSource; 00175 vtkActor *CubeActor; 00176 00177 vtkAppendPolyData *AppendTextEdges; 00178 vtkFeatureEdges *ExtractTextEdges; 00179 vtkActor *TextEdgesActor; 00180 00181 void UpdateProps(); 00182 00183 char *XPlusFaceText; 00184 char *XMinusFaceText; 00185 char *YPlusFaceText; 00186 char *YMinusFaceText; 00187 char *ZPlusFaceText; 00188 char *ZMinusFaceText; 00189 00190 double FaceTextScale; 00191 00192 double XFaceTextRotation; 00193 double YFaceTextRotation; 00194 double ZFaceTextRotation; 00195 00196 vtkVectorText *XPlusFaceVectorText; 00197 vtkVectorText *XMinusFaceVectorText; 00198 vtkVectorText *YPlusFaceVectorText; 00199 vtkVectorText *YMinusFaceVectorText; 00200 vtkVectorText *ZPlusFaceVectorText; 00201 vtkVectorText *ZMinusFaceVectorText; 00202 00203 vtkActor *XPlusFaceActor; 00204 vtkActor *XMinusFaceActor; 00205 vtkActor *YPlusFaceActor; 00206 vtkActor *YMinusFaceActor; 00207 vtkActor *ZPlusFaceActor; 00208 vtkActor *ZMinusFaceActor; 00209 00210 vtkTransformFilter *TransformFilter; 00211 vtkTransform *Transform; 00212 00213 vtkAssembly *Assembly; 00214 00215 private: 00216 vtkAnnotatedCubeActor(const vtkAnnotatedCubeActor&); // Not implemented. 00217 void operator=(const vtkAnnotatedCubeActor&); // Not implemented. 00218 }; 00219 00220 #endif 00221