File: ShapeUpgrade_FaceDivide.hxx

package info (click to toggle)
oce 0.18.3-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 301,548 kB
  • sloc: cpp: 1,190,609; ansic: 67,225; sh: 11,630; tcl: 7,954; cs: 5,221; python: 2,867; java: 1,522; makefile: 342; xml: 292; perl: 37
file content (129 lines) | stat: -rw-r--r-- 4,112 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _ShapeUpgrade_FaceDivide_HeaderFile
#define _ShapeUpgrade_FaceDivide_HeaderFile

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_ShapeUpgrade_FaceDivide.hxx>

#include <Handle_ShapeUpgrade_SplitSurface.hxx>
#include <Handle_ShapeUpgrade_WireDivide.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <ShapeUpgrade_Tool.hxx>
#include <ShapeExtend_Status.hxx>
class ShapeUpgrade_SplitSurface;
class ShapeUpgrade_WireDivide;
class TopoDS_Face;
class TopoDS_Shape;


//! Divides a Face (both edges in the wires, by splitting
//! curves and pcurves, and the face itself, by splitting
//! supporting surface) according to splitting criteria.
//! * The domain of the face to divide is defined by the PCurves
//! of the wires on the Face.
//!
//! * all the PCurves are supposed to be defined (in the parametric
//! space of the supporting surface).
//!
//! The result is available after the call to the Build method.
//! It is a Shell containing all the resulting Faces.
//!
//! All the modifications made during splitting are recorded in the
//! external context (ShapeBuild_ReShape).
class ShapeUpgrade_FaceDivide : public ShapeUpgrade_Tool
{

public:

  
  //! Creates empty  constructor.
  Standard_EXPORT ShapeUpgrade_FaceDivide();
  
  //! Initialize by a Face.
  Standard_EXPORT ShapeUpgrade_FaceDivide(const TopoDS_Face& F);
  
  //! Initialize by a Face.
  Standard_EXPORT   void Init (const TopoDS_Face& F) ;
  
  //! Purpose sets mode for trimming (segment) surface by
  //! wire UV bounds.
  Standard_EXPORT   void SetSurfaceSegmentMode (const Standard_Boolean Segment) ;
  
  //! Performs splitting and computes the resulting shell
  //! The context is used to keep track of former splittings
  //! in order to keep sharings. It is updated according to
  //! modifications made.
  Standard_EXPORT virtual   Standard_Boolean Perform() ;
  
  //! Performs splitting of surface and computes the shell
  //! from source face.
  Standard_EXPORT virtual   Standard_Boolean SplitSurface() ;
  
  //! Performs splitting of curves of all the edges in the
  //! shape and divides these edges.
  Standard_EXPORT virtual   Standard_Boolean SplitCurves() ;
  
  //! Gives the resulting Shell, or Face, or Null shape if not done.
  Standard_EXPORT   TopoDS_Shape Result()  const;
  
  //! Queries the status of last call to Perform
  //! OK   : no splitting was done (or no call to Perform)
  //! DONE1: some edges were splitted
  //! DONE2: surface was splitted
  //! DONE3: surface was modified without splitting
  //! FAIL1: some fails encountered during splitting wires
  //! FAIL2: face cannot be splitted
  Standard_EXPORT   Standard_Boolean Status (const ShapeExtend_Status status)  const;
  
  //! Sets the tool for splitting surfaces.
  Standard_EXPORT   void SetSplitSurfaceTool (const Handle(ShapeUpgrade_SplitSurface)& splitSurfaceTool) ;
  
  //! Sets the tool for dividing edges on Face.
  Standard_EXPORT   void SetWireDivideTool (const Handle(ShapeUpgrade_WireDivide)& wireDivideTool) ;
  
  //! Returns the tool for splitting surfaces.
  //! This tool must be already initialized.
  Standard_EXPORT virtual   Handle(ShapeUpgrade_SplitSurface) GetSplitSurfaceTool()  const;
  
  //! Returns the tool for dividing edges on Face.
  //! This tool must be already initialized.
  Standard_EXPORT virtual   Handle(ShapeUpgrade_WireDivide) GetWireDivideTool()  const;




  DEFINE_STANDARD_RTTI(ShapeUpgrade_FaceDivide)

protected:


  TopoDS_Face myFace;
  TopoDS_Shape myResult;
  Standard_Boolean mySegmentMode;
  Standard_Integer myStatus;


private: 


  Handle(ShapeUpgrade_SplitSurface) mySplitSurfaceTool;
  Handle(ShapeUpgrade_WireDivide) myWireDivideTool;


};







#endif // _ShapeUpgrade_FaceDivide_HeaderFile