Modeling Data - Modernize LProp .gxx templates into .pxx utilities (#1155)

Replace legacy .gxx generic class templates (LProp_CLProps.gxx,
LProp_SLProps.gxx) with modern C++ .pxx template utilities
(LProp_CurveUtils.pxx, LProp_SurfaceUtils.pxx) using namespaced
template functions and access policies.

Remove obsolete CurveTool/SurfaceTool intermediary classes
(GeomLProp_CurveTool, GeomLProp_SurfaceTool, LProp3d_CurveTool,
LProp3d_SurfaceTool, BRepLProp_CurveTool) that are no longer needed
with the new direct/tool access policy design.

Replace per-instantiation _0.cxx files with standalone .cxx
implementations that delegate to the shared .pxx utilities.

Fix myCN field type from double to int in all CLProps headers
to match SLProps convention and actual usage (values 0 or 4).
Add default member initializers for uninitialized fields
(myCurvature, mySignificantFirstDerivativeOrder, myMinCurv,
myMaxCurv, myMeanCurv, myGausCurv) across all CLProps/SLProps classes.
Fix theSigOrder pass-by-value bug in Tangent/Curvature wrappers.
Fix typos: anUinfium/anVinfium -> anUinfimum/anVinfimum.
This commit is contained in:
Pasukhin Dmitry
2026-03-09 23:29:52 +00:00
committed by GitHub
parent c4715e0e72
commit fe9a0de8d0
47 changed files with 3324 additions and 2095 deletions

View File

@@ -0,0 +1,173 @@
// Created on: 1994-02-24
// Created by: Laurent BOURESCHE
// Copyright (c) 1994-1999 Matra Datavision
// Copyright (c) 1999-2014 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.
#include <BRepLProp_CLProps.hxx>
#include <BRepAdaptor_Curve.hxx>
#include <LProp_NotDefined.hxx>
#include <Standard_OutOfRange.hxx>
#include <LProp_CurveUtils.pxx>
using Access = LProp_CurveUtils::DirectAccess;
//=================================================================================================
BRepLProp_CLProps::BRepLProp_CLProps(const BRepAdaptor_Curve& C,
const double U,
const int N,
const double Resolution)
: myCurve(C),
myDerOrder(N),
myCN(4),
myLinTol(Resolution),
myTangentStatus(LProp_Undecided)
{
Standard_OutOfRange_Raise_if(N < 0 || N > 3, "BRepLProp_CLProps::BRepLProp_CLProps()");
SetParameter(U);
}
//=================================================================================================
BRepLProp_CLProps::BRepLProp_CLProps(const BRepAdaptor_Curve& C,
const int N,
const double Resolution)
: myCurve(C),
myU(RealLast()),
myDerOrder(N),
myCN(4),
myLinTol(Resolution),
myTangentStatus(LProp_Undecided)
{
Standard_OutOfRange_Raise_if(N < 0 || N > 3, "BRepLProp_CLProps::BRepLProp_CLProps()");
}
//=================================================================================================
BRepLProp_CLProps::BRepLProp_CLProps(const int N, const double Resolution)
: myU(RealLast()),
myDerOrder(N),
myCN(0),
myLinTol(Resolution),
myTangentStatus(LProp_Undecided)
{
Standard_OutOfRange_Raise_if(N < 0 || N > 3, "BRepLProp_CLProps() - invalid input");
}
//=================================================================================================
void BRepLProp_CLProps::SetParameter(const double U)
{
LProp_CurveUtils::SetParameter<Access>(myCurve,
U,
myU,
myDerOrder,
myPnt,
myDerivArr,
myTangentStatus);
}
//=================================================================================================
void BRepLProp_CLProps::SetCurve(const BRepAdaptor_Curve& C)
{
myCurve = C;
myCN = 4;
}
//=================================================================================================
const gp_Pnt& BRepLProp_CLProps::Value() const
{
return myPnt;
}
//=================================================================================================
const gp_Vec& BRepLProp_CLProps::D1()
{
return LProp_CurveUtils::EnsureDeriv<Access>(myCurve, myU, myDerOrder, 1, myPnt, myDerivArr);
}
//=================================================================================================
const gp_Vec& BRepLProp_CLProps::D2()
{
return LProp_CurveUtils::EnsureDeriv<Access>(myCurve, myU, myDerOrder, 2, myPnt, myDerivArr);
}
//=================================================================================================
const gp_Vec& BRepLProp_CLProps::D3()
{
return LProp_CurveUtils::EnsureDeriv<Access>(myCurve, myU, myDerOrder, 3, myPnt, myDerivArr);
}
//=================================================================================================
bool BRepLProp_CLProps::IsTangentDefined()
{
return LProp_CurveUtils::IsTangentDefined<gp_Vec>(*this,
myCN,
myLinTol,
mySignificantFirstDerivativeOrder,
myTangentStatus);
}
//=================================================================================================
void BRepLProp_CLProps::Tangent(gp_Dir& D)
{
LProp_CurveUtils::Tangent<Access>(*this,
myCurve,
myU,
myDerivArr,
myPnt,
mySignificantFirstDerivativeOrder,
D);
}
//=================================================================================================
double BRepLProp_CLProps::Curvature()
{
return LProp_CurveUtils::Curvature(*this,
myDerivArr[0],
myDerivArr[1],
myLinTol,
mySignificantFirstDerivativeOrder,
myCurvature);
}
//=================================================================================================
void BRepLProp_CLProps::Normal(gp_Dir& N)
{
LProp_CurveUtils::Normal(*this, myDerivArr[0], myDerivArr[1], myLinTol, N);
}
//=================================================================================================
void BRepLProp_CLProps::CentreOfCurvature(gp_Pnt& P)
{
LProp_CurveUtils::CentreOfCurvature(*this,
myPnt,
myDerivArr[0],
myDerivArr[1],
myLinTol,
myCurvature,
P);
}

View File

@@ -33,7 +33,6 @@ class BRepAdaptor_Curve;
class gp_Vec;
class gp_Pnt;
class gp_Dir;
class BRepLProp_CurveTool;
class BRepLProp_CLProps
{
@@ -113,14 +112,14 @@ private:
BRepAdaptor_Curve myCurve;
double myU;
int myDerOrder;
double myCN;
int myCN;
double myLinTol;
gp_Pnt myPnt;
gp_Vec myDerivArr[3];
gp_Dir myTangent;
double myCurvature;
double myCurvature = 0.0;
LProp_Status myTangentStatus;
int mySignificantFirstDerivativeOrder;
int mySignificantFirstDerivativeOrder = 0;
};
#endif // _BRepLProp_CLProps_HeaderFile

View File

@@ -1,41 +0,0 @@
// Created on: 1994-02-24
// Created by: Laurent BOURESCHE
// Copyright (c) 1994-1999 Matra Datavision
// Copyright (c) 1999-2014 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.
#include <BRepLProp_CLProps.hxx>
#include <LProp_BadContinuity.hxx>
#include <Standard_DomainError.hxx>
#include <Standard_OutOfRange.hxx>
#include <LProp_NotDefined.hxx>
#include <BRepAdaptor_Curve.hxx>
#include <gp_Vec.hxx>
#include <gp_Pnt.hxx>
#include <gp_Dir.hxx>
#include <BRepLProp_CurveTool.hxx>
#define Curve BRepAdaptor_Curve
#define Curve_hxx <BRepAdaptor_Curve.hxx>
#define Vec gp_Vec
#define Vec_hxx <gp_Vec.hxx>
#define Pnt gp_Pnt
#define Pnt_hxx <gp_Pnt.hxx>
#define Dir gp_Dir
#define Dir_hxx <gp_Dir.hxx>
#define Tool BRepLProp_CurveTool
#define Tool_hxx <BRepLProp_CurveTool.hxx>
#define LProp_CLProps BRepLProp_CLProps
#define LProp_CLProps_hxx <BRepLProp_CLProps.hxx>
#include <LProp_CLProps.gxx>

View File

@@ -1,96 +0,0 @@
// Created on: 1994-02-24
// Created by: Laurent BOURESCHE
// Copyright (c) 1994-1999 Matra Datavision
// Copyright (c) 1999-2014 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.
#include <BRepAdaptor_Curve.hxx>
#include <BRepLProp_CurveTool.hxx>
#include <gp_Pnt.hxx>
#include <gp_Vec.hxx>
//=================================================================================================
void BRepLProp_CurveTool::Value(const BRepAdaptor_Curve& C, const double U, gp_Pnt& P)
{
P = C.Value(U);
}
//=================================================================================================
void BRepLProp_CurveTool::D1(const BRepAdaptor_Curve& C, const double U, gp_Pnt& P, gp_Vec& V1)
{
C.D1(U, P, V1);
}
//=================================================================================================
void BRepLProp_CurveTool::D2(const BRepAdaptor_Curve& C,
const double U,
gp_Pnt& P,
gp_Vec& V1,
gp_Vec& V2)
{
C.D2(U, P, V1, V2);
}
//=================================================================================================
void BRepLProp_CurveTool::D3(const BRepAdaptor_Curve& C,
const double U,
gp_Pnt& P,
gp_Vec& V1,
gp_Vec& V2,
gp_Vec& V3)
{
C.D3(U, P, V1, V2, V3);
}
//=================================================================================================
int BRepLProp_CurveTool::Continuity(const BRepAdaptor_Curve& C)
{
GeomAbs_Shape s = C.Continuity();
switch (s)
{
case GeomAbs_C0:
return 0;
case GeomAbs_C1:
return 1;
case GeomAbs_C2:
return 2;
case GeomAbs_C3:
return 3;
case GeomAbs_G1:
return 0;
case GeomAbs_G2:
return 0;
case GeomAbs_CN:
return 3;
};
return 0;
}
//=================================================================================================
double BRepLProp_CurveTool::FirstParameter(const BRepAdaptor_Curve& C)
{
return C.FirstParameter();
}
//=================================================================================================
double BRepLProp_CurveTool::LastParameter(const BRepAdaptor_Curve& C)
{
return C.LastParameter();
}

View File

@@ -1,72 +0,0 @@
// Created on: 1994-02-24
// Created by: Laurent BOURESCHE
// Copyright (c) 1994-1999 Matra Datavision
// Copyright (c) 1999-2014 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 _BRepLProp_CurveTool_HeaderFile
#define _BRepLProp_CurveTool_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Integer.hxx>
class BRepAdaptor_Curve;
class gp_Pnt;
class gp_Vec;
class BRepLProp_CurveTool
{
public:
DEFINE_STANDARD_ALLOC
//! Computes the point <P> of parameter <U> on the curve <C>.
Standard_EXPORT static void Value(const BRepAdaptor_Curve& C, const double U, gp_Pnt& P);
//! Computes the point <P> and first derivative <V1> of
//! parameter <U> on the curve <C>.
Standard_EXPORT static void D1(const BRepAdaptor_Curve& C, const double U, gp_Pnt& P, gp_Vec& V1);
//! Computes the point <P>, the first derivative <V1> and second
//! derivative <V2> of parameter <U> on the curve <C>.
Standard_EXPORT static void D2(const BRepAdaptor_Curve& C,
const double U,
gp_Pnt& P,
gp_Vec& V1,
gp_Vec& V2);
//! Computes the point <P>, the first derivative <V1>, the
//! second derivative <V2> and third derivative <V3> of
//! parameter <U> on the curve <C>.
Standard_EXPORT static void D3(const BRepAdaptor_Curve& C,
const double U,
gp_Pnt& P,
gp_Vec& V1,
gp_Vec& V2,
gp_Vec& V3);
//! returns the order of continuity of the curve <C>.
//! returns 1 : first derivative only is computable
//! returns 2 : first and second derivative only are computable.
//! returns 3 : first, second and third are computable.
Standard_EXPORT static int Continuity(const BRepAdaptor_Curve& C);
//! returns the first parameter bound of the curve.
Standard_EXPORT static double FirstParameter(const BRepAdaptor_Curve& C);
//! returns the last parameter bound of the curve.
//! FirstParameter must be less than LastParamenter.
Standard_EXPORT static double LastParameter(const BRepAdaptor_Curve& C);
};
#endif // _BRepLProp_CurveTool_HeaderFile

View File

@@ -0,0 +1,281 @@
// Created on: 1994-02-24
// Created by: Laurent BOURESCHE
// Copyright (c) 1994-1999 Matra Datavision
// Copyright (c) 1999-2014 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.
#include <BRepLProp_SLProps.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <LProp_NotDefined.hxx>
#include <Standard_OutOfRange.hxx>
#include <LProp_SurfaceUtils.pxx>
using Access = LProp_SurfaceUtils::DirectAccess;
//=================================================================================================
BRepLProp_SLProps::BRepLProp_SLProps(const BRepAdaptor_Surface& S,
const double U,
const double V,
const int N,
const double Resolution)
: mySurf(S),
myDerOrder(N),
myCN(4),
myLinTol(Resolution)
{
Standard_OutOfRange_Raise_if(N < 0 || N > 2, "BRepLProp_SLProps::BRepLProp_SLProps()");
SetParameters(U, V);
}
//=================================================================================================
BRepLProp_SLProps::BRepLProp_SLProps(const BRepAdaptor_Surface& S,
const int N,
const double Resolution)
: mySurf(S),
myU(RealLast()),
myV(RealLast()),
myDerOrder(N),
myCN(4),
myLinTol(Resolution),
myUTangentStatus(LProp_Undecided),
myVTangentStatus(LProp_Undecided),
myNormalStatus(LProp_Undecided),
myCurvatureStatus(LProp_Undecided)
{
Standard_OutOfRange_Raise_if(N < 0 || N > 2, "BRepLProp_SLProps::BRepLProp_SLProps()");
}
//=================================================================================================
BRepLProp_SLProps::BRepLProp_SLProps(const int N, const double Resolution)
: myU(RealLast()),
myV(RealLast()),
myDerOrder(N),
myCN(0),
myLinTol(Resolution),
myUTangentStatus(LProp_Undecided),
myVTangentStatus(LProp_Undecided),
myNormalStatus(LProp_Undecided),
myCurvatureStatus(LProp_Undecided)
{
Standard_OutOfRange_Raise_if(N < 0 || N > 2, "BRepLProp_SLProps::BRepLProp_SLProps() bad level");
}
//=================================================================================================
void BRepLProp_SLProps::SetSurface(const BRepAdaptor_Surface& S)
{
mySurf = S;
myCN = 4;
}
//=================================================================================================
void BRepLProp_SLProps::SetParameters(const double U, const double V)
{
LProp_SurfaceUtils::SetParameters<Access>(mySurf,
U,
V,
myU,
myV,
myDerOrder,
myPnt,
myD1u,
myD1v,
myD2u,
myD2v,
myDuv,
myUTangentStatus,
myVTangentStatus,
myNormalStatus,
myCurvatureStatus);
}
//=================================================================================================
const gp_Pnt& BRepLProp_SLProps::Value() const
{
return myPnt;
}
//=================================================================================================
const gp_Vec& BRepLProp_SLProps::D1U()
{
return LProp_SurfaceUtils::EnsureSurfDeriv<
Access>(mySurf, myU, myV, myDerOrder, 1, myPnt, myD1u, myD1v, myD2u, myD2v, myDuv, myD1u);
}
//=================================================================================================
const gp_Vec& BRepLProp_SLProps::D1V()
{
return LProp_SurfaceUtils::EnsureSurfDeriv<
Access>(mySurf, myU, myV, myDerOrder, 1, myPnt, myD1u, myD1v, myD2u, myD2v, myDuv, myD1v);
}
//=================================================================================================
const gp_Vec& BRepLProp_SLProps::D2U()
{
return LProp_SurfaceUtils::EnsureSurfDeriv<
Access>(mySurf, myU, myV, myDerOrder, 2, myPnt, myD1u, myD1v, myD2u, myD2v, myDuv, myD2u);
}
//=================================================================================================
const gp_Vec& BRepLProp_SLProps::D2V()
{
return LProp_SurfaceUtils::EnsureSurfDeriv<
Access>(mySurf, myU, myV, myDerOrder, 2, myPnt, myD1u, myD1v, myD2u, myD2v, myDuv, myD2v);
}
//=================================================================================================
const gp_Vec& BRepLProp_SLProps::DUV()
{
return LProp_SurfaceUtils::EnsureSurfDeriv<
Access>(mySurf, myU, myV, myDerOrder, 2, myPnt, myD1u, myD1v, myD2u, myD2v, myDuv, myDuv);
}
//=================================================================================================
bool BRepLProp_SLProps::IsTangentUDefined()
{
return LProp_SurfaceUtils::IsTangentUDefined(*this,
myCN,
myLinTol,
mySignificantFirstDerivativeOrderU,
myUTangentStatus);
}
//=================================================================================================
void BRepLProp_SLProps::TangentU(gp_Dir& D)
{
LProp_SurfaceUtils::TangentU<Access>(*this,
mySurf,
myU,
myV,
myD1u,
myD2u,
mySignificantFirstDerivativeOrderU,
D);
}
//=================================================================================================
bool BRepLProp_SLProps::IsTangentVDefined()
{
return LProp_SurfaceUtils::IsTangentVDefined(*this,
myCN,
myLinTol,
mySignificantFirstDerivativeOrderV,
myVTangentStatus);
}
//=================================================================================================
void BRepLProp_SLProps::TangentV(gp_Dir& D)
{
LProp_SurfaceUtils::TangentV<Access>(*this,
mySurf,
myU,
myV,
myD1v,
myD2v,
mySignificantFirstDerivativeOrderV,
D);
}
//=================================================================================================
bool BRepLProp_SLProps::IsNormalDefined()
{
return LProp_SurfaceUtils::IsNormalDefined(myD1u, myD1v, myLinTol, myNormal, myNormalStatus);
}
//=================================================================================================
const gp_Dir& BRepLProp_SLProps::Normal()
{
return LProp_SurfaceUtils::Normal(*this, myNormal);
}
//=================================================================================================
bool BRepLProp_SLProps::IsCurvatureDefined()
{
return LProp_SurfaceUtils::IsCurvatureDefined(*this,
myCN,
myDerOrder,
myD1u,
myD1v,
myD2u,
myD2v,
myDuv,
myNormal,
myMinCurv,
myMaxCurv,
myDirMinCurv,
myDirMaxCurv,
myMeanCurv,
myGausCurv,
myCurvatureStatus);
}
//=================================================================================================
bool BRepLProp_SLProps::IsUmbilic()
{
return LProp_SurfaceUtils::IsUmbilic(*this, myMaxCurv, myMinCurv);
}
//=================================================================================================
double BRepLProp_SLProps::MaxCurvature()
{
return LProp_SurfaceUtils::RequireCurvature(*this, myMaxCurv);
}
//=================================================================================================
double BRepLProp_SLProps::MinCurvature()
{
return LProp_SurfaceUtils::RequireCurvature(*this, myMinCurv);
}
//=================================================================================================
void BRepLProp_SLProps::CurvatureDirections(gp_Dir& Max, gp_Dir& Min)
{
LProp_SurfaceUtils::CurvatureDirections(*this, myDirMaxCurv, myDirMinCurv, Max, Min);
}
//=================================================================================================
double BRepLProp_SLProps::MeanCurvature()
{
return LProp_SurfaceUtils::RequireCurvature(*this, myMeanCurv);
}
//=================================================================================================
double BRepLProp_SLProps::GaussianCurvature()
{
return LProp_SurfaceUtils::RequireCurvature(*this, myGausCurv);
}

View File

@@ -158,14 +158,14 @@ private:
gp_Vec myD2v;
gp_Vec myDuv;
gp_Dir myNormal;
double myMinCurv;
double myMaxCurv;
double myMinCurv = 0.0;
double myMaxCurv = 0.0;
gp_Dir myDirMinCurv;
gp_Dir myDirMaxCurv;
double myMeanCurv;
double myGausCurv;
int mySignificantFirstDerivativeOrderU;
int mySignificantFirstDerivativeOrderV;
double myMeanCurv = 0.0;
double myGausCurv = 0.0;
int mySignificantFirstDerivativeOrderU = 0;
int mySignificantFirstDerivativeOrderV = 0;
LProp_Status myUTangentStatus;
LProp_Status myVTangentStatus;
LProp_Status myNormalStatus;

View File

@@ -1,35 +0,0 @@
// Created on: 1994-02-24
// Created by: Laurent BOURESCHE
// Copyright (c) 1994-1999 Matra Datavision
// Copyright (c) 1999-2014 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.
#include <BRepLProp_SLProps.hxx>
#include <LProp_BadContinuity.hxx>
#include <Standard_DomainError.hxx>
#include <Standard_OutOfRange.hxx>
#include <LProp_NotDefined.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <BRepLProp_SurfaceTool.hxx>
#include <gp_Pnt.hxx>
#include <gp_Vec.hxx>
#include <gp_Dir.hxx>
#define Surface BRepAdaptor_Surface
#define Surface_hxx <BRepAdaptor_Surface.hxx>
#define Tool BRepLProp_SurfaceTool
#define Tool_hxx <BRepLProp_SurfaceTool.hxx>
#define LProp_SLProps BRepLProp_SLProps
#define LProp_SLProps_hxx <BRepLProp_SLProps.hxx>
#include <LProp_SLProps.gxx>

View File

@@ -5,11 +5,9 @@ set(OCCT_BRepLProp_FILES
BRepLProp.cxx
BRepLProp.hxx
BRepLProp_CLProps.hxx
BRepLProp_CLProps_0.cxx
BRepLProp_CurveTool.cxx
BRepLProp_CurveTool.hxx
BRepLProp_CLProps.cxx
BRepLProp_SLProps.hxx
BRepLProp_SLProps_0.cxx
BRepLProp_SLProps.cxx
BRepLProp_SurfaceTool.cxx
BRepLProp_SurfaceTool.hxx
)