mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-26 10:19:45 +03:00
"endl" manipulator for Message_Messenger is renamed to "Message_EndLine". The following entities from std namespace are now used with std:: explicitly specified (from Standard_Stream.hxx): std::istream,std::ostream,std::ofstream,std::ifstream,std::fstream, std::filebuf,std::streambuf,std::streampos,std::ios,std::cout,std::cerr, std::cin,std::endl,std::ends,std::flush,std::setw,std::setprecision, std::hex,std::dec.
97 lines
2.4 KiB
C++
Executable File
97 lines
2.4 KiB
C++
Executable File
#include "stdafx.h"
|
|
|
|
#include "Fonc.hxx"
|
|
|
|
//=======================================================================
|
|
//function : grid2surf
|
|
//purpose : grid2surf S FileName
|
|
// cf jm-oliva@paris3.matra-dtv.fr ( Merci JMO )
|
|
//=======================================================================
|
|
|
|
Standard_Boolean grid2surf(CString ShapeName, Handle(Geom_BSplineSurface)& S)
|
|
{
|
|
CString aFileName = ShapeName;
|
|
aFileName.Replace(L'\\', L'/');
|
|
|
|
Handle(TColStd_HArray2OfReal) H;
|
|
|
|
Standard_Real xmin, ymin, Dx, Dy;
|
|
H = ReadRegularGrid (aFileName, xmin, ymin, Dx, Dy);
|
|
GeomAPI_PointsToBSplineSurface MkSurf;
|
|
MkSurf.Interpolate(H->Array2(), xmin, Dx, ymin, Dy);
|
|
S = MkSurf.Surface();
|
|
return Standard_True;
|
|
}
|
|
|
|
//=======================================================================
|
|
//function : ReadRegularGrid
|
|
//purpose :
|
|
// cf jm-oliva@paris3.matra-dtv.fr ( Merci JMO )
|
|
//=======================================================================
|
|
Handle(TColStd_HArray2OfReal) ReadRegularGrid(CString FileName,
|
|
Standard_Real& xmin,
|
|
Standard_Real& ymin,
|
|
Standard_Real& Deltax,
|
|
Standard_Real& Deltay)
|
|
{
|
|
CString aFileName = FileName;
|
|
aFileName.Replace (L'\\', L'/');
|
|
|
|
Handle(TColStd_HArray2OfReal) H;
|
|
Standard_Integer R1 = 1, R2, C1 = 1, C2, R, C;
|
|
Standard_Real x, y, z;
|
|
|
|
xmin = ymin = 10000000;
|
|
|
|
FILE *fp = NULL;
|
|
_wfopen_s (&fp, aFileName, L"r");
|
|
|
|
if (fp)
|
|
{
|
|
fscanf_s(fp, "%d %d", &R2, &C2);
|
|
std::cout << "Reading Grid : ( " << R2 << " , " << C2 << " )." << std::endl;
|
|
|
|
H = new TColStd_HArray2OfReal(C1, C2, R1, R2);
|
|
|
|
Standard_Real FirstX = 0.0;
|
|
Standard_Real FirstY = 0.0;
|
|
|
|
for(R = R1; R <= R2; R++)
|
|
{
|
|
for(C = C1; C <= C2; C++)
|
|
{
|
|
fscanf_s(fp, "%lf %lf %lf ", &x, &y, &z);
|
|
|
|
if(R == 1 && C == 1)
|
|
{
|
|
FirstX=x;
|
|
FirstY=y;
|
|
}
|
|
|
|
// First step for X
|
|
if(R == 1 && C == 2)
|
|
Deltax = x - FirstX;
|
|
|
|
// First step for Y
|
|
if(R == 2 && C == 1)
|
|
Deltay = y - FirstY;
|
|
|
|
// H->SetValue(R, C, z);
|
|
H->SetValue(C, R, z);
|
|
if(x < xmin) xmin = x;
|
|
if(y < ymin) ymin = y;
|
|
}
|
|
}
|
|
|
|
std::cout << "Deltax = " << Deltax << std::endl;
|
|
std::cout << "Deltay = " << Deltay << std::endl;
|
|
|
|
fclose(fp);
|
|
}
|
|
else
|
|
{
|
|
std::cout << "cannot open file : " << FileName << std::endl;
|
|
}
|
|
return H;
|
|
}
|