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