0023457: Slow text rendering
[occt.git] / src / OpenGl / OpenGl_GraduatedTrihedron.hxx
index 529620b..3b128bf 100644 (file)
@@ -1,6 +1,6 @@
 // Created on: 2011-09-20
 // Created by: Sergey ZERCHANINOV
-// Copyright (c) 2011-2012 OPEN CASCADE SAS
+// Copyright (c) 2011-2013 OPEN CASCADE SAS
 //
 // The content of this file is subject to the Open CASCADE Technology Public
 // License Version 6.5 (the "License"). You may not use the content of this file
 // purpose or non-infringement. Please see the License for the specific terms
 // and conditions governing the rights and limitations under the License.
 
-
 #ifndef _OpenGl_GraduatedTrihedron_Header
 #define _OpenGl_GraduatedTrihedron_Header
 
-#include <Handle_OpenGl_GraduatedTrihedron.hxx>
+#include <OpenGl_Element.hxx>
 
+#include <OpenGl_Text.hxx>
 #include <Graphic3d_CGraduatedTrihedron.hxx>
 
 class OpenGl_View;
 
-class OpenGl_GraduatedTrihedron : public MMgt_TShared
+class OpenGl_GraduatedTrihedron : public OpenGl_Element
 {
- public:
-  OpenGl_GraduatedTrihedron (const Graphic3d_CGraduatedTrihedron &AData);
-  virtual ~OpenGl_GraduatedTrihedron ();
+
+public:
 
   static void SetMinMax (const Standard_ShortReal xMin, const Standard_ShortReal yMin, const Standard_ShortReal zMin,
                          const Standard_ShortReal xMax, const Standard_ShortReal yMax, const Standard_ShortReal zMax);
 
-  void Render (const Handle(OpenGl_Workspace) &AWorkspace) const;
+public:
+
+  OpenGl_GraduatedTrihedron (const Graphic3d_CGraduatedTrihedron& theData);
+
+  virtual void Render  (const Handle(OpenGl_Workspace)& theWorkspace) const;
+  virtual void Release (const Handle(OpenGl_Context)&   theCtx);
 
-  // Type definition
-  //
-  DEFINE_STANDARD_RTTI(OpenGl_GraduatedTrihedron)
+protected:
 
- protected:
+  virtual ~OpenGl_GraduatedTrihedron();
 
-  const wchar_t *myXName;
-  const wchar_t *myYName;
-  const wchar_t *myZName;
-  unsigned char myDrawXName, myDrawYName, myDrawZName;
-  unsigned char myDrawXValues, myDrawYValues, myDrawZValues;
-  unsigned char myDrawGrid;
-  unsigned char myDrawAxes;
+protected:
+
+  mutable OpenGl_Text       myLabelX;
+  mutable OpenGl_Text       myLabelY;
+  mutable OpenGl_Text       myLabelZ;
+  mutable OpenGl_Text       myLabelValues;
+  mutable OpenGl_AspectText myAspectLabels;
+  mutable OpenGl_AspectText myAspectValues;
+  TEL_COLOUR myXNameColor;
+  TEL_COLOUR myYNameColor;
+  TEL_COLOUR myZNameColor;
+
+  bool myToDrawXName;
+  bool myToDrawYName;
+  bool myToDrawZName;
+  bool myToDrawXValues;
+  bool myToDrawYValues;
+  bool myToDrawZValues;
+  bool myToDrawGrid;
+  bool myToDrawAxes;
   unsigned int myNbX, myNbY, myNbZ;
   int myXOffset, myYOffset, myZOffset;
   int myXAxisOffset, myYAxisOffset, myZAxisOffset;
   unsigned char myDrawXTickmarks, myDrawYTickmarks, myDrawZTickmarks;
   unsigned int myXTickmarkLength, myYTickmarkLength, myZTickmarkLength;
   float myGridColor[3];
-  float myXNameColor[3];
-  float myYNameColor[3];
-  float myZNameColor[3];
-  float myXColor[3];
-  float myYColor[3];
-  float myZColor[3];
-  const char *myFontOfNames;
-  Font_FontAspect myStyleOfNames;
-  int mySizeOfNames;
-  const char* myFontOfValues;
-  Font_FontAspect myStyleOfValues;
-  int mySizeOfValues;
+  TEL_COLOUR myXColor;
+  TEL_COLOUR myYColor;
+  TEL_COLOUR myZColor;
   minMaxValuesCallback myCbCubicAxes;
   void* myPtrVisual3dView;
 
- public:
+public:
+
   DEFINE_STANDARD_ALLOC
+
 };
 
 #endif //_OpenGl_GraduatedTrihedron_Header