MSYS: fix build failure with MinGW & gcc

This commit is contained in:
wmayer
2023-11-28 09:36:46 +01:00
committed by wwmayer
parent 6c7167043f
commit 207fb09b68
4 changed files with 151 additions and 133 deletions

View File

@@ -6,6 +6,10 @@
#ifndef _dxf_h_
#define _dxf_h_
#ifdef _MSC_VER
#pragma warning(disable : 4251)
#endif
#include <algorithm>
#include <cmath>
#include <cstdio>
@@ -131,7 +135,7 @@ typedef enum
} eDXFVersion_t;
//********************
class CDxfWrite
class ImportExport CDxfWrite
{
private:
std::ofstream* m_ofs;
@@ -195,114 +199,114 @@ protected:
std::vector<std::string> m_blkRecordList;
public:
ImportExport CDxfWrite(const char* filepath);
ImportExport ~CDxfWrite();
CDxfWrite(const char* filepath);
~CDxfWrite();
ImportExport void init();
ImportExport void endRun();
void init();
void endRun();
ImportExport bool Failed()
bool Failed()
{
return m_fail;
}
// void setOptions(void);
// bool isVersionValid(int vers);
ImportExport std::string getLayerName()
std::string getLayerName()
{
return m_layerName;
}
ImportExport void setLayerName(std::string s);
ImportExport void setVersion(int v)
void setLayerName(std::string s);
void setVersion(int v)
{
m_version = v;
}
ImportExport void setPolyOverride(bool b)
void setPolyOverride(bool b)
{
m_polyOverride = b;
}
ImportExport void addBlockName(std::string s, std::string blkRecordHandle);
void addBlockName(std::string s, std::string blkRecordHandle);
ImportExport void writeLine(const double* s, const double* e);
ImportExport void writePoint(const double*);
ImportExport void writeArc(const double* s, const double* e, const double* c, bool dir);
ImportExport void writeEllipse(const double* c,
double major_radius,
double minor_radius,
double rotation,
double start_angle,
double end_angle,
bool endIsCW);
ImportExport void writeCircle(const double* c, double radius);
ImportExport void writeSpline(const SplineDataOut& sd);
ImportExport void writeLWPolyLine(const LWPolyDataOut& pd);
ImportExport void writePolyline(const LWPolyDataOut& pd);
ImportExport void writeVertex(double x, double y, double z);
ImportExport void writeText(const char* text,
const double* location1,
const double* location2,
const double height,
const int horizJust);
ImportExport void writeLinearDim(const double* textMidPoint,
const double* lineDefPoint,
const double* extLine1,
const double* extLine2,
const char* dimText,
int type);
ImportExport void writeLinearDimBlock(const double* textMidPoint,
const double* lineDefPoint,
const double* extLine1,
const double* extLine2,
const char* dimText,
int type);
ImportExport void writeAngularDim(const double* textMidPoint,
const double* lineDefPoint,
const double* startExt1,
const double* endExt1,
const double* startExt2,
const double* endExt2,
const char* dimText);
ImportExport void writeAngularDimBlock(const double* textMidPoint,
const double* lineDefPoint,
const double* startExt1,
const double* endExt1,
const double* startExt2,
const double* endExt2,
const char* dimText);
ImportExport void writeRadialDim(const double* centerPoint,
const double* textMidPoint,
const double* arcPoint,
const char* dimText);
ImportExport void writeRadialDimBlock(const double* centerPoint,
const double* textMidPoint,
const double* arcPoint,
const char* dimText);
ImportExport void writeDiametricDim(const double* textMidPoint,
const double* arcPoint1,
const double* arcPoint2,
const char* dimText);
ImportExport void writeDiametricDimBlock(const double* textMidPoint,
const double* arcPoint1,
const double* arcPoint2,
const char* dimText);
void writeLine(const double* s, const double* e);
void writePoint(const double*);
void writeArc(const double* s, const double* e, const double* c, bool dir);
void writeEllipse(const double* c,
double major_radius,
double minor_radius,
double rotation,
double start_angle,
double end_angle,
bool endIsCW);
void writeCircle(const double* c, double radius);
void writeSpline(const SplineDataOut& sd);
void writeLWPolyLine(const LWPolyDataOut& pd);
void writePolyline(const LWPolyDataOut& pd);
void writeVertex(double x, double y, double z);
void writeText(const char* text,
const double* location1,
const double* location2,
const double height,
const int horizJust);
void writeLinearDim(const double* textMidPoint,
const double* lineDefPoint,
const double* extLine1,
const double* extLine2,
const char* dimText,
int type);
void writeLinearDimBlock(const double* textMidPoint,
const double* lineDefPoint,
const double* extLine1,
const double* extLine2,
const char* dimText,
int type);
void writeAngularDim(const double* textMidPoint,
const double* lineDefPoint,
const double* startExt1,
const double* endExt1,
const double* startExt2,
const double* endExt2,
const char* dimText);
void writeAngularDimBlock(const double* textMidPoint,
const double* lineDefPoint,
const double* startExt1,
const double* endExt1,
const double* startExt2,
const double* endExt2,
const char* dimText);
void writeRadialDim(const double* centerPoint,
const double* textMidPoint,
const double* arcPoint,
const char* dimText);
void writeRadialDimBlock(const double* centerPoint,
const double* textMidPoint,
const double* arcPoint,
const char* dimText);
void writeDiametricDim(const double* textMidPoint,
const double* arcPoint1,
const double* arcPoint2,
const char* dimText);
void writeDiametricDimBlock(const double* textMidPoint,
const double* arcPoint1,
const double* arcPoint2,
const char* dimText);
ImportExport void writeDimBlockPreamble();
ImportExport void writeBlockTrailer();
void writeDimBlockPreamble();
void writeBlockTrailer();
ImportExport void writeHeaderSection();
ImportExport void writeTablesSection();
ImportExport void writeBlocksSection();
ImportExport void writeEntitiesSection();
ImportExport void writeObjectsSection();
ImportExport void writeClassesSection();
void writeHeaderSection();
void writeTablesSection();
void writeBlocksSection();
void writeEntitiesSection();
void writeObjectsSection();
void writeClassesSection();
ImportExport void makeLayerTable();
ImportExport void makeBlockRecordTableHead();
ImportExport void makeBlockRecordTableBody();
ImportExport void makeBlockSectionHead();
void makeLayerTable();
void makeBlockRecordTableHead();
void makeBlockRecordTableBody();
void makeBlockSectionHead();
};
// derive a class from this and implement it's virtual functions
class CDxfRead
class ImportExport CDxfRead
{
private:
std::ifstream* m_ifs;
@@ -371,64 +375,64 @@ private:
const char* GeneralToUTF8(const char* encoded) const;
public:
ImportExport CDxfRead(const char* filepath); // this opens the file
ImportExport virtual ~CDxfRead(); // this closes the file
CDxfRead(const char* filepath); // this opens the file
virtual ~CDxfRead(); // this closes the file
ImportExport bool Failed()
bool Failed()
{
return m_fail;
}
ImportExport void DoRead(
void DoRead(
const bool ignore_errors = false); // this reads the file and calls the following functions
ImportExport double mm(double value) const;
double mm(double value) const;
ImportExport bool IgnoreErrors() const
bool IgnoreErrors() const
{
return (m_ignore_errors);
}
ImportExport virtual void OnReadLine(const double* /*s*/, const double* /*e*/, bool /*hidden*/)
virtual void OnReadLine(const double* /*s*/, const double* /*e*/, bool /*hidden*/)
{}
ImportExport virtual void OnReadPoint(const double* /*s*/)
virtual void OnReadPoint(const double* /*s*/)
{}
ImportExport virtual void OnReadText(const double* /*point*/,
const double /*height*/,
const char* /*text*/,
const double /*rotation*/)
virtual void OnReadText(const double* /*point*/,
const double /*height*/,
const char* /*text*/,
const double /*rotation*/)
{}
ImportExport virtual void OnReadArc(const double* /*s*/,
const double* /*e*/,
const double* /*c*/,
bool /*dir*/,
bool /*hidden*/)
virtual void OnReadArc(const double* /*s*/,
const double* /*e*/,
const double* /*c*/,
bool /*dir*/,
bool /*hidden*/)
{}
ImportExport virtual void
virtual void
OnReadCircle(const double* /*s*/, const double* /*c*/, bool /*dir*/, bool /*hidden*/)
{}
ImportExport virtual void OnReadEllipse(const double* /*c*/,
double /*major_radius*/,
double /*minor_radius*/,
double /*rotation*/,
double /*start_angle*/,
double /*end_angle*/,
bool /*dir*/)
virtual void OnReadEllipse(const double* /*c*/,
double /*major_radius*/,
double /*minor_radius*/,
double /*rotation*/,
double /*start_angle*/,
double /*end_angle*/,
bool /*dir*/)
{}
ImportExport virtual void OnReadSpline(struct SplineData& /*sd*/)
virtual void OnReadSpline(struct SplineData& /*sd*/)
{}
ImportExport virtual void OnReadInsert(const double* /*point*/,
const double* /*scale*/,
const char* /*name*/,
double /*rotation*/)
virtual void OnReadInsert(const double* /*point*/,
const double* /*scale*/,
const char* /*name*/,
double /*rotation*/)
{}
ImportExport virtual void OnReadDimension(const double* /*s*/,
const double* /*e*/,
const double* /*point*/,
double /*rotation*/)
virtual void OnReadDimension(const double* /*s*/,
const double* /*e*/,
const double* /*point*/,
double /*rotation*/)
{}
ImportExport virtual void AddGraphics() const
virtual void AddGraphics() const
{}
ImportExport std::string LayerName() const;
std::string LayerName() const;
};
#endif