0022048: Visualization, AIS_InteractiveContext - single object selection should alway...
[occt.git] / src / XSAlgo / XSAlgo.cxx
1 // Created on: 2000-01-19
2 // Created by: data exchange team
3 // Copyright (c) 2000-2014 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
15
16
17 #include <Interface_Static.hxx>
18 #include <ShapeAlgo.hxx>
19 #include <ShapeProcess_OperLibrary.hxx>
20 #include <XSAlgo.hxx>
21 #include <XSAlgo_AlgoContainer.hxx>
22
23 static Handle(XSAlgo_AlgoContainer) theContainer;
24
25 //=======================================================================
26 //function : Init
27 //purpose  : 
28 //=======================================================================
29
30  void XSAlgo::Init() 
31 {
32   static Standard_Boolean init = Standard_False;
33   if (init) return;
34   init = Standard_True;
35   ShapeAlgo::Init();
36   theContainer = new XSAlgo_AlgoContainer;
37
38   // init parameters
39   Interface_Static::Standards();
40   
41   //#74 rln 10.03.99 S4135: adding new parameter for handling use of BRepLib::SameParameter
42   Interface_Static::Init("XSTEP"  ,"read.stdsameparameter.mode", 'e',"");
43   Interface_Static::Init("XSTEP"  ,"read.stdsameparameter.mode", '&',"ematch 0");
44   Interface_Static::Init("XSTEP"  ,"read.stdsameparameter.mode", '&',"eval Off");
45   Interface_Static::Init("XSTEP"  ,"read.stdsameparameter.mode", '&',"eval On");
46   Interface_Static::SetIVal ("read.stdsameparameter.mode",0);
47    
48   // unit: supposed to be cascade unit (target unit for reading)
49   Interface_Static::Init("XSTEP","xstep.cascade.unit", 'e',"");
50   Interface_Static::Init ("XSTEP","xstep.cascade.unit",'&',"enum 1");
51   Interface_Static::Init ("XSTEP","xstep.cascade.unit",'&',"eval INCH");  // 1
52   Interface_Static::Init ("XSTEP","xstep.cascade.unit",'&',"eval MM");    // 2
53   Interface_Static::Init ("XSTEP","xstep.cascade.unit",'&',"eval ??");    // 3
54   Interface_Static::Init ("XSTEP","xstep.cascade.unit",'&',"eval FT");    // 4
55   Interface_Static::Init ("XSTEP","xstep.cascade.unit",'&',"eval MI");    // 5
56   Interface_Static::Init ("XSTEP","xstep.cascade.unit",'&',"eval M");     // 6
57   Interface_Static::Init ("XSTEP","xstep.cascade.unit",'&',"eval KM");    // 7
58   Interface_Static::Init ("XSTEP","xstep.cascade.unit",'&',"eval MIL");   // 8
59   Interface_Static::Init ("XSTEP","xstep.cascade.unit",'&',"eval UM");    // 9
60   Interface_Static::Init ("XSTEP","xstep.cascade.unit",'&',"eval CM");    //10
61   Interface_Static::Init ("XSTEP","xstep.cascade.unit",'&',"eval UIN");   //11
62   Interface_Static::SetCVal ("xstep.cascade.unit","MM");
63   
64   // init Standard Shape Processing operators
65   ShapeProcess_OperLibrary::Init();
66 }
67
68 //=======================================================================
69 //function : SetAlgoContainer
70 //purpose  : 
71 //=======================================================================
72
73  void XSAlgo::SetAlgoContainer(const Handle(XSAlgo_AlgoContainer)& aContainer) 
74 {
75   theContainer = aContainer;
76 }
77
78 //=======================================================================
79 //function : AlgoContainer
80 //purpose  : 
81 //=======================================================================
82
83  Handle(XSAlgo_AlgoContainer) XSAlgo::AlgoContainer() 
84 {
85   return theContainer;
86 }