Import: do not export the entire class but only its public methods.

This fixes the warning C4251 for the template classes std::string or std::vector
Forum thread: https://forum.freecadweb.org/viewtopic.php?f=10&t=70317
This commit is contained in:
wmayer
2022-07-17 13:49:27 +02:00
parent 07ccb73fe7
commit d64963d337

View File

@@ -119,7 +119,7 @@ struct LWPolyDataOut
};
//********************
class ImportExport CDxfWrite{
class CDxfWrite{
private:
std::ofstream* m_ofs;
bool m_fail;
@@ -170,77 +170,77 @@ protected:
std::vector<std::string> m_blkRecordList;
public:
CDxfWrite(const char* filepath);
~CDxfWrite();
ImportExport CDxfWrite(const char* filepath);
ImportExport ~CDxfWrite();
void init(void);
void endRun(void);
ImportExport void init(void);
ImportExport void endRun(void);
bool Failed(){return m_fail;}
ImportExport bool Failed(){return m_fail;}
// void setOptions(void);
// bool isVersionValid(int vers);
std::string getLayerName() { return m_layerName; }
void setLayerName(std::string s);
void setVersion(int v) { m_version = v;}
void setPolyOverride(bool b) { m_polyOverride = b; }
void addBlockName(std::string s, std::string blkRecordHandle);
ImportExport std::string getLayerName() { return m_layerName; }
ImportExport void setLayerName(std::string s);
ImportExport void setVersion(int v) { m_version = v;}
ImportExport void setPolyOverride(bool b) { m_polyOverride = b; }
ImportExport void addBlockName(std::string s, std::string blkRecordHandle);
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,
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);
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,
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);
void writeLinearDim(const double* textMidPoint, const double* lineDefPoint,
ImportExport 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,
ImportExport 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,
ImportExport 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,
ImportExport 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,
ImportExport void writeRadialDim(const double* centerPoint, const double* textMidPoint,
const double* arcPoint,
const char* dimText);
void writeRadialDimBlock(const double* centerPoint, const double* textMidPoint,
ImportExport void writeRadialDimBlock(const double* centerPoint, const double* textMidPoint,
const double* arcPoint, const char* dimText);
void writeDiametricDim(const double* textMidPoint,
ImportExport void writeDiametricDim(const double* textMidPoint,
const double* arcPoint1, const double* arcPoint2,
const char* dimText);
void writeDiametricDimBlock(const double* textMidPoint,
ImportExport void writeDiametricDimBlock(const double* textMidPoint,
const double* arcPoint1, const double* arcPoint2,
const char* dimText);
void writeDimBlockPreamble();
void writeBlockTrailer(void);
ImportExport void writeDimBlockPreamble();
ImportExport void writeBlockTrailer(void);
void writeHeaderSection(void);
void writeTablesSection(void);
void writeBlocksSection(void);
void writeEntitiesSection(void);
void writeObjectsSection(void);
void writeClassesSection(void);
ImportExport void writeHeaderSection(void);
ImportExport void writeTablesSection(void);
ImportExport void writeBlocksSection(void);
ImportExport void writeEntitiesSection(void);
ImportExport void writeObjectsSection(void);
ImportExport void writeClassesSection(void);
void makeLayerTable(void);
void makeBlockRecordTableHead(void);
void makeBlockRecordTableBody(void);
void makeBlockSectionHead(void);
ImportExport void makeLayerTable(void);
ImportExport void makeBlockRecordTableHead(void);
ImportExport void makeBlockRecordTableBody(void);
ImportExport void makeBlockSectionHead(void);
};
// derive a class from this and implement it's virtual functions
class ImportExport CDxfRead{
class CDxfRead{
private:
std::ifstream* m_ifs;
@@ -285,28 +285,28 @@ protected:
Aci_t m_aci; // manifest color name or 256 for layer color
public:
CDxfRead(const char* filepath); // this opens the file
virtual ~CDxfRead(); // this closes the file
ImportExport CDxfRead(const char* filepath); // this opens the file
ImportExport virtual ~CDxfRead(); // this closes the file
bool Failed(){return m_fail;}
void DoRead(const bool ignore_errors = false); // this reads the file and calls the following functions
ImportExport bool Failed(){return m_fail;}
ImportExport void DoRead(const bool ignore_errors = false); // this reads the file and calls the following functions
double mm( double value ) const;
ImportExport double mm( double value ) const;
bool IgnoreErrors() const { return(m_ignore_errors); }
ImportExport bool IgnoreErrors() const { return(m_ignore_errors); }
virtual void OnReadLine(const double* /*s*/, const double* /*e*/, bool /*hidden*/){}
virtual void OnReadPoint(const double* /*s*/){}
virtual void OnReadText(const double* /*point*/, const double /*height*/, const char* /*text*/){}
virtual void OnReadArc(const double* /*s*/, const double* /*e*/, const double* /*c*/, bool /*dir*/, bool /*hidden*/){}
virtual void OnReadCircle(const double* /*s*/, const double* /*c*/, bool /*dir*/, bool /*hidden*/){}
virtual void OnReadEllipse(const double* /*c*/, double /*major_radius*/, double /*minor_radius*/, double /*rotation*/, double /*start_angle*/, double /*end_angle*/, bool /*dir*/){}
virtual void OnReadSpline(struct SplineData& /*sd*/){}
virtual void OnReadInsert(const double* /*point*/, const double* /*scale*/, const char* /*name*/, double /*rotation*/){}
virtual void OnReadDimension(const double* /*s*/, const double* /*e*/, const double* /*point*/, double /*rotation*/){}
virtual void AddGraphics() const { }
ImportExport virtual void OnReadLine(const double* /*s*/, const double* /*e*/, bool /*hidden*/){}
ImportExport virtual void OnReadPoint(const double* /*s*/){}
ImportExport virtual void OnReadText(const double* /*point*/, const double /*height*/, const char* /*text*/){}
ImportExport virtual void OnReadArc(const double* /*s*/, const double* /*e*/, const double* /*c*/, bool /*dir*/, bool /*hidden*/){}
ImportExport 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*/){}
ImportExport virtual void OnReadSpline(struct SplineData& /*sd*/){}
ImportExport 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*/){}
ImportExport virtual void AddGraphics() const { }
std::string LayerName() const;
ImportExport std::string LayerName() const;
};
#endif