//! 创建一个带有容差连接性的缝合对象
//! 选项用于缝合(如果为false,则仅控制)
//! 选项用于退化形状的分析
//! 选项用于切割自由边界
//! 选项用于非流形处理
Standard_EXPORT BRepBuilderAPI_Sewing(const Standard_Real tolerance = 1.0e-06, const Standard_Boolean option1 = Standard_True, const Standard_Boolean option2 = Standard_True, const Standard_Boolean option3 = Standard_True, const Standard_Boolean option4 = Standard_False);
//! 如果需要,初始化参数
Standard_EXPORT void Init (const Standard_Real tolerance = 1.0e-06, const Standard_Boolean option1 = Standard_True, const Standard_Boolean option2 = Standard_True, const Standard_Boolean option3 = Standard_True, const Standard_Boolean option4 = Standard_False);
//! 加载上下文形状
Standard_EXPORT void Load (const TopoDS_Shape& shape);
//! 定义要缝合或控制的形状
Standard_EXPORT void Add (const TopoDS_Shape& shape);
//! 计算
//! theProgress - 算法的进度指示器
Standard_EXPORT void Perform (const Message_ProgressRange& theProgress = Message_ProgressRange());
//! 返回缝合后的形状
//! 如果没有构造任何形状,则返回空形状
//! 结果可以是面、壳、固体或复合体
Standard_EXPORT const TopoDS_Shape& SewedShape() const;
//! 设置上下文
Standard_EXPORT void SetContext (const Handle(BRepTools_ReShape)& theContext);
//! 返回上下文
Standard_EXPORT const Handle(BRepTools_ReShape)& GetContext() const;
//! 返回自由边的数量(被一个面共享的边)
Standard_EXPORT Standard_Integer NbFreeEdges() const;
//! 返回每一条自由边
Standard_EXPORT const TopoDS_Edge& FreeEdge (const Standard_Integer index) const;
//! 返回多重边的数量
//! (被多个面共享的边,通常是两个以上的面)
Standard_EXPORT Standard_Integer NbMultipleEdges() const;
//! 返回每一条多重边
Standard_EXPORT const TopoDS_Edge& MultipleEdge (const Standard_Integer index) const;
//! 返回相邻边的数量(被两个面共享的边)
Standard_EXPORT Standard_Integer NbContigousEdges() const;
//! 返回每一条相邻边
Standard_EXPORT const TopoDS_Edge& ContigousEdge (const Standard_Integer index) const;
//! 返回属于相邻边的截面(边)
Standard_EXPORT const TopTools_ListOfShape& ContigousEdgeCouple (const Standard_Integer index) const;
//! 指示一个截面是否是有界的(在使用 SectionToBoundary 之前)
Standard_EXPORT Standard_Boolean IsSectionBound (const TopoDS_Edge& section) const;
//! 返回原始边(自由边界),该边成为截面
//! 请记住,截面构成了共同的边。
//! 该信息对于控制很重要,因为通过原始边我们可以找到
//! 截面所附着的表面。
Standard_EXPORT const TopoDS_Edge& SectionToBoundary (const TopoDS_Edge& section) const;
//! 返回退化形状的数量
Standard_EXPORT Standard_Integer NbDegeneratedShapes() const;
//! 返回每个退化形状
Standard_EXPORT const TopoDS_Shape& DegeneratedShape (const Standard_Integer index) const;
//! 指示输入形状是否退化
Standard_EXPORT Standard_Boolean IsDegenerated (const TopoDS_Shape& shape) const;
//! 指示输入形状是否已被修改
Standard_EXPORT Standard_Boolean IsModified (const TopoDS_Shape& shape) const;
//! 返回修改后的形状
Standard_EXPORT const TopoDS_Shape& Modified (const TopoDS_Shape& shape) const;
//! 指示输入子形状是否已被修改
Standard_EXPORT Standard_Boolean IsModifiedSubShape (const TopoDS_Shape& shape) const;
//! 返回修改后的子形状
Standard_EXPORT TopoDS_Shape ModifiedSubShape (const TopoDS_Shape& shape) const;
//! 打印信息
Standard_EXPORT void Dump() const;
//! 返回已删除的面数量(面小于容差的)
Standard_EXPORT Standard_Integer NbDeletedFaces() const;
//! 返回每个已删除的面
Standard_EXPORT const TopoDS_Face& DeletedFace (const Standard_Integer index) const;
//! 返回修改的面
Standard_EXPORT TopoDS_Face WhichFace (const TopoDS_Edge& theEdg, const Standard_Integer index = 1) const;
//! 获取相同参数模式。
Standard_Boolean SameParameterMode() const;
//! 设置相同参数模式。
void SetSameParameterMode (const Standard_Boolean SameParameterMode);
//! 返回设定的容差。
Standard_Real Tolerance() const;
//! 设置容差
void SetTolerance (const Standard_Real theToler);
//! 返回设定的最小容差。
Standard_Real MinTolerance() const;
//! 设置最小容差
void SetMinTolerance (const Standard_Real theMinToler);
//! 返回设定的最大容差
Standard_Real MaxTolerance() const;
//! 设置最大容差。
void SetMaxTolerance (const Standard_Real theMaxToler);
//! 返回用于缝合面的模式,默认为true。
Standard_Boolean FaceMode() const;
//! 设置用于缝合面的模式,默认为true。
void SetFaceMode (const Standard_Boolean theFaceMode);
//! 返回用于缝合浮动边的模式,默认为false。
Standard_Boolean FloatingEdgesMode() const;
//! 设置用于缝合浮动边的模式,默认为false。
//! 返回用于切割浮动边的模式,默认为false。
//! 设置用于切割浮动边的模式,默认为false。
void SetFloatingEdgesMode (const Standard_Boolean theFloatingEdgesMode);
//! 返回在合并过程中计算边和顶点局部容差的模式
//! (即局部容差会在合并时被考虑)。
Standard_Boolean LocalTolerancesMode() const;
//! 设置在合并时考虑边和顶点局部容差的模式
//! 在这种情况下,工作容差 = myTolerance + tolEdge1 + tolEdge2;
void SetLocalTolerancesMode (const Standard_Boolean theLocalTolerancesMode);
//! 设置非流形缝合的模式。
void SetNonManifoldMode (const Standard_Boolean theNonManifoldMode);
//! 获取非流形缝合的模式。
//!
//! 内部函数 —
Standard_Boolean NonManifoldMode() const;