7fd59977 |
1 | // File: ShapeUpgrade_ShapeDivideAngle.cxx |
2 | // Created: Thu May 6 10:38:17 1999 |
3 | // Author: Pavel DURANDIN |
4 | // <pdn@friendox.nnov.matra-dtv.fr> |
5 | |
6 | |
7 | #include <ShapeUpgrade_ShapeDivideAngle.ixx> |
8 | #include <ShapeUpgrade_SplitSurfaceAngle.hxx> |
9 | #include <ShapeUpgrade_FaceDivide.hxx> |
10 | |
11 | //======================================================================= |
12 | //function : ShapeUpgrade_ShapeDivideAngle |
13 | //purpose : |
14 | //======================================================================= |
15 | |
16 | ShapeUpgrade_ShapeDivideAngle::ShapeUpgrade_ShapeDivideAngle (const Standard_Real MaxAngle) |
17 | { |
18 | InitTool ( MaxAngle ); |
19 | } |
20 | |
21 | //======================================================================= |
22 | //function : ShapeUpgrade_ShapeDivideAngle |
23 | //purpose : |
24 | //======================================================================= |
25 | |
26 | ShapeUpgrade_ShapeDivideAngle::ShapeUpgrade_ShapeDivideAngle(const Standard_Real MaxAngle, |
27 | const TopoDS_Shape& S): |
28 | ShapeUpgrade_ShapeDivide(S) |
29 | { |
30 | InitTool ( MaxAngle ); |
31 | } |
32 | |
33 | //======================================================================= |
34 | //function : InitTool |
35 | //purpose : |
36 | //======================================================================= |
37 | |
38 | void ShapeUpgrade_ShapeDivideAngle::InitTool (const Standard_Real MaxAngle) |
39 | { |
40 | Handle(ShapeUpgrade_FaceDivide) tool = GetSplitFaceTool(); |
41 | tool->SetSplitSurfaceTool ( new ShapeUpgrade_SplitSurfaceAngle (MaxAngle) ); |
42 | tool->SetWireDivideTool ( 0 ); // no splitting of wire |
43 | SetSplitFaceTool(tool); |
44 | } |
45 | |
46 | //======================================================================= |
47 | //function : SetMaxAngle |
48 | //purpose : |
49 | //======================================================================= |
50 | |
51 | void ShapeUpgrade_ShapeDivideAngle::SetMaxAngle (const Standard_Real MaxAngle) |
52 | { |
53 | InitTool ( MaxAngle ); |
54 | } |
55 | |
56 | //======================================================================= |
57 | //function : MaxAngle |
58 | //purpose : |
59 | //======================================================================= |
60 | |
61 | double ShapeUpgrade_ShapeDivideAngle::MaxAngle () const |
62 | { |
63 | Handle(ShapeUpgrade_FaceDivide) faceTool = GetSplitFaceTool(); |
64 | if ( faceTool.IsNull() ) return 0.; |
65 | Handle(ShapeUpgrade_SplitSurfaceAngle) tool = |
66 | Handle(ShapeUpgrade_SplitSurfaceAngle)::DownCast ( faceTool ); |
67 | return ( tool.IsNull() ? 0. : tool->MaxAngle() ); |
68 | } |
69 | |