mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-02-15 20:03:07 +05:00
MAJ for planes
This commit is contained in:
parent
637e87d26f
commit
4f8c197c8a
@ -61,6 +61,8 @@
|
|||||||
#include <Bnd_Box.hxx>
|
#include <Bnd_Box.hxx>
|
||||||
#include <BRepBndLib.hxx>
|
#include <BRepBndLib.hxx>
|
||||||
#include <gp_Pnt.hxx>
|
#include <gp_Pnt.hxx>
|
||||||
|
|
||||||
|
#include <GC_MakePlane.hxx>
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : GetID
|
//function : GetID
|
||||||
//purpose :
|
//purpose :
|
||||||
@ -140,34 +142,54 @@ Standard_Integer GEOMImpl_SmoothingSurfaceDriver::Execute(TFunction_Logbook& log
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// Initial surface : Plane
|
||||||
Standard_Real aX = aXmax-aXmin;
|
Standard_Real aX = aXmax-aXmin;
|
||||||
Standard_Real aY = aYmax-aYmin;
|
Standard_Real aY = aYmax-aYmin;
|
||||||
Standard_Real aZ = aZmax-aZmin;
|
Standard_Real aZ = aZmax-aZmin;
|
||||||
gp_Pnt aPnt1 = gp_Pnt(aXmin, aYmin, aZmin);
|
gp_Pnt aPnt1;
|
||||||
gp_Pnt aPnt2 = gp_Pnt(aXmax, aYmax, aZmax);
|
gp_Pnt aPnt2;
|
||||||
gp_Pnt aPnt3;
|
gp_Pnt aPnt3;
|
||||||
if (aX > aY)
|
if (aX > aY)
|
||||||
{
|
{
|
||||||
if (aZ > aY)
|
if (aX > aZ)
|
||||||
{
|
{
|
||||||
aPnt3 = gp_Pnt(aXmin, aYmax, aZmax);
|
// X Plane
|
||||||
|
aPnt1 = gp_Pnt(aXmin, aYmin+aY/2, aZmin);
|
||||||
|
aPnt2 = gp_Pnt(aXmin, aYmin+aY/2, aZmax);
|
||||||
|
aPnt3 = gp_Pnt(aXmax, aYmin+aY/2, aZmin);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
aPnt3 = gp_Pnt(aXmax, aYmin, aZmax);
|
// Z Plane
|
||||||
|
aPnt1 = gp_Pnt(aXmin+aX/2, aYmin, aZmin);
|
||||||
|
aPnt2 = gp_Pnt(aXmin+aX/2, aYmin, aZmax);
|
||||||
|
aPnt3 = gp_Pnt(aXmin+aX/2, aYmax, aZmin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (aZ > aY)
|
if (aY > aZ)
|
||||||
{
|
{
|
||||||
aPnt3 = gp_Pnt(aXmax, aYmin, aZmax);
|
// Y Plane
|
||||||
|
aPnt1 = gp_Pnt(aXmin, aYmin, aZmin+aZ/2);
|
||||||
|
aPnt2 = gp_Pnt(aXmin, aYmax, aZmin+aZ/2);
|
||||||
|
aPnt3 = gp_Pnt(aXmax, aYmin, aZmin+aZ/2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
aPnt3 = gp_Pnt(aXmax, aYmin, aZmax);
|
// Z Plane
|
||||||
|
aPnt1 = gp_Pnt(aXmin+aX/2, aYmin, aZmin);
|
||||||
|
aPnt2 = gp_Pnt(aXmin+aX/2, aYmin, aZmax);
|
||||||
|
aPnt3 = gp_Pnt(aXmin+aX/2, aYmax, aZmin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
GC_MakePlane aMakePlane (aPnt1, aPnt2, aPnt3);
|
||||||
|
double aSize = (aX+aY+aZ)/2;
|
||||||
|
#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
|
||||||
|
aInitShape = BRepBuilderAPI_MakeFace(aMakePlane, -aSize, aSize, -aSize, aSize, Precision::Confusion()).Face();
|
||||||
|
#else
|
||||||
|
aInitShape = BRepBuilderAPI_MakeFace(aMakePlane, -aSize, aSize, -aSize, aSize).Face();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// ** Initialization of surface
|
// ** Initialization of surface
|
||||||
|
Loading…
Reference in New Issue
Block a user