0022898: IGES import fails in german environment
[occt.git] / src / QABugs / QABugs_4.cxx
1 // Created on: 2002-03-19
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 <BRepPrimAPI_MakeSphere.hxx>
33 #include <Graphic3d_AspectFillArea3d.hxx>
34 #include <AIS_Drawer.hxx>
35 #include <Prs3d_ShadingAspect.hxx>
36
37 //#include <AcisData_AcisModel.hxx>
38 #include <TopTools_HSequenceOfShape.hxx>
39
40 #include <tcl.h>
41
42 static Standard_Integer BUC60738 (Draw_Interpretor& di, Standard_Integer /*argc*/, const char ** argv)
43 {
44   
45   Handle(AIS_InteractiveContext) aContext = ViewerTest::GetAISContext();
46   if(aContext.IsNull()) { 
47     di << "use 'vinit' command before " << argv[0] << "\n";
48     return -1;
49   }
50   
51   TopoDS_Shape theSphere = BRepPrimAPI_MakeSphere(gp_Pnt(-40,0,0),20).Shape();
52   Handle_AIS_Shape theAISShape = new AIS_Shape(theSphere);
53
54   //display mode = Shading
55   theAISShape->SetDisplayMode(1);
56         
57   //get the drawer
58   Handle_AIS_Drawer theDrawer = theAISShape->Attributes();
59   Handle_Prs3d_ShadingAspect theShadingAspect = theDrawer->ShadingAspect();
60   Handle_Graphic3d_AspectFillArea3d theAspectFillArea3d = theShadingAspect->Aspect();
61         
62   //allow to display the edges
63   theAspectFillArea3d->SetEdgeOn();
64   //set the style to Dash
65
66   //but the style is not set to dash : it is always solid
67   theAspectFillArea3d->SetEdgeLineType (Aspect_TOL_DASH); 
68   theAspectFillArea3d->SetEdgeColor(Quantity_Color(Quantity_NOC_GREEN)); 
69   theAspectFillArea3d->SetInteriorStyle(Aspect_IS_EMPTY);
70   theShadingAspect->SetAspect(theAspectFillArea3d);
71   theDrawer->SetShadingAspect(theShadingAspect);
72   theAISShape->SetAttributes(theDrawer);
73
74   aContext->Display(theAISShape);  
75   
76   return 0;
77 }
78
79 static int BUC60606(Draw_Interpretor& di, Standard_Integer argc, const char ** argv) {
80
81   di << "Use satread command instead of " << argv[0] << "\n";
82   return -1;
83
84   if(argc!=3) {
85     di << "Usage : " << argv[0] << "name filename" << "\n";
86     return -1;
87   }
88 //   Handle_AcisData_AcisModel satModel = new AcisData_AcisModel(); 
89 //   Standard_Character *DD = Tcl_GetVar(di.Interp(),"Draw_DataDir",TCL_GLOBAL_ONLY);
90
91 //   Standard_Character  *filename = new Standard_Character [strlen(DD)+strlen(argv[2])+1];
92 //   Sprintf(filename,"%s/%s",DD,argv[2]);
93
94 //   satModel->ReadSaveFile(filename);
95   
96 //   Standard_Boolean success = !satModel.IsNull(); 
97 //   cout << "n<-- SAT model read : " << (success?"true":"false") << endl << flush; 
98 //   if ( success ) {
99 //     Standard_Character *Ch=new Standard_Character [strlen(argv[1])+3];
100 //     Handle_TopTools_HSequenceOfShape satShapes = satModel->GetShapes();
101 //     Standard_Integer nbs=satShapes->Length();
102 //     for(Standard_Integer i=1;i<=nbs;i++) {
103 //       TopoDS_Shape xShape = satShapes->Value(i);
104 //       if(!xShape.IsNull()) {
105 //      Sprintf(Ch,"%s_%i",argv[1],i);
106 //      DBRep::Set(Ch,xShape);
107 //       } else cout << "The shape " << argv[1] << "_" << i << " is NULL !" << endl;
108 //     }
109 //   }
110   
111
112   return 0;
113 }
114
115 static int BUC60627(Draw_Interpretor& di, Standard_Integer argc, const char ** argv) {
116   di << "Use satread command instead of " << argv[0] << "\n";
117   return -1;
118
119   // perform the conversion
120   // as in AcisData.cdl --- that's alright
121 //   if(argc!=3) {
122 //     cerr << "Usage : " << argv[0] << " BREP file" << endl;
123 //     return -1;
124 //   }
125 //   TopoDS_Shape shapeModel=DBRep::Get(argv[1]);
126 //   Handle(AcisData_AcisModel) satModel = new AcisData_AcisModel();
127 //   satModel->AddShape( shapeModel ); // memorizes "kegel2.brep"
128 //   Standard_CString stringData;
129 //   Standard_Integer nbChar; // write intermediate stringin order to compute ACIS data
130 //   satModel->WriteStringData( stringData, nbChar );
131 //   if ( satModel->IsDone() ) {
132 //     satModel = new AcisData_AcisModel();
133 //     satModel->ReadStringData( stringData );
134 //     if ( satModel->IsDone() ) {
135 //       // write into file
136 //       satModel->WriteSaveFile( argv[2] );
137 //       if ( ! satModel->IsDone() ) {
138 //      cout << "The SAT madel does not wroute."   << endl;
139 //       }
140 //     } else cout << "The SAT model does not read from a string."   << endl;
141 //     // satModel->ReadStringData( stringData );
142 //   } else cout << "The SAT model does not wroute into a string."   << endl;
143 //   // satModel->WriteStringData( stringData, nbChar );
144   return 1;
145 }
146
147 void QABugs::Commands_4(Draw_Interpretor& theCommands) {
148   const char *group = "QABugs";
149
150   theCommands.Add("BUC60738","BUC60738",__FILE__,BUC60738,group);
151   theCommands.Add("BUC60606","BUC60606 name",__FILE__,BUC60606,group);
152   theCommands.Add("BUC60627","BUC60627 name",__FILE__,BUC60627,group);
153   
154   return;
155 }