0024224: Suspicious logics in changing clipping planes at OpenGl_Structure
[occt.git] / src / OpenGl / OpenGl_Trihedron.hxx
CommitLineData
b311480e 1// Created on: 2011-09-20
2// Created by: Sergey ZERCHANINOV
a174a3c5 3// Copyright (c) 2011-2013 OPEN CASCADE SAS
b311480e 4//
5// The content of this file is subject to the Open CASCADE Technology Public
6// License Version 6.5 (the "License"). You may not use the content of this file
7// except in compliance with the License. Please obtain a copy of the License
8// at http://www.opencascade.org and read it completely before using this file.
9//
10// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12//
13// The Original Code and all software distributed under the License is
14// distributed on an "AS IS" basis, without warranty of any kind, and the
15// Initial Developer hereby disclaims all such warranties, including without
16// limitation, any warranties of merchantability, fitness for a particular
17// purpose or non-infringement. Please see the License for the specific terms
18// and conditions governing the rights and limitations under the License.
19
2166f0fa
SK
20#ifndef _OpenGl_Trihedron_Header
21#define _OpenGl_Trihedron_Header
22
a174a3c5 23#include <OpenGl_Element.hxx>
2166f0fa 24
2166f0fa 25#include <Aspect_TypeOfTriedronPosition.hxx>
2166f0fa
SK
26#include <OpenGl_AspectLine.hxx>
27#include <OpenGl_AspectText.hxx>
a174a3c5 28#include <OpenGl_Text.hxx>
29#include <Quantity_NameOfColor.hxx>
2166f0fa 30
a174a3c5 31class OpenGl_Trihedron : public OpenGl_Element
2166f0fa 32{
a174a3c5 33public:
34
35 static void Setup (const Quantity_NameOfColor theXColor,
36 const Quantity_NameOfColor theYColor,
37 const Quantity_NameOfColor theZColor,
38 const Standard_Real theSizeRatio,
39 const Standard_Real theAxisDiametr,
40 const Standard_Integer theNbFacettes);
2166f0fa 41
a174a3c5 42public:
2166f0fa 43
a174a3c5 44 OpenGl_Trihedron (const Aspect_TypeOfTriedronPosition thePosition,
45 const Quantity_NameOfColor theColor,
46 const Standard_Real theScale,
47 const Standard_Boolean theAsWireframe);
2166f0fa 48
a174a3c5 49 virtual void Render (const Handle(OpenGl_Workspace)& theWorkspace) const;
50 virtual void Release (const Handle(OpenGl_Context)& theCtx);
2166f0fa 51
a174a3c5 52protected:
2166f0fa 53
a174a3c5 54 virtual ~OpenGl_Trihedron();
55
56 void redraw (const Handle(OpenGl_Workspace)& theWorkspace) const;
57 void redrawZBuffer (const Handle(OpenGl_Workspace)& theWorkspace) const;
58
59protected:
2166f0fa
SK
60
61 Aspect_TypeOfTriedronPosition myPos;
62 Standard_Real myScale;
63 Standard_Boolean myIsWireframe;
64 // Parameters for zbuffered mode
65 TEL_COLOUR myXColor;
66 TEL_COLOUR myYColor;
67 TEL_COLOUR myZColor;
68 float myRatio;
69 float myDiameter;
70 int myNbFacettes;
71
a174a3c5 72 OpenGl_AspectLine myAspectLine;
73 OpenGl_AspectText myAspectText;
74 mutable OpenGl_Text myLabelX;
75 mutable OpenGl_Text myLabelY;
76 mutable OpenGl_Text myLabelZ;
77
78public:
2166f0fa 79
1c35b92f 80 DEFINE_STANDARD_ALLOC
a174a3c5 81
2166f0fa
SK
82};
83
84#endif //_OpenGl_Trihedron_Header