#include <BRep_Tool.hxx>
#include <BRepTools.hxx>
#include <Precision.hxx>
-#include <Handle_Geom_Curve.hxx>
-#include <Handle_Geom_Line.hxx>
-#include <Handle_Geom_TrimmedCurve.hxx>
+#include <Geom_Curve.hxx>
+#include <Geom_Line.hxx>
+#include <Geom_TrimmedCurve.hxx>
#include <Geom_TrimmedCurve.hxx>
#include <BRepBuilderAPI_MakeEdge.hxx>
#include <BRepBuilderAPI_MakeWire.hxx>
void HYDROData_ShapeFile::Export(Handle(HYDROData_Document) theDocument,
const QString& aFileName,
- NCollection_Sequence<Handle_HYDROData_PolylineXY> aPolyXYSeq,
- NCollection_Sequence<Handle_HYDROData_Polyline3D> aPoly3DSeq,
+ NCollection_Sequence<Handle(HYDROData_PolylineXY)> aPolyXYSeq,
+ NCollection_Sequence<Handle(HYDROData_Polyline3D)> aPoly3DSeq,
QStringList& aNonExpList)
{
SHPHandle hSHPHandle;
if (!aPolyXYSeq.IsEmpty() && aPoly3DSeq.IsEmpty())
{
- hSHPHandle = SHPCreate( aFileName.toAscii().data(), SHPT_ARC );
+ hSHPHandle = SHPCreate( aFileName.toLatin1().data(), SHPT_ARC );
for (int i = 1; i <= aPolyXYSeq.Size(); i++)
if (WriteObjectPolyXY(theDocument, hSHPHandle, aPolyXYSeq(i)) != 1)
aNonExpList.append(aPolyXYSeq(i)->GetName());
}
else if (aPolyXYSeq.IsEmpty() && !aPoly3DSeq.IsEmpty())
{
- hSHPHandle = SHPCreate( aFileName.toAscii().data(), SHPT_ARCZ );
+ hSHPHandle = SHPCreate( aFileName.toLatin1().data(), SHPT_ARCZ );
for (int i = 1; i <= aPoly3DSeq.Size(); i++)
if (WriteObjectPoly3D(theDocument, hSHPHandle, aPoly3DSeq(i)) != 1)
aNonExpList.append(aPoly3DSeq(i)->GetName());
void HYDROData_ShapeFile::Export(Handle(HYDROData_Document) theDocument,
const QString& aFileName,
- const Handle_HYDROData_LandCoverMap& aLCM,
+ const Handle(HYDROData_LandCoverMap)& aLCM,
QStringList& aNonExpList,
bool bCheckLinear, bool bUseDiscr, double theDefl)
{
SHPHandle hSHPHandle = NULL;
if ( !aLCM.IsNull() && !aLCM->IsEmpty())
{
- hSHPHandle = SHPCreate( aFileName.toAscii().data(), SHPT_POLYGON );
+ hSHPHandle = SHPCreate( aFileName.toLatin1().data(), SHPT_POLYGON );
HYDROData_LandCoverMap::Explorer It( aLCM );
for( ; It.More(); It.Next())
{
int HYDROData_ShapeFile::WriteObjectPolyXY(Handle(HYDROData_Document) theDocument,
SHPHandle theShpHandle,
- Handle_HYDROData_PolylineXY thePoly )
+ Handle(HYDROData_PolylineXY) thePoly )
{
SHPObject *aSHPObj;
std::vector<double> x, y;
int HYDROData_ShapeFile::WriteObjectPoly3D(Handle(HYDROData_Document) theDocument,
SHPHandle theShpHandle,
- Handle_HYDROData_Polyline3D thePoly )
+ Handle(HYDROData_Polyline3D) thePoly )
{
SHPObject *aSHPObj;
std::vector<double> x, y, z;
return;
TopoDS_Edge E;
int nParts = anObj->nParts;
- Handle_Geom_Plane aPlaneSur = new Geom_Plane(gp_Pnt(0,0,0), gp_Dir(0,0,1));
+ Handle(Geom_Plane) aPlaneSur = new Geom_Plane(gp_Pnt(0,0,0), gp_Dir(0,0,1));
BRep_Builder BB;
BB.MakeFace(F);
gp_Pnt P2 = BRep_Tool::Pnt(VPoints(k + 1));
if (P1.Distance(P2) < Precision::Confusion())
continue;
- Handle_Geom_TrimmedCurve aTC = GC_MakeSegment(P1, P2).Value();
+ Handle(Geom_TrimmedCurve) aTC = GC_MakeSegment(P1, P2).Value();
TopoDS_Edge E;
if ( k != VPoints.Size() - 2)
E = BRepLib_MakeEdge(aTC, VPoints(k), VPoints(k + 1)).Edge();
int Stat = TryOpenShapeFile(theFileName);
if (Stat != 0)
return Stat;
- myHSHP = SHPOpen( theFileName.toAscii().data(), "rb" );
+ myHSHP = SHPOpen( theFileName.toLatin1().data(), "rb" );
if (!Parse(myHSHP, HYDROData_ShapeFile::ShapeType_Polygon, theShapeTypeOfFile))
return 0;
for (size_t i = 0; i < mySHPObjects.size(); i++)
void HYDROData_ShapeFile::ReadSHPPolyXY(Handle(HYDROData_Document) theDocument, SHPObject* anObj, QString theFileName,
- int theInd, NCollection_Sequence<Handle_HYDROData_Entity>& theEntities, bool bReadAsPolyline)
+ int theInd, NCollection_Sequence<Handle(HYDROData_Entity)>& theEntities, bool bReadAsPolyline)
{
Handle(HYDROData_PolylineXY) aPolylineXY = Handle(HYDROData_PolylineXY)::DownCast( theDocument->CreateObject( KIND_POLYLINEXY ) );
anObj->padfY[StartIndex] == anObj->padfY[EndIndex - 1] )
{
IsClosed = true;
- aPolylineXY->AddSection( TCollection_AsciiString( ("poly_section_" + QString::number(i)).data()->toAscii()), aSectType, true);
+ aPolylineXY->AddSection( TCollection_AsciiString( ("poly_section_" + QString::number(i)).data()->toLatin1()), aSectType, true);
}
else
- aPolylineXY->AddSection( TCollection_AsciiString( ("poly_section_" + QString::number(i)).data()->toAscii()), aSectType, false);
+ aPolylineXY->AddSection( TCollection_AsciiString( ("poly_section_" + QString::number(i)).data()->toLatin1()), aSectType, false);
if (IsClosed)
EndIndex--;
else
{
//polygon; contours always closed
- aPolylineXY->AddSection( TCollection_AsciiString( ("poly_section_" + QString::number(i)).data()->toAscii()), aSectType, true);
+ aPolylineXY->AddSection( TCollection_AsciiString( ("poly_section_" + QString::number(i)).data()->toLatin1()), aSectType, true);
EndIndex--;
}
for ( int k = StartIndex; k < EndIndex ; k++ )
}
void HYDROData_ShapeFile::ReadSHPPoly3D(Handle(HYDROData_Document) theDocument, SHPObject* anObj, QString theFileName,
- int theInd, NCollection_Sequence<Handle_HYDROData_Entity>& theEntities)
+ int theInd, NCollection_Sequence<Handle(HYDROData_Entity)>& theEntities)
{
Handle(HYDROData_PolylineXY) aPolylineXY = Handle(HYDROData_PolylineXY)::DownCast( theDocument->CreateObject( KIND_POLYLINEXY ) );
anObj->padfZ[StartIndex] == anObj->padfZ[EndIndex - 1])
{
IsClosed = true;
- aPolylineXY->AddSection( TCollection_AsciiString( ("poly_section_" + QString::number(i)).data()->toAscii()), aSectType, true );
+ aPolylineXY->AddSection( TCollection_AsciiString( ("poly_section_" + QString::number(i)).data()->toLatin1()), aSectType, true );
}
else
- aPolylineXY->AddSection( TCollection_AsciiString( ("poly_section_" + QString::number(i)).data()->toAscii()), aSectType, false );
+ aPolylineXY->AddSection( TCollection_AsciiString( ("poly_section_" + QString::number(i)).data()->toLatin1()), aSectType, false );
if (IsClosed)
EndIndex--;
}
int HYDROData_ShapeFile::ImportPolylines(Handle(HYDROData_Document) theDocument, const QString& theFileName,
- NCollection_Sequence<Handle_HYDROData_Entity>& theEntities, int& theShapeTypeOfFile)
+ NCollection_Sequence<Handle(HYDROData_Entity)>& theEntities, int& theShapeTypeOfFile, ImportShapeType theShapeTypesToImport)
{
//Free();
int aStat = TryOpenShapeFile(theFileName);
anExistingNames.push_back(anIter.Current()->GetName());
SHPHandle aHSHP;
- aHSHP = SHPOpen( theFileName.toAscii().data(), "rb" );
+ aHSHP = SHPOpen( theFileName.toLatin1().data(), "rb" );
QFileInfo aFileInfo(theFileName);
QString aBaseFileName = aFileInfo.baseName();
if (!Parse(aHSHP, HYDROData_ShapeFile::ShapeType_Polyline, theShapeTypeOfFile))
return 0;
- if (aHSHP->nShapeType == 3 || aHSHP->nShapeType == 23)
+
+ int sh_type = aHSHP->nShapeType;
+
+ if ((theShapeTypesToImport == HYDROData_ShapeFile::ImportShapeType_All ||
+ theShapeTypesToImport == HYDROData_ShapeFile::ImportShapeType_Polyline)
+ && (sh_type == 3 || sh_type == 23))
{
size_t anObjsSize = mySHPObjects.size();
GetFreeIndices(anAllowedIndexes, "_PolyXY_", anObjsSize, anExistingNames, aBaseFileName);
}
aStat = 1;
}
- else if (aHSHP->nShapeType == 13)
+ else if ((theShapeTypesToImport == HYDROData_ShapeFile::ImportShapeType_All ||
+ theShapeTypesToImport == HYDROData_ShapeFile::ImportShapeType_Polyline3D) && sh_type == 13)
{
anInd = 0;
for (;anAllowedIndexes.size() < mySHPObjects.size();)
}
aStat = 1;
}
- else if (aHSHP->nShapeType == 5)
+ else if ((theShapeTypesToImport == HYDROData_ShapeFile::ImportShapeType_All ||
+ theShapeTypesToImport == HYDROData_ShapeFile::ImportShapeType_Polygon) && sh_type == 5)
{
//import polygon's contours as polylines
size_t anObjsSize = mySHPObjects.size();
return -3;
FILE* pFileSHP = NULL;
- pFileSHP = fopen (aSHPfile.toAscii().data(), "r");
+ pFileSHP = fopen (aSHPfile.toLatin1().data(), "r");
FILE* pFileSHX = NULL;
- pFileSHX = fopen (aSHXfile.toAscii().data(), "r");
+ pFileSHX = fopen (aSHXfile.toLatin1().data(), "r");
if (pFileSHP == NULL || pFileSHX == NULL)
{
QString aSHPfile = theSHPFilePath.simplified();
QString aDBFfile = theSHPFilePath.simplified().replace( theSHPFilePath.simplified().size() - 4, 4, ".dbf");
FILE* pFileDBF = NULL;
- pFileDBF = fopen (aDBFfile.toAscii().data(), "r");
+ pFileDBF = fopen (aDBFfile.toLatin1().data(), "r");
if (pFileDBF == NULL)
{
bool HYDROData_ShapeFile::DBF_OpenDBF(const QString& thePathToDBFFile)
{
- myHDBF = DBFOpen( thePathToDBFFile.toAscii().data(), "r" );
+ myHDBF = DBFOpen( thePathToDBFFile.toLatin1().data(), "r" );
if(myHDBF != NULL)
return true;
else