0022980: Fixed Standard_Atomic.hxx
[occt.git] / src / QABugs / QABugs_6.cxx
1 // Created on: 2002-05-22
2 // Created by: QA Admin
3 // Copyright (c) 2002-2012 OPEN CASCADE SAS
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
20
21
22 #include <QABugs.hxx>
23
24 #include <Draw_Interpretor.hxx>
25 #include <DBRep.hxx>
26 #include <DrawTrSurf.hxx>
27 #include <AIS_InteractiveContext.hxx>
28 #include <ViewerTest.hxx>
29 #include <AIS_Shape.hxx>
30 #include <TopoDS_Shape.hxx>
31
32 #include <V3d_Viewer.hxx>
33 #include <V3d_View.hxx>
34 #include <Graphic3d_AspectMarker3d.hxx>
35
36 static Standard_Integer OCC281bug (Draw_Interpretor& di, Standard_Integer argc, const char ** argv)
37 {
38   Handle(AIS_InteractiveContext) aContext = ViewerTest::GetAISContext();
39   if(aContext.IsNull()) 
40     { 
41     cerr << "use 'vinit' command before " << argv[0] << "\n";
42     return -1;
43     }
44   if(argc < 4) {
45     di << "Usage : " << argv[0] << " x y TypeOfMarker(0-12)" << "\n";
46     return 1;
47   }
48
49   Standard_Integer x,y,TypeOfMarker;
50   x = atoi(argv[1]);
51   y = atoi(argv[2]);
52   TypeOfMarker = atoi(argv[3]);
53   if( x <= 0) {
54     di << "Bad value x=" << x << "\n";
55     return 1;
56   }
57   if( y <= 0) {
58     di << "Bad value y=" << y << "\n";
59     return 1;
60   }
61   if( TypeOfMarker < 0 || TypeOfMarker > 12) {
62     di << "Bad value TypeOfMarker=" << TypeOfMarker << "\n";
63     return 1;
64   }
65   Aspect_TypeOfMarker AspectTypeOfMarker( (Aspect_TypeOfMarker) TypeOfMarker);
66   /*
67         enumeration TypeOfMarker is     TOM_POINT,
68                                         TOM_PLUS,
69                                         TOM_STAR,
70                                         TOM_O,
71                                         TOM_X,
72                                         TOM_O_POINT,
73                                         TOM_O_PLUS,
74                                         TOM_O_STAR,
75                                         TOM_O_X,
76                                         TOM_BALL,
77                                         TOM_RING1,
78                                         TOM_RING2,
79                                         TOM_RING3,
80                                         TOM_USERDEFINED 
81         end TypeOfMarker;
82         ---Purpose: Definition of types of markers
83         --
84         --          TOM_POINT   point   .
85         --          TOM_PLUS    plus    +
86         --          TOM_STAR    star    *
87         --          TOM_O       circle  O
88         --          TOM_X       cross   x
89         --          TOM_O_POINT a point in a circle
90         --          TOM_O_PLUS  a plus in a circle
91         --          TOM_O_STAR  a star in a circle
92         --          TOM_O_X     a cross in a circle
93         --          TOM_BALL    a ball with 1 color and different saturations
94         --          TOM_RING1   a large ring
95         --          TOM_RING2   a medium ring
96         --          TOM_RING3   a small ring
97         --          TOM_USERDEFINED     defined by Users
98         --
99         ---Category: Enumerations
100   */
101
102   Handle(V3d_Viewer) aViewer = ViewerTest::GetViewerFromContext();
103   Handle(V3d_View) aView = ViewerTest::CurrentView();
104
105   aViewer->ActivateGrid(Aspect_GT_Rectangular, Aspect_GDM_Lines);
106   Handle(Graphic3d_AspectMarker3d) GridAsp = new Graphic3d_AspectMarker3d(AspectTypeOfMarker, Quantity_NOC_BLUE1, 10.);
107   aViewer->SetGridEcho(GridAsp);
108
109   if (aViewer->IsActive()) {
110     if (aViewer->GridEcho()) {
111       V3d_Coordinate X,Y,Z;
112       aView->ConvertToGrid(x,y,X,Y,Z);
113     } else {
114       di << "NOT aViewer->GridEcho()" << "\n";
115       return 1;
116     }
117   } else {
118     di << "NOT aViewer->IsActive()" << "\n";
119     return 1;
120   }
121   return 0;
122 }
123
124 void QABugs::Commands_6(Draw_Interpretor& theCommands) {
125   const char *group = "QABugs";
126
127   theCommands.Add ("OCC281", "OCC281 x y TypeOfMarker(0-12)", __FILE__, OCC281bug, group);
128
129   return;
130 }