diff --git a/src/HLRBRep/FILES b/src/HLRBRep/FILES index 422c9c1a0c..1e18766853 100644 --- a/src/HLRBRep/FILES +++ b/src/HLRBRep/FILES @@ -137,3 +137,4 @@ HLRBRep_TheQuadCurvFuncOfTheQuadCurvExactInterCSurf.hxx HLRBRep_TheQuadCurvFuncOfTheQuadCurvExactInterCSurf_0.cxx HLRBRep_VertexList.cxx HLRBRep_VertexList.hxx +HLRBRep_TypeOfResultingEdge.hxx diff --git a/src/HLRBRep/HLRBRep_HLRToShape.hxx b/src/HLRBRep/HLRBRep_HLRToShape.hxx index d4c51596cf..d88d2ab0a8 100644 --- a/src/HLRBRep/HLRBRep_HLRToShape.hxx +++ b/src/HLRBRep/HLRBRep_HLRToShape.hxx @@ -24,6 +24,7 @@ #include #include #include +#include class HLRBRep_Algo; class TopoDS_Shape; class HLRBRep_Data; @@ -111,7 +112,24 @@ public: TopoDS_Shape IsoLineHCompound(); TopoDS_Shape IsoLineHCompound (const TopoDS_Shape& S); + + //! Returns compound of resulting edges + //! of required type and visibility, + //! taking into account the kind of space + //! (2d or 3d) + TopoDS_Shape CompoundOfEdges(const HLRBRep_TypeOfResultingEdge type, + const Standard_Boolean visible, + const Standard_Boolean In3d); + //! For specified shape + //! returns compound of resulting edges + //! of required type and visibility, + //! taking into account the kind of space + //! (2d or 3d) + TopoDS_Shape CompoundOfEdges(const TopoDS_Shape& S, + const HLRBRep_TypeOfResultingEdge type, + const Standard_Boolean visible, + const Standard_Boolean In3d); diff --git a/src/HLRBRep/HLRBRep_HLRToShape.lxx b/src/HLRBRep/HLRBRep_HLRToShape.lxx index d2ca47fcd4..286372a52a 100644 --- a/src/HLRBRep/HLRBRep_HLRToShape.lxx +++ b/src/HLRBRep/HLRBRep_HLRToShape.lxx @@ -193,3 +193,26 @@ inline TopoDS_Shape HLRBRep_HLRToShape::IsoLineHCompound() inline TopoDS_Shape HLRBRep_HLRToShape::IsoLineHCompound(const TopoDS_Shape& S) { return InternalCompound(1,Standard_False,S); } + +//======================================================================= +//function : CompoundOfEdges +//purpose : +//======================================================================= + +inline TopoDS_Shape +HLRBRep_HLRToShape::CompoundOfEdges(const HLRBRep_TypeOfResultingEdge type, + const Standard_Boolean visible, + const Standard_Boolean In3d) +{ return InternalCompound(type,visible,TopoDS_Shape(),In3d); } + +//======================================================================= +//function : CompoundOfEdges +//purpose : +//======================================================================= + +inline TopoDS_Shape +HLRBRep_HLRToShape::CompoundOfEdges(const TopoDS_Shape& S, + const HLRBRep_TypeOfResultingEdge type, + const Standard_Boolean visible, + const Standard_Boolean In3d) +{ return InternalCompound(type,visible,S,In3d); } diff --git a/src/HLRBRep/HLRBRep_TypeOfResultingEdge.hxx b/src/HLRBRep/HLRBRep_TypeOfResultingEdge.hxx new file mode 100644 index 0000000000..fd04ff80bc --- /dev/null +++ b/src/HLRBRep/HLRBRep_TypeOfResultingEdge.hxx @@ -0,0 +1,42 @@ +// Created on: 2016-02-26 +// Created by: Julia GERASIMOVA +// Copyright (c) 1991-1999 Matra Datavision +// Copyright (c) 1999-2016 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _HLRBRep_TypeOfResultingEdge_HeaderFile +#define _HLRBRep_TypeOfResultingEdge_HeaderFile + + +//! Identifies the type of resulting edge of HLRBRep_Algo +enum HLRBRep_TypeOfResultingEdge +{ +HLRBRep_Undefined, + +//! isoparametric line +HLRBRep_IsoLine, + +//! outline ("silhouette") +HLRBRep_OutLine, + +//! smooth edge of G1-continuity between two surfaces +HLRBRep_Rg1Line, + +//! sewn edge of CN-continuity on one surface +HLRBRep_RgNLine, + +//! sharp edge (of C0-continuity) +HLRBRep_Sharp +}; + +#endif // _HLRBRep_TypeOfResultingEdge_HeaderFile