mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
Updated source files from path
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
// Copyright (c) 2013 OPEN CASCADE SAS
|
||||
// Created on: 2016-04-19
|
||||
// Copyright (c) 2016 OPEN CASCADE SAS
|
||||
// Created by: Oleg AGASHIN
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
@@ -11,31 +13,29 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#ifndef _BRepMesh_ShapeTool_HeaderFile
|
||||
#define _BRepMesh_ShapeTool_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Macro.hxx>
|
||||
#include <BRepAdaptor_HSurface.hxx>
|
||||
#include <BRepMesh_FaceAttribute.hxx>
|
||||
#include <BRepMesh.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <IMeshData_Types.hxx>
|
||||
#include <Poly_Triangulation.hxx>
|
||||
#include <Poly_PolygonOnTriangulation.hxx>
|
||||
|
||||
class Poly_Triangulation;
|
||||
class Geom_Curve;
|
||||
class Geom2d_Curve;
|
||||
class Poly_Polygon3D;
|
||||
class TopoDS_Face;
|
||||
class TopoDS_Edge;
|
||||
class Bnd_Box;
|
||||
class TopoDS_Vertex;
|
||||
class gp_XY;
|
||||
class gp_Pnt2d;
|
||||
|
||||
class BRepMesh_ShapeTool
|
||||
//! Auxiliary class providing functionality to compute,
|
||||
//! retrieve and store data to TopoDS and model shape.
|
||||
class BRepMesh_ShapeTool : public Standard_Transient
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
//! Returns maximum tolerance of the given face.
|
||||
//! Considers tolerances of edges and vertices contained in the given face.
|
||||
Standard_EXPORT static Standard_Real MaxFaceTolerance(
|
||||
@@ -48,39 +48,15 @@ public:
|
||||
Standard_EXPORT static void BoxMaxDimension(const Bnd_Box& theBox,
|
||||
Standard_Real& theMaxDimension);
|
||||
|
||||
//! Returns relative deflection for edge with respect to shape size.
|
||||
//! @param theEdge edge for which relative deflection should be computed.
|
||||
//! @param theDeflection absolute deflection.
|
||||
//! @param theMaxShapeSize maximum size of a shape.
|
||||
//! @param theAdjustmentCoefficient coefficient of adjustment between maximum
|
||||
//! size of shape and calculated relative deflection.
|
||||
//! @return relative deflection for the edge.
|
||||
Standard_EXPORT static Standard_Real RelativeEdgeDeflection(
|
||||
const TopoDS_Edge& theEdge,
|
||||
const Standard_Real theDeflection,
|
||||
const Standard_Real theMaxShapeSize,
|
||||
Standard_Real& theAdjustmentCoefficient);
|
||||
|
||||
//! Checks 2d representations of 3d point with the
|
||||
//! given index for equality to avoid duplications.
|
||||
//! @param theIndexOfPnt3d index of 3d point with which 2d
|
||||
//! representation should be associated.
|
||||
//! @param thePnt2d 2d representation of the point with the
|
||||
//! given index.
|
||||
//! @param theMinDistance minimum distance between vertices
|
||||
//! regarding which they could be treated as distinct ones.
|
||||
//! @param theFaceAttribute attributes contining data calculated
|
||||
//! according to face geomtry and define limits of face in parametric
|
||||
//! space. If defined, will be used instead of surface parameter.
|
||||
//! @param theLocation2dMap map of 2d representations of 3d points.
|
||||
//! @return given 2d point in case if 3d poind does not alredy have
|
||||
//! the similar representation, otherwice 2d point corresponding to
|
||||
//! existing representation will be returned.
|
||||
Standard_EXPORT static gp_XY FindUV(
|
||||
const Standard_Integer theIndexOfPnt3d,
|
||||
const gp_Pnt2d& thePnt2d,
|
||||
const Standard_Real theMinDistance,
|
||||
const Handle(BRepMesh_FaceAttribute)& theFaceAttribute);
|
||||
//! Checks same parameter, same range and degenerativity attributes
|
||||
//! using geometrical data of the given edge and updates edge model
|
||||
//! by computed parameters in case of worst case - it can drop flags
|
||||
//! same parameter and same range to False but never to True if it is
|
||||
//! already set to False. In contrary, it can also drop degenerated
|
||||
//! flag to True, but never to False if it is already set to True.
|
||||
Standard_EXPORT static void CheckAndUpdateFlags (
|
||||
const IMeshData::IEdgeHandle& theEdge,
|
||||
const IMeshData::IPCurveHandle& thePCurve);
|
||||
|
||||
//! Stores the given triangulation into the given face.
|
||||
//! @param theFace face to be updated by triangulation.
|
||||
@@ -91,27 +67,41 @@ public:
|
||||
|
||||
//! Nullifies triangulation stored in the face.
|
||||
//! @param theFace face to be updated by null triangulation.
|
||||
Standard_EXPORT static void NullifyFace(const TopoDS_Face& theFace);
|
||||
Standard_EXPORT static void NullifyFace (const TopoDS_Face& theFace);
|
||||
|
||||
//! Nullifies polygon on triangulation stored in the edge.
|
||||
//! @param theEdge edge to be updated by null polygon.
|
||||
//! @param theTriangulation triangulation the given edge is associated to.
|
||||
//! @param theLocation face location.
|
||||
Standard_EXPORT static void NullifyEdge(
|
||||
const TopoDS_Edge& theEdge,
|
||||
const Handle(Poly_Triangulation)& theTriangulation,
|
||||
const TopLoc_Location& theLocation);
|
||||
Standard_EXPORT static void NullifyEdge (
|
||||
const TopoDS_Edge& theEdge,
|
||||
const Handle (Poly_Triangulation)& theTriangulation,
|
||||
const TopLoc_Location& theLocation);
|
||||
|
||||
//! Nullifies 3d polygon stored in the edge.
|
||||
//! @param theEdge edge to be updated by null polygon.
|
||||
//! @param theLocation face location.
|
||||
Standard_EXPORT static void NullifyEdge (
|
||||
const TopoDS_Edge& theEdge,
|
||||
const TopLoc_Location& theLocation);
|
||||
|
||||
//! Updates the given edge by the given tessellated representation.
|
||||
//! @param theEdge edge to be updated.
|
||||
//! @param thePolygon tessellated representation of the edge to be stored.
|
||||
//! @param theTriangulation triangulation the given edge is associated to.
|
||||
//! @param theLocation face location.
|
||||
Standard_EXPORT static void UpdateEdge (
|
||||
const TopoDS_Edge& theEdge,
|
||||
const Handle (Poly_PolygonOnTriangulation)& thePolygon,
|
||||
const Handle (Poly_Triangulation)& theTriangulation,
|
||||
const TopLoc_Location& theLocation);
|
||||
|
||||
//! Updates the given edge by the given tessellated representation.
|
||||
//! @param theEdge edge to be updated.
|
||||
//! @param thePolygon tessellated representation of the edge to be stored.
|
||||
Standard_EXPORT static void UpdateEdge(
|
||||
const TopoDS_Edge& theEdge,
|
||||
const Handle(Poly_PolygonOnTriangulation)& thePolygon,
|
||||
const Handle(Poly_Triangulation)& theTriangulation,
|
||||
const TopLoc_Location& theLocation);
|
||||
const TopoDS_Edge& theEdge,
|
||||
const Handle(Poly_Polygon3D)& thePolygon);
|
||||
|
||||
//! Updates the given seam edge by the given tessellated representations.
|
||||
//! @param theEdge edge to be updated.
|
||||
@@ -121,27 +111,46 @@ public:
|
||||
//! reversed direction of the seam edge.
|
||||
//! @param theTriangulation triangulation the given edge is associated to.
|
||||
//! @param theLocation face location.
|
||||
Standard_EXPORT static void UpdateEdge(
|
||||
const TopoDS_Edge& theEdge,
|
||||
const Handle(Poly_PolygonOnTriangulation)& thePolygon1,
|
||||
const Handle(Poly_PolygonOnTriangulation)& thePolygon2,
|
||||
const Handle(Poly_Triangulation)& theTriangulation,
|
||||
const TopLoc_Location& theLocation);
|
||||
Standard_EXPORT static void UpdateEdge (
|
||||
const TopoDS_Edge& theEdge,
|
||||
const Handle (Poly_PolygonOnTriangulation)& thePolygon1,
|
||||
const Handle (Poly_PolygonOnTriangulation)& thePolygon2,
|
||||
const Handle (Poly_Triangulation)& theTriangulation,
|
||||
const TopLoc_Location& theLocation);
|
||||
|
||||
//! Applies location to the given point and return result.
|
||||
//! @param thePnt point to be transformed.
|
||||
//! @param theLoc location to be applied.
|
||||
Standard_EXPORT static gp_Pnt UseLocation(const gp_Pnt& thePnt,
|
||||
const TopLoc_Location& theLoc);
|
||||
Standard_EXPORT static gp_Pnt UseLocation (
|
||||
const gp_Pnt& thePnt,
|
||||
const TopLoc_Location& theLoc);
|
||||
|
||||
//! Checks is the given edge degenerated.
|
||||
//! Checks geometrical parameters in case if IsDegenerated flag is not set.
|
||||
//! @param theEdge edge to be checked.
|
||||
//! @param theFace face within which parametric space edge will be checked
|
||||
//! for geometrical degenerativity.
|
||||
Standard_EXPORT static Standard_Boolean IsDegenerated(
|
||||
const TopoDS_Edge& theEdge,
|
||||
const TopoDS_Face& theFace);
|
||||
//! Gets the strict UV locations of the extremities of the edge using pcurve.
|
||||
Standard_EXPORT static Standard_Boolean UVPoints (
|
||||
const TopoDS_Edge& theEdge,
|
||||
const TopoDS_Face& theFace,
|
||||
gp_Pnt2d& theFirstPoint2d,
|
||||
gp_Pnt2d& theLastPoint2d,
|
||||
const Standard_Boolean isConsiderOrientation = Standard_False);
|
||||
|
||||
//! Gets the parametric range of the given edge on the given face.
|
||||
Standard_EXPORT static Standard_Boolean Range (
|
||||
const TopoDS_Edge& theEdge,
|
||||
const TopoDS_Face& theFace,
|
||||
Handle (Geom2d_Curve)& thePCurve,
|
||||
Standard_Real& theFirstParam,
|
||||
Standard_Real& theLastParam,
|
||||
const Standard_Boolean isConsiderOrientation = Standard_False);
|
||||
|
||||
//! Gets the 3d range of the given edge.
|
||||
Standard_EXPORT static Standard_Boolean Range (
|
||||
const TopoDS_Edge& theEdge,
|
||||
Handle (Geom_Curve)& theCurve,
|
||||
Standard_Real& theFirstParam,
|
||||
Standard_Real& theLastParam,
|
||||
const Standard_Boolean isConsiderOrientation = Standard_False);
|
||||
|
||||
DEFINE_STANDARD_RTTI_INLINE(BRepMesh_ShapeTool, Standard_Transient)
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
Reference in New Issue
Block a user