Cppcheck warnings.
--HG-- branch : develop
This commit is contained in:
parent
189f091bb4
commit
e6eb9c756b
|
@ -6,11 +6,12 @@
|
||||||
CPPCHECK="../../../../cppcheck/cppcheck"
|
CPPCHECK="../../../../cppcheck/cppcheck"
|
||||||
$CPPCHECK \
|
$CPPCHECK \
|
||||||
-j4 -f -q \
|
-j4 -f -q \
|
||||||
|
-UDRW_DBG \
|
||||||
-U__INTEL_COMPILER_UPDATE \
|
-U__INTEL_COMPILER_UPDATE \
|
||||||
-UqApp \
|
-UqApp \
|
||||||
--template '{file}:{line}:{message}:{id}' \
|
--template '{file}:{line}:{message}:{id}' \
|
||||||
--inline-suppr \
|
--inline-suppr \
|
||||||
--platform=unix32 \
|
--platform=unix64 \
|
||||||
--std=c++11 \
|
--std=c++11 \
|
||||||
--std=posix \
|
--std=posix \
|
||||||
--enable=all \
|
--enable=all \
|
||||||
|
|
|
@ -1923,9 +1923,10 @@ void TMainWindow::SetupMenu()
|
||||||
{
|
{
|
||||||
QAction *action = new QAction(this);
|
QAction *action = new QAction(this);
|
||||||
recentFileActs[i] = action;
|
recentFileActs[i] = action;
|
||||||
connect(action, &QAction::triggered, this, [action, this]()
|
connect(action, &QAction::triggered, this, [this]()
|
||||||
{
|
{
|
||||||
if (action != nullptr)
|
QAction *action = qobject_cast<QAction *>(sender());
|
||||||
|
if (action)
|
||||||
{
|
{
|
||||||
const QString filePath = action->data().toString();
|
const QString filePath = action->data().toString();
|
||||||
if (not filePath.isEmpty())
|
if (not filePath.isEmpty())
|
||||||
|
|
|
@ -311,7 +311,7 @@ UTF8STRING dx_iface::AddFont(const QFont &f)
|
||||||
return ts.name;
|
return ts.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string dx_iface::LocaleToISO() const
|
std::string dx_iface::LocaleToISO()
|
||||||
{
|
{
|
||||||
QMap <std::string, std::string> locMap;
|
QMap <std::string, std::string> locMap;
|
||||||
locMap["croatian"] = "ISO8859-2";
|
locMap["croatian"] = "ISO8859-2";
|
||||||
|
|
|
@ -26,7 +26,7 @@ public:
|
||||||
: path()
|
: path()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
dx_ifaceImg(const DRW_Image& p)
|
explicit dx_ifaceImg(const DRW_Image& p)
|
||||||
: DRW_Image(p),
|
: DRW_Image(p),
|
||||||
path()
|
path()
|
||||||
{}
|
{}
|
||||||
|
@ -42,7 +42,7 @@ public:
|
||||||
: ent()
|
: ent()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
dx_ifaceBlock(const DRW_Block& p)
|
explicit dx_ifaceBlock(const DRW_Block& p)
|
||||||
: DRW_Block(p),
|
: DRW_Block(p),
|
||||||
ent()
|
ent()
|
||||||
{}
|
{}
|
||||||
|
@ -132,7 +132,7 @@ private:
|
||||||
void InitTextstyles();
|
void InitTextstyles();
|
||||||
void InitAppId();
|
void InitAppId();
|
||||||
|
|
||||||
std::string LocaleToISO() const;
|
static std::string LocaleToISO();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // DX_IFACE_H
|
#endif // DX_IFACE_H
|
||||||
|
|
|
@ -194,6 +194,12 @@ public:
|
||||||
z(iz)
|
z(iz)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
DRW_Coord(const DRW_Coord &data)
|
||||||
|
: x(data.x),
|
||||||
|
y(data.y),
|
||||||
|
z(data.z)
|
||||||
|
{}
|
||||||
|
|
||||||
DRW_Coord &operator = (const DRW_Coord& data)
|
DRW_Coord &operator = (const DRW_Coord& data)
|
||||||
{
|
{
|
||||||
if ( &data == this )
|
if ( &data == this )
|
||||||
|
@ -310,7 +316,7 @@ public:
|
||||||
addDouble(d);
|
addDouble(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
DRW_Variant(int c, UTF8STRING s)
|
DRW_Variant(int c, const UTF8STRING &s)
|
||||||
: content(),
|
: content(),
|
||||||
type(),
|
type(),
|
||||||
code(c),
|
code(c),
|
||||||
|
@ -320,7 +326,7 @@ public:
|
||||||
addString(s);
|
addString(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
DRW_Variant(int c, DRW_Coord crd)
|
DRW_Variant(int c, const DRW_Coord &crd)
|
||||||
: content(),
|
: content(),
|
||||||
type(),
|
type(),
|
||||||
code(c),
|
code(c),
|
||||||
|
@ -352,11 +358,11 @@ public:
|
||||||
|
|
||||||
~DRW_Variant() = default;
|
~DRW_Variant() = default;
|
||||||
|
|
||||||
void addString(UTF8STRING s) {setType(STRING); sdata = s; content.s = &sdata;}
|
void addString(const UTF8STRING &s) {setType(STRING); sdata = s; content.s = &sdata;}
|
||||||
void addInt(int i) {setType(INTEGER); content.i = i;}
|
void addInt(int i) {setType(INTEGER); content.i = i;}
|
||||||
void addDouble(double d) {setType(DOUBLE); content.d = d;}
|
void addDouble(double d) {setType(DOUBLE); content.d = d;}
|
||||||
void addCoord() {setType(COORD); vdata.x=0.0; vdata.y=0.0; vdata.z=0.0; content.v = &vdata;}
|
void addCoord() {setType(COORD); vdata.x=0.0; vdata.y=0.0; vdata.z=0.0; content.v = &vdata;}
|
||||||
void addCoord(DRW_Coord v) {setType(COORD); vdata = v; content.v = &vdata;}
|
void addCoord(const DRW_Coord &v) {setType(COORD); vdata = v; content.v = &vdata;}
|
||||||
void setType(enum TYPE t) { type = t;}
|
void setType(enum TYPE t) { type = t;}
|
||||||
void setCoordX(double d) { if (type == COORD) vdata.x = d;}
|
void setCoordX(double d) { if (type == COORD) vdata.x = d;}
|
||||||
void setCoordY(double d) { if (type == COORD) vdata.y = d;}
|
void setCoordY(double d) { if (type == COORD) vdata.y = d;}
|
||||||
|
@ -376,6 +382,7 @@ public:
|
||||||
int code; /*!< dxf code of this value*/
|
int code; /*!< dxf code of this value*/
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
DRW_Variant &operator=(const DRW_Variant &) Q_DECL_EQ_DELETE;
|
||||||
std::string sdata;
|
std::string sdata;
|
||||||
DRW_Coord vdata;
|
DRW_Coord vdata;
|
||||||
};
|
};
|
||||||
|
|
|
@ -55,7 +55,7 @@ void DRW_Entity::calculateAxis(DRW_Coord extPoint){
|
||||||
* apply extrusion in a point using arbitary axis (previous calculated)
|
* apply extrusion in a point using arbitary axis (previous calculated)
|
||||||
* @author Rallaz
|
* @author Rallaz
|
||||||
*/
|
*/
|
||||||
void DRW_Entity::extrudePoint(DRW_Coord extPoint, DRW_Coord *point){
|
void DRW_Entity::extrudePoint(DRW_Coord extPoint, DRW_Coord *point) const{
|
||||||
double px, py, pz;
|
double px, py, pz;
|
||||||
px = (extAxisX.x*point->x)+(extAxisY.x*point->y)+(extPoint.x*point->z);
|
px = (extAxisX.x*point->x)+(extAxisY.x*point->y)+(extPoint.x*point->z);
|
||||||
py = (extAxisX.y*point->x)+(extAxisY.y*point->y)+(extPoint.y*point->z);
|
py = (extAxisX.y*point->x)+(extAxisY.y*point->y)+(extPoint.y*point->z);
|
||||||
|
@ -782,7 +782,6 @@ bool DRW_Ellipse::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
||||||
//parts are the number of vertex to split polyline, default 128
|
//parts are the number of vertex to split polyline, default 128
|
||||||
void DRW_Ellipse::toPolyline(DRW_Polyline *pol, int parts){
|
void DRW_Ellipse::toPolyline(DRW_Polyline *pol, int parts){
|
||||||
double radMajor, radMinor, cosRot, sinRot, incAngle, curAngle;
|
double radMajor, radMinor, cosRot, sinRot, incAngle, curAngle;
|
||||||
double cosCurr, sinCurr;
|
|
||||||
radMajor = sqrt(secPoint.x*secPoint.x + secPoint.y*secPoint.y);
|
radMajor = sqrt(secPoint.x*secPoint.x + secPoint.y*secPoint.y);
|
||||||
radMinor = radMajor*ratio;
|
radMinor = radMajor*ratio;
|
||||||
//calculate sin & cos of included angle
|
//calculate sin & cos of included angle
|
||||||
|
@ -797,8 +796,8 @@ void DRW_Ellipse::toPolyline(DRW_Polyline *pol, int parts){
|
||||||
curAngle = endparam;
|
curAngle = endparam;
|
||||||
i = parts+2;
|
i = parts+2;
|
||||||
}
|
}
|
||||||
cosCurr = cos(curAngle);
|
double cosCurr = cos(curAngle);
|
||||||
sinCurr = sin(curAngle);
|
double sinCurr = sin(curAngle);
|
||||||
double x = basePoint.x + (cosCurr*cosRot*radMajor) - (sinCurr*sinRot*radMinor);
|
double x = basePoint.x + (cosCurr*cosRot*radMajor) - (sinCurr*sinRot*radMinor);
|
||||||
double y = basePoint.y + (cosCurr*sinRot*radMajor) + (sinCurr*cosRot*radMinor);
|
double y = basePoint.y + (cosCurr*sinRot*radMajor) + (sinCurr*cosRot*radMinor);
|
||||||
pol->addVertex( DRW_Vertex(x, y, 0.0, 0.0));
|
pol->addVertex( DRW_Vertex(x, y, 0.0, 0.0));
|
||||||
|
|
|
@ -216,7 +216,7 @@ protected:
|
||||||
//calculates extrusion axis (normal vector)
|
//calculates extrusion axis (normal vector)
|
||||||
void calculateAxis(DRW_Coord extPoint);
|
void calculateAxis(DRW_Coord extPoint);
|
||||||
//apply extrusion to @extPoint and return data in @point
|
//apply extrusion to @extPoint and return data in @point
|
||||||
void extrudePoint(DRW_Coord extPoint, DRW_Coord *point);
|
void extrudePoint(DRW_Coord extPoint, DRW_Coord *point) const;
|
||||||
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0)=0;
|
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0)=0;
|
||||||
//parses dwg common start part to read entity
|
//parses dwg common start part to read entity
|
||||||
bool parseDwg(DRW::Version version, dwgBuffer *buf, dwgBuffer* strBuf, duint32 bs=0);
|
bool parseDwg(DRW::Version version, dwgBuffer *buf, dwgBuffer* strBuf, duint32 bs=0);
|
||||||
|
@ -398,23 +398,23 @@ public:
|
||||||
virtual void applyExtrusion();
|
virtual void applyExtrusion();
|
||||||
|
|
||||||
//! center point in OCS
|
//! center point in OCS
|
||||||
const DRW_Coord & center() { return basePoint; }
|
const DRW_Coord & center() const { return basePoint; }
|
||||||
//! the radius of the circle
|
//! the radius of the circle
|
||||||
double radius() { return radious; }
|
double radius() const { return radious; }
|
||||||
//! start angle in radians
|
//! start angle in radians
|
||||||
double startAngle() { return staangle; }
|
double startAngle() const { return staangle; }
|
||||||
//! end angle in radians
|
//! end angle in radians
|
||||||
double endAngle() { return endangle; }
|
double endAngle() const { return endangle; }
|
||||||
//! thickness
|
//! thickness
|
||||||
double thick() { return thickness; }
|
double thick() const { return thickness; }
|
||||||
//! extrusion
|
//! extrusion
|
||||||
const DRW_Coord & extrusion() { return extPoint; }
|
const DRW_Coord & extrusion() const { return extPoint; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//! interpret code in dxf reading process or dispatch to inherited class
|
//! interpret code in dxf reading process or dispatch to inherited class
|
||||||
void parseCode(int code, dxfReader *reader);
|
void parseCode(int code, dxfReader *reader);
|
||||||
//! interpret dwg data (was already determined to be part of this object)
|
//! interpret dwg data (was already determined to be part of this object)
|
||||||
virtual bool parseDwg(DRW::Version v, dwgBuffer *buf, duint32 bs=0);
|
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double staangle; /*!< start angle, code 50 in radians*/
|
double staangle; /*!< start angle, code 50 in radians*/
|
||||||
|
@ -448,7 +448,7 @@ protected:
|
||||||
//! interpret code in dxf reading process or dispatch to inherited class
|
//! interpret code in dxf reading process or dispatch to inherited class
|
||||||
void parseCode(int code, dxfReader *reader);
|
void parseCode(int code, dxfReader *reader);
|
||||||
//! interpret dwg data (was already determined to be part of this object)
|
//! interpret dwg data (was already determined to be part of this object)
|
||||||
virtual bool parseDwg(DRW::Version v, dwgBuffer *buf, duint32 bs=0);
|
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void correctAxis();
|
void correctAxis();
|
||||||
|
@ -479,7 +479,7 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void parseCode(int code, dxfReader *reader);
|
void parseCode(int code, dxfReader *reader);
|
||||||
virtual bool parseDwg(DRW::Version v, dwgBuffer *buf, duint32 bs=0);
|
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DRW_Coord thirdPoint; /*!< third point, code 12, 22 & 32 */
|
DRW_Coord thirdPoint; /*!< third point, code 12, 22 & 32 */
|
||||||
|
@ -506,19 +506,19 @@ protected:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//! first corner (2D)
|
//! first corner (2D)
|
||||||
const DRW_Coord & firstCorner() { return basePoint; }
|
const DRW_Coord & firstCorner() const { return basePoint; }
|
||||||
//! second corner (2D)
|
//! second corner (2D)
|
||||||
const DRW_Coord & secondCorner() { return secPoint; }
|
const DRW_Coord & secondCorner() const { return secPoint; }
|
||||||
//! third corner (2D)
|
//! third corner (2D)
|
||||||
const DRW_Coord & thirdCorner() { return thirdPoint; }
|
const DRW_Coord & thirdCorner() const { return thirdPoint; }
|
||||||
//! fourth corner (2D)
|
//! fourth corner (2D)
|
||||||
const DRW_Coord & fourthCorner() { return thirdPoint; }
|
const DRW_Coord & fourthCorner() const { return thirdPoint; }
|
||||||
//! thickness
|
//! thickness
|
||||||
double thick() { return thickness; }
|
double thick() const { return thickness; }
|
||||||
//! elevation
|
//! elevation
|
||||||
double elevation() { return basePoint.z; }
|
double elevation() const { return basePoint.z; }
|
||||||
//! extrusion
|
//! extrusion
|
||||||
const DRW_Coord & extrusion() { return extPoint; }
|
const DRW_Coord & extrusion() const { return extPoint; }
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -545,18 +545,18 @@ public:
|
||||||
eType = DRW::E3DFACE;
|
eType = DRW::E3DFACE;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void applyExtrusion(){}
|
virtual void applyExtrusion() {}
|
||||||
|
|
||||||
//! first corner in WCS
|
//! first corner in WCS
|
||||||
const DRW_Coord & firstCorner() { return basePoint; }
|
const DRW_Coord & firstCorner() const { return basePoint; }
|
||||||
//! second corner in WCS
|
//! second corner in WCS
|
||||||
const DRW_Coord & secondCorner() { return secPoint; }
|
const DRW_Coord & secondCorner() const { return secPoint; }
|
||||||
//! third corner in WCS
|
//! third corner in WCS
|
||||||
const DRW_Coord & thirdCorner() { return thirdPoint; }
|
const DRW_Coord & thirdCorner() const { return thirdPoint; }
|
||||||
//! fourth corner in WCS
|
//! fourth corner in WCS
|
||||||
const DRW_Coord & fourthCorner() { return fourPoint; }
|
const DRW_Coord & fourthCorner() const { return fourPoint; }
|
||||||
//! edge visibility flags
|
//! edge visibility flags
|
||||||
InvisibleEdgeFlags edgeFlags() { return static_cast<InvisibleEdgeFlags>(invisibleflag); }
|
InvisibleEdgeFlags edgeFlags() const { return static_cast<InvisibleEdgeFlags>(invisibleflag); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//! interpret code in dxf reading process or dispatch to inherited class
|
//! interpret code in dxf reading process or dispatch to inherited class
|
||||||
|
@ -590,7 +590,7 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void parseCode(int code, dxfReader *reader);
|
void parseCode(int code, dxfReader *reader);
|
||||||
virtual bool parseDwg(DRW::Version v, dwgBuffer *buf, duint32 bs=0);
|
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
UTF8STRING name; /*!< block name, code 2 */
|
UTF8STRING name; /*!< block name, code 2 */
|
||||||
|
@ -628,7 +628,7 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void parseCode(int code, dxfReader *reader);
|
void parseCode(int code, dxfReader *reader);
|
||||||
virtual bool parseDwg(DRW::Version v, dwgBuffer *buf, duint32 bs=0);
|
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
UTF8STRING name; /*!< block name, code 2 */
|
UTF8STRING name; /*!< block name, code 2 */
|
||||||
|
@ -706,7 +706,7 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void parseCode(int code, dxfReader *reader);
|
void parseCode(int code, dxfReader *reader);
|
||||||
bool parseDwg(DRW::Version v, dwgBuffer *buf, duint32 bs=0);
|
bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
int vertexnum; /*!< number of vertex, code 90 */
|
int vertexnum; /*!< number of vertex, code 90 */
|
||||||
|
@ -963,6 +963,7 @@ public:
|
||||||
std::vector<DRW_Vertex *> vertlist; /*!< vertex list */
|
std::vector<DRW_Vertex *> vertlist; /*!< vertex list */
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
DRW_Polyline &operator=(const DRW_Polyline &) Q_DECL_EQ_DELETE;
|
||||||
std::list<duint32>hadlesList; //list of handles, only in 2004+
|
std::list<duint32>hadlesList; //list of handles, only in 2004+
|
||||||
duint32 firstEH; //handle of first entity, only in pre-2004
|
duint32 firstEH; //handle of first entity, only in pre-2004
|
||||||
duint32 lastEH; //handle of last entity, only in pre-2004
|
duint32 lastEH; //handle of last entity, only in pre-2004
|
||||||
|
@ -1078,7 +1079,7 @@ private:
|
||||||
*/
|
*/
|
||||||
class DRW_HatchLoop {
|
class DRW_HatchLoop {
|
||||||
public:
|
public:
|
||||||
DRW_HatchLoop(int t)
|
explicit DRW_HatchLoop(int t)
|
||||||
: type(t),
|
: type(t),
|
||||||
numedges(0),
|
numedges(0),
|
||||||
objlist()
|
objlist()
|
||||||
|
@ -1342,26 +1343,26 @@ protected:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DRW_Coord getDefPoint() const {return defPoint;} /*!< Definition point, code 10, 20 & 30 */
|
DRW_Coord getDefPoint() const {return defPoint;} /*!< Definition point, code 10, 20 & 30 */
|
||||||
void setDefPoint(const DRW_Coord p) {defPoint =p;}
|
void setDefPoint(const DRW_Coord &p) {defPoint =p;}
|
||||||
DRW_Coord getTextPoint() const {return textPoint;} /*!< Middle point of text, code 11, 21 & 31 */
|
DRW_Coord getTextPoint() const {return textPoint;} /*!< Middle point of text, code 11, 21 & 31 */
|
||||||
void setTextPoint(const DRW_Coord p) {textPoint =p;}
|
void setTextPoint(const DRW_Coord &p) {textPoint =p;}
|
||||||
std::string getStyle() const {return style;} /*!< Dimension style, code 3 */
|
std::string getStyle() const {return style;} /*!< Dimension style, code 3 */
|
||||||
void setStyle(const std::string s) {style = s;}
|
void setStyle(const std::string &s) {style = s;}
|
||||||
int getAlign() const { return align;} /*!< attachment point, code 71 */
|
int getAlign() const { return align;} /*!< attachment point, code 71 */
|
||||||
void setAlign(const int a) { align = a;}
|
void setAlign(const int a) { align = a;}
|
||||||
int getTextLineStyle() const { return linesty;} /*!< Dimension text line spacing style, code 72, default 1 */
|
int getTextLineStyle() const { return linesty;} /*!< Dimension text line spacing style, code 72, default 1 */
|
||||||
void setTextLineStyle(const int l) { linesty = l;}
|
void setTextLineStyle(const int l) { linesty = l;}
|
||||||
std::string getText() const {return text;} /*!< Dimension text explicitly entered by the user, code 1 */
|
std::string getText() const {return text;} /*!< Dimension text explicitly entered by the user, code 1 */
|
||||||
void setText(const std::string t) {text = t;}
|
void setText(const std::string &t) {text = t;}
|
||||||
double getTextLineFactor() const { return linefactor;} /*!< Dimension text line spacing factor, code 41, default 1? */
|
double getTextLineFactor() const { return linefactor;} /*!< Dimension text line spacing factor, code 41, default 1? */
|
||||||
void setTextLineFactor(const double l) { linefactor = l;}
|
void setTextLineFactor(const double l) { linefactor = l;}
|
||||||
double getDir() const { return rot;} /*!< rotation angle of the dimension text, code 53 (optional) default 0 */
|
double getDir() const { return rot;} /*!< rotation angle of the dimension text, code 53 (optional) default 0 */
|
||||||
void setDir(const double d) { rot = d;}
|
void setDir(const double d) { rot = d;}
|
||||||
|
|
||||||
DRW_Coord getExtrusion(){return extPoint;} /*!< extrusion, code 210, 220 & 230 */
|
DRW_Coord getExtrusion() const {return extPoint;} /*!< extrusion, code 210, 220 & 230 */
|
||||||
void setExtrusion(const DRW_Coord p) {extPoint =p;}
|
void setExtrusion(const DRW_Coord &p) {extPoint = p;}
|
||||||
std::string getName(){return name;} /*!< Name of the block that contains the entities, code 2 */
|
std::string getName() const {return name;} /*!< Name of the block that contains the entities, code 2 */
|
||||||
void setName(const std::string s) {name = s;}
|
void setName(const std::string &s) {name = s;}
|
||||||
// int getType(){ return type;} /*!< Dimension type, code 70 */
|
// int getType(){ return type;} /*!< Dimension type, code 70 */
|
||||||
bool hasActualMeasurement() const { return hasActual; }
|
bool hasActualMeasurement() const { return hasActual; }
|
||||||
void setActualMeasurement(double value) { hasActual = true; actual = value; }
|
void setActualMeasurement(double value) { hasActual = true; actual = value; }
|
||||||
|
@ -1369,15 +1370,15 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
DRW_Coord getPt2() const {return clonePoint;}
|
DRW_Coord getPt2() const {return clonePoint;}
|
||||||
void setPt2(const DRW_Coord p) {clonePoint= p;}
|
void setPt2(const DRW_Coord &p) {clonePoint= p;}
|
||||||
DRW_Coord getPt3() const {return def1;}
|
DRW_Coord getPt3() const {return def1;}
|
||||||
void setPt3(const DRW_Coord p) {def1= p;}
|
void setPt3(const DRW_Coord &p) {def1= p;}
|
||||||
DRW_Coord getPt4() const {return def2;}
|
DRW_Coord getPt4() const {return def2;}
|
||||||
void setPt4(const DRW_Coord p) {def2= p;}
|
void setPt4(const DRW_Coord &p) {def2= p;}
|
||||||
DRW_Coord getPt5() const {return circlePoint;}
|
DRW_Coord getPt5() const {return circlePoint;}
|
||||||
void setPt5(const DRW_Coord p) {circlePoint= p;}
|
void setPt5(const DRW_Coord &p) {circlePoint= p;}
|
||||||
DRW_Coord getPt6() const {return arcPoint;}
|
DRW_Coord getPt6() const {return arcPoint;}
|
||||||
void setPt6(const DRW_Coord p) {arcPoint= p;}
|
void setPt6(const DRW_Coord &p) {arcPoint= p;}
|
||||||
double getAn50() const {return angle;} /*!< Angle of rotated, horizontal, or vertical dimensions, code 50 */
|
double getAn50() const {return angle;} /*!< Angle of rotated, horizontal, or vertical dimensions, code 50 */
|
||||||
void setAn50(const double d) {angle = d;}
|
void setAn50(const double d) {angle = d;}
|
||||||
double getOb52() const {return oblique;} /*!< oblique angle, code 52 */
|
double getOb52() const {return oblique;} /*!< oblique angle, code 52 */
|
||||||
|
@ -1387,6 +1388,7 @@ protected:
|
||||||
public:
|
public:
|
||||||
int type; /*!< Dimension type, code 70 */
|
int type; /*!< Dimension type, code 70 */
|
||||||
private:
|
private:
|
||||||
|
DRW_Dimension &operator=(const DRW_Dimension &) Q_DECL_EQ_DELETE;
|
||||||
std::string name; /*!< Name of the block that contains the entities, code 2 */
|
std::string name; /*!< Name of the block that contains the entities, code 2 */
|
||||||
DRW_Coord defPoint; /*!< definition point, code 10, 20 & 30 (WCS) */
|
DRW_Coord defPoint; /*!< definition point, code 10, 20 & 30 (WCS) */
|
||||||
DRW_Coord textPoint; /*!< Middle point of text, code 11, 21 & 31 (OCS) */
|
DRW_Coord textPoint; /*!< Middle point of text, code 11, 21 & 31 (OCS) */
|
||||||
|
@ -1429,19 +1431,21 @@ public:
|
||||||
eType = DRW::DIMALIGNED;
|
eType = DRW::DIMALIGNED;
|
||||||
type = 1;
|
type = 1;
|
||||||
}
|
}
|
||||||
DRW_DimAligned(const DRW_Dimension& d): DRW_Dimension(d) {
|
explicit DRW_DimAligned(const DRW_Dimension& d)
|
||||||
|
: DRW_Dimension(d)
|
||||||
|
{
|
||||||
eType = DRW::DIMALIGNED;
|
eType = DRW::DIMALIGNED;
|
||||||
}
|
}
|
||||||
|
|
||||||
DRW_Coord getClonepoint() const {return getPt2();} /*!< Insertion for clones (Baseline & Continue), 12, 22 & 32 */
|
DRW_Coord getClonepoint() const {return getPt2();} /*!< Insertion for clones (Baseline & Continue), 12, 22 & 32 */
|
||||||
void setClonePoint(DRW_Coord c){setPt2(c);}
|
void setClonePoint(DRW_Coord &c){setPt2(c);}
|
||||||
|
|
||||||
DRW_Coord getDimPoint() const {return getDefPoint();} /*!< dim line location point, code 10, 20 & 30 */
|
DRW_Coord getDimPoint() const {return getDefPoint();} /*!< dim line location point, code 10, 20 & 30 */
|
||||||
void setDimPoint(const DRW_Coord p){setDefPoint(p);}
|
void setDimPoint(const DRW_Coord &p){setDefPoint(p);}
|
||||||
DRW_Coord getDef1Point() const {return getPt3();} /*!< Definition point 1, code 13, 23 & 33 */
|
DRW_Coord getDef1Point() const {return getPt3();} /*!< Definition point 1, code 13, 23 & 33 */
|
||||||
void setDef1Point(const DRW_Coord p) {setPt3(p);}
|
void setDef1Point(const DRW_Coord &p) {setPt3(p);}
|
||||||
DRW_Coord getDef2Point() const {return getPt4();} /*!< Definition point 2, code 14, 24 & 34 */
|
DRW_Coord getDef2Point() const {return getPt4();} /*!< Definition point 2, code 14, 24 & 34 */
|
||||||
void setDef2Point(const DRW_Coord p) {setPt4(p);}
|
void setDef2Point(const DRW_Coord &p) {setPt4(p);}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
||||||
|
@ -1458,7 +1462,9 @@ public:
|
||||||
eType = DRW::DIMLINEAR;
|
eType = DRW::DIMLINEAR;
|
||||||
type = 0;
|
type = 0;
|
||||||
}
|
}
|
||||||
DRW_DimLinear(const DRW_Dimension& d): DRW_DimAligned(d) {
|
explicit DRW_DimLinear(const DRW_Dimension& d)
|
||||||
|
: DRW_DimAligned(d)
|
||||||
|
{
|
||||||
eType = DRW::DIMLINEAR;
|
eType = DRW::DIMLINEAR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1480,14 +1486,16 @@ public:
|
||||||
eType = DRW::DIMRADIAL;
|
eType = DRW::DIMRADIAL;
|
||||||
type = 4;
|
type = 4;
|
||||||
}
|
}
|
||||||
DRW_DimRadial(const DRW_Dimension& d): DRW_Dimension(d) {
|
explicit DRW_DimRadial(const DRW_Dimension& d)
|
||||||
|
: DRW_Dimension(d)
|
||||||
|
{
|
||||||
eType = DRW::DIMRADIAL;
|
eType = DRW::DIMRADIAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
DRW_Coord getCenterPoint() const {return getDefPoint();} /*!< center point, code 10, 20 & 30 */
|
DRW_Coord getCenterPoint() const {return getDefPoint();} /*!< center point, code 10, 20 & 30 */
|
||||||
void setCenterPoint(const DRW_Coord p){setDefPoint(p);}
|
void setCenterPoint(const DRW_Coord &p){setDefPoint(p);}
|
||||||
DRW_Coord getDiameterPoint() const {return getPt5();} /*!< Definition point for radius, code 15, 25 & 35 */
|
DRW_Coord getDiameterPoint() const {return getPt5();} /*!< Definition point for radius, code 15, 25 & 35 */
|
||||||
void setDiameterPoint(const DRW_Coord p){setPt5(p);}
|
void setDiameterPoint(const DRW_Coord &p){setPt5(p);}
|
||||||
double getLeaderLength() const {return getRa40();} /*!< Leader length, code 40 */
|
double getLeaderLength() const {return getRa40();} /*!< Leader length, code 40 */
|
||||||
void setLeaderLength(const double d) {setRa40(d);}
|
void setLeaderLength(const double d) {setRa40(d);}
|
||||||
|
|
||||||
|
@ -1507,14 +1515,16 @@ public:
|
||||||
eType = DRW::DIMDIAMETRIC;
|
eType = DRW::DIMDIAMETRIC;
|
||||||
type = 3;
|
type = 3;
|
||||||
}
|
}
|
||||||
DRW_DimDiametric(const DRW_Dimension& d): DRW_Dimension(d) {
|
explicit DRW_DimDiametric(const DRW_Dimension& d)
|
||||||
|
: DRW_Dimension(d)
|
||||||
|
{
|
||||||
eType = DRW::DIMDIAMETRIC;
|
eType = DRW::DIMDIAMETRIC;
|
||||||
}
|
}
|
||||||
|
|
||||||
DRW_Coord getDiameter1Point() const {return getPt5();} /*!< First definition point for diameter, code 15, 25 & 35 */
|
DRW_Coord getDiameter1Point() const {return getPt5();} /*!< First definition point for diameter, code 15, 25 & 35 */
|
||||||
void setDiameter1Point(const DRW_Coord p){setPt5(p);}
|
void setDiameter1Point(const DRW_Coord &p){setPt5(p);}
|
||||||
DRW_Coord getDiameter2Point() const {return getDefPoint();} /*!< Oposite point for diameter, code 10, 20 & 30 */
|
DRW_Coord getDiameter2Point() const {return getDefPoint();} /*!< Oposite point for diameter, code 10, 20 & 30 */
|
||||||
void setDiameter2Point(const DRW_Coord p){setDefPoint(p);}
|
void setDiameter2Point(const DRW_Coord &p){setDefPoint(p);}
|
||||||
double getLeaderLength() const {return getRa40();} /*!< Leader length, code 40 */
|
double getLeaderLength() const {return getRa40();} /*!< Leader length, code 40 */
|
||||||
void setLeaderLength(const double d) {setRa40(d);}
|
void setLeaderLength(const double d) {setRa40(d);}
|
||||||
|
|
||||||
|
@ -1534,20 +1544,21 @@ public:
|
||||||
eType = DRW::DIMANGULAR;
|
eType = DRW::DIMANGULAR;
|
||||||
type = 2;
|
type = 2;
|
||||||
}
|
}
|
||||||
DRW_DimAngular(const DRW_Dimension& d): DRW_Dimension(d) {
|
explicit DRW_DimAngular(const DRW_Dimension& d): DRW_Dimension(d)
|
||||||
|
{
|
||||||
eType = DRW::DIMANGULAR;
|
eType = DRW::DIMANGULAR;
|
||||||
}
|
}
|
||||||
|
|
||||||
DRW_Coord getFirstLine1() const {return getPt3();} /*!< Definition point line 1-1, code 13, 23 & 33 */
|
DRW_Coord getFirstLine1() const {return getPt3();} /*!< Definition point line 1-1, code 13, 23 & 33 */
|
||||||
void setFirstLine1(const DRW_Coord p) {setPt3(p);}
|
void setFirstLine1(const DRW_Coord &p) {setPt3(p);}
|
||||||
DRW_Coord getFirstLine2() const {return getPt4();} /*!< Definition point line 1-2, code 14, 24 & 34 */
|
DRW_Coord getFirstLine2() const {return getPt4();} /*!< Definition point line 1-2, code 14, 24 & 34 */
|
||||||
void setFirstLine2(const DRW_Coord p) {setPt4(p);}
|
void setFirstLine2(const DRW_Coord &p) {setPt4(p);}
|
||||||
DRW_Coord getSecondLine1() const {return getPt5();} /*!< Definition point line 2-1, code 15, 25 & 35 */
|
DRW_Coord getSecondLine1() const {return getPt5();} /*!< Definition point line 2-1, code 15, 25 & 35 */
|
||||||
void setSecondLine1(const DRW_Coord p) {setPt5(p);}
|
void setSecondLine1(const DRW_Coord &p) {setPt5(p);}
|
||||||
DRW_Coord getSecondLine2() const {return getDefPoint();} /*!< Definition point line 2-2, code 10, 20 & 30 */
|
DRW_Coord getSecondLine2() const {return getDefPoint();} /*!< Definition point line 2-2, code 10, 20 & 30 */
|
||||||
void setSecondLine2(const DRW_Coord p){setDefPoint(p);}
|
void setSecondLine2(const DRW_Coord &p){setDefPoint(p);}
|
||||||
DRW_Coord getDimPoint() const {return getPt6();} /*!< Dimension definition point, code 16, 26 & 36 */
|
DRW_Coord getDimPoint() const {return getPt6();} /*!< Dimension definition point, code 16, 26 & 36 */
|
||||||
void setDimPoint(const DRW_Coord p) {setPt6(p);}
|
void setDimPoint(const DRW_Coord &p) {setPt6(p);}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
||||||
|
@ -1566,18 +1577,19 @@ public:
|
||||||
eType = DRW::DIMANGULAR3P;
|
eType = DRW::DIMANGULAR3P;
|
||||||
type = 5;
|
type = 5;
|
||||||
}
|
}
|
||||||
DRW_DimAngular3p(const DRW_Dimension& d): DRW_Dimension(d) {
|
explicit DRW_DimAngular3p(const DRW_Dimension& d): DRW_Dimension(d)
|
||||||
|
{
|
||||||
eType = DRW::DIMANGULAR3P;
|
eType = DRW::DIMANGULAR3P;
|
||||||
}
|
}
|
||||||
|
|
||||||
DRW_Coord getFirstLine() const {return getPt3();} /*!< Definition point line 1, code 13, 23 & 33 */
|
DRW_Coord getFirstLine() const {return getPt3();} /*!< Definition point line 1, code 13, 23 & 33 */
|
||||||
void setFirstLine(const DRW_Coord p) {setPt3(p);}
|
void setFirstLine(const DRW_Coord &p) {setPt3(p);}
|
||||||
DRW_Coord getSecondLine() const {return getPt4();} /*!< Definition point line 2, code 14, 24 & 34 */
|
DRW_Coord getSecondLine() const {return getPt4();} /*!< Definition point line 2, code 14, 24 & 34 */
|
||||||
void setSecondLine(const DRW_Coord p) {setPt4(p);}
|
void setSecondLine(const DRW_Coord &p) {setPt4(p);}
|
||||||
DRW_Coord getVertexPoint() const {return getPt5();} /*!< Vertex point, code 15, 25 & 35 */
|
DRW_Coord getVertexPoint() const {return getPt5();} /*!< Vertex point, code 15, 25 & 35 */
|
||||||
void SetVertexPoint(const DRW_Coord p) {setPt5(p);}
|
void SetVertexPoint(const DRW_Coord &p) {setPt5(p);}
|
||||||
DRW_Coord getDimPoint() const {return getDefPoint();} /*!< Dimension definition point, code 10, 20 & 30 */
|
DRW_Coord getDimPoint() const {return getDefPoint();} /*!< Dimension definition point, code 10, 20 & 30 */
|
||||||
void setDimPoint(const DRW_Coord p) {setDefPoint(p);}
|
void setDimPoint(const DRW_Coord &p) {setDefPoint(p);}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
||||||
|
@ -1595,16 +1607,18 @@ public:
|
||||||
eType = DRW::DIMORDINATE;
|
eType = DRW::DIMORDINATE;
|
||||||
type = 6;
|
type = 6;
|
||||||
}
|
}
|
||||||
DRW_DimOrdinate(const DRW_Dimension& d): DRW_Dimension(d) {
|
explicit DRW_DimOrdinate(const DRW_Dimension& d)
|
||||||
|
: DRW_Dimension(d)
|
||||||
|
{
|
||||||
eType = DRW::DIMORDINATE;
|
eType = DRW::DIMORDINATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
DRW_Coord getOriginPoint() const {return getDefPoint();} /*!< Origin definition point, code 10, 20 & 30 */
|
DRW_Coord getOriginPoint() const {return getDefPoint();} /*!< Origin definition point, code 10, 20 & 30 */
|
||||||
void setOriginPoint(const DRW_Coord p) {setDefPoint(p);}
|
void setOriginPoint(const DRW_Coord &p) {setDefPoint(p);}
|
||||||
DRW_Coord getFirstLine() const {return getPt3();} /*!< Feature location point, code 13, 23 & 33 */
|
DRW_Coord getFirstLine() const {return getPt3();} /*!< Feature location point, code 13, 23 & 33 */
|
||||||
void setFirstLine(const DRW_Coord p) {setPt3(p);}
|
void setFirstLine(const DRW_Coord &p) {setPt3(p);}
|
||||||
DRW_Coord getSecondLine() const {return getPt4();} /*!< Leader end point, code 14, 24 & 34 */
|
DRW_Coord getSecondLine() const {return getPt4();} /*!< Leader end point, code 14, 24 & 34 */
|
||||||
void setSecondLine(const DRW_Coord p) {setPt4(p);}
|
void setSecondLine(const DRW_Coord &p) {setPt4(p);}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
||||||
|
|
|
@ -34,7 +34,7 @@ DRW_Header::DRW_Header()
|
||||||
vpEntHeaderCtrl(0)
|
vpEntHeaderCtrl(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void DRW_Header::addComment(std::string c){
|
void DRW_Header::addComment(const std::string &c){
|
||||||
if (!comments.empty())
|
if (!comments.empty())
|
||||||
comments += '\n';
|
comments += '\n';
|
||||||
comments += c;
|
comments += c;
|
||||||
|
@ -1703,6 +1703,7 @@ void DRW_Header::write(dxfWriter *writer, DRW::Version ver){
|
||||||
}
|
}
|
||||||
|
|
||||||
void DRW_Header::addDouble(std::string key, double value, int code){
|
void DRW_Header::addDouble(std::string key, double value, int code){
|
||||||
|
// cppcheck-suppress publicAllocationError
|
||||||
curr = new DRW_Variant();
|
curr = new DRW_Variant();
|
||||||
curr->addDouble( value );
|
curr->addDouble( value );
|
||||||
curr->code = code;
|
curr->code = code;
|
||||||
|
@ -1710,6 +1711,7 @@ void DRW_Header::addDouble(std::string key, double value, int code){
|
||||||
}
|
}
|
||||||
|
|
||||||
void DRW_Header::addInt(std::string key, int value, int code){
|
void DRW_Header::addInt(std::string key, int value, int code){
|
||||||
|
// cppcheck-suppress publicAllocationError
|
||||||
curr = new DRW_Variant();
|
curr = new DRW_Variant();
|
||||||
curr->addInt( value );
|
curr->addInt( value );
|
||||||
curr->code = code;
|
curr->code = code;
|
||||||
|
@ -1717,6 +1719,7 @@ void DRW_Header::addInt(std::string key, int value, int code){
|
||||||
}
|
}
|
||||||
|
|
||||||
void DRW_Header::addStr(std::string key, std::string value, int code){
|
void DRW_Header::addStr(std::string key, std::string value, int code){
|
||||||
|
// cppcheck-suppress publicAllocationError
|
||||||
curr = new DRW_Variant();
|
curr = new DRW_Variant();
|
||||||
curr->addString( value );
|
curr->addString( value );
|
||||||
curr->code = code;
|
curr->code = code;
|
||||||
|
@ -1724,6 +1727,7 @@ void DRW_Header::addStr(std::string key, std::string value, int code){
|
||||||
}
|
}
|
||||||
|
|
||||||
void DRW_Header::addCoord(std::string key, DRW_Coord value, int code){
|
void DRW_Header::addCoord(std::string key, DRW_Coord value, int code){
|
||||||
|
// cppcheck-suppress publicAllocationError
|
||||||
curr = new DRW_Variant();
|
curr = new DRW_Variant();
|
||||||
curr->addCoord( value );
|
curr->addCoord( value );
|
||||||
curr->code = code;
|
curr->code = code;
|
||||||
|
@ -1797,7 +1801,6 @@ bool DRW_Header::getCoord(std::string key, DRW_Coord *varCoord){
|
||||||
bool DRW_Header::parseDwg(DRW::Version version, dwgBuffer *buf, dwgBuffer *hBbuf, duint8 mv){
|
bool DRW_Header::parseDwg(DRW::Version version, dwgBuffer *buf, dwgBuffer *hBbuf, duint8 mv){
|
||||||
bool result = true;
|
bool result = true;
|
||||||
duint32 size = buf->getRawLong32();
|
duint32 size = buf->getRawLong32();
|
||||||
duint32 bitSize = 0;
|
|
||||||
duint32 endBitPos = 160; //start bit: 16 sentinel + 4 size
|
duint32 endBitPos = 160; //start bit: 16 sentinel + 4 size
|
||||||
DRW_DBG("\nbyte size of data: "); DRW_DBG(size);
|
DRW_DBG("\nbyte size of data: "); DRW_DBG(size);
|
||||||
if (version > DRW::AC1021 && mv > 3) { //2010+
|
if (version > DRW::AC1021 && mv > 3) { //2010+
|
||||||
|
@ -1812,7 +1815,7 @@ bool DRW_Header::parseDwg(DRW::Version version, dwgBuffer *buf, dwgBuffer *hBbuf
|
||||||
//and mark the start of handle stream
|
//and mark the start of handle stream
|
||||||
//header is one object reads data and continue read strings ???
|
//header is one object reads data and continue read strings ???
|
||||||
if (version > DRW::AC1018) {//2007+
|
if (version > DRW::AC1018) {//2007+
|
||||||
bitSize = buf->getRawLong32();
|
duint32 bitSize = buf->getRawLong32();
|
||||||
DRW_DBG("\nsize in bits: "); DRW_DBG(bitSize);
|
DRW_DBG("\nsize in bits: "); DRW_DBG(bitSize);
|
||||||
endBitPos += bitSize;
|
endBitPos += bitSize;
|
||||||
hBbuf->setPosition(endBitPos >>3);
|
hBbuf->setPosition(endBitPos >>3);
|
||||||
|
|
|
@ -83,7 +83,7 @@ public:
|
||||||
void addCoord(std::string key, DRW_Coord value, int code);
|
void addCoord(std::string key, DRW_Coord value, int code);
|
||||||
std::string getComments() const {return comments;}
|
std::string getComments() const {return comments;}
|
||||||
void write(dxfWriter *writer, DRW::Version ver);
|
void write(dxfWriter *writer, DRW::Version ver);
|
||||||
void addComment(std::string c);
|
void addComment(const std::string &c);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void parseCode(int code, dxfReader *reader);
|
void parseCode(int code, dxfReader *reader);
|
||||||
|
@ -92,7 +92,7 @@ private:
|
||||||
bool getDouble(std::string key, double *varDouble);
|
bool getDouble(std::string key, double *varDouble);
|
||||||
bool getInt(std::string key, int *varInt);
|
bool getInt(std::string key, int *varInt);
|
||||||
bool getStr(std::string key, std::string *varStr);
|
bool getStr(std::string key, std::string *varStr);
|
||||||
bool getCoord(std::string key, DRW_Coord *varStr);
|
bool getCoord(std::string key, DRW_Coord *varCoord);
|
||||||
void clearVars()
|
void clearVars()
|
||||||
{
|
{
|
||||||
for (std::map<std::string,DRW_Variant*>::iterator it=vars.begin(); it!=vars.end(); ++it)
|
for (std::map<std::string,DRW_Variant*>::iterator it=vars.begin(); it!=vars.end(); ++it)
|
||||||
|
|
|
@ -1128,7 +1128,7 @@ bool DRW_Vport::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
||||||
void DRW_ImageDef::parseCode(int code, dxfReader *reader){
|
void DRW_ImageDef::parseCode(int code, dxfReader *reader){
|
||||||
switch (code) {
|
switch (code) {
|
||||||
case 1:
|
case 1:
|
||||||
name = reader->getUtf8String();
|
fileName = reader->getUtf8String();
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
handle = reader->getHandleString();
|
handle = reader->getHandleString();
|
||||||
|
@ -1173,8 +1173,8 @@ bool DRW_ImageDef::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
||||||
DRW_DBG("class Version: "); DRW_DBG(imgVersion);
|
DRW_DBG("class Version: "); DRW_DBG(imgVersion);
|
||||||
DRW_Coord size = buf->get2RawDouble();
|
DRW_Coord size = buf->get2RawDouble();
|
||||||
(void)size;
|
(void)size;
|
||||||
name = sBuf->getVariableText(version, false);
|
fileName = sBuf->getVariableText(version, false);
|
||||||
DRW_DBG("appId name: "); DRW_DBG(name.c_str()); DRW_DBG("\n");
|
DRW_DBG("appId name: "); DRW_DBG(fileName.c_str()); DRW_DBG("\n");
|
||||||
loaded = buf->getBit();
|
loaded = buf->getBit();
|
||||||
resolution = buf->getRawChar8();
|
resolution = buf->getRawChar8();
|
||||||
up = buf->getRawDouble();
|
up = buf->getRawDouble();
|
||||||
|
|
|
@ -592,7 +592,7 @@ class DRW_ImageDef : public DRW_TableEntry {//
|
||||||
SETOBJFRIENDS
|
SETOBJFRIENDS
|
||||||
public:
|
public:
|
||||||
DRW_ImageDef()
|
DRW_ImageDef()
|
||||||
: name(),
|
: fileName(),
|
||||||
imgVersion(),
|
imgVersion(),
|
||||||
u(),
|
u(),
|
||||||
v(),
|
v(),
|
||||||
|
@ -617,7 +617,7 @@ protected:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// std::string handle; /*!< entity identifier, code 5 */
|
// std::string handle; /*!< entity identifier, code 5 */
|
||||||
UTF8STRING name; /*!< File name of image, code 1 */
|
UTF8STRING fileName; /*!< File name of image, code 1 */
|
||||||
int imgVersion; /*!< class version, code 90, 0=R14 version */
|
int imgVersion; /*!< class version, code 90, 0=R14 version */
|
||||||
double u; /*!< image size in pixels U value, code 10 */
|
double u; /*!< image size in pixels U value, code 10 */
|
||||||
double v; /*!< image size in pixels V value, code 20 */
|
double v; /*!< image size in pixels V value, code 20 */
|
||||||
|
|
|
@ -61,6 +61,11 @@ DRW_dbg::DRW_dbg()
|
||||||
prClass(new print_none)
|
prClass(new print_none)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
DRW_dbg::~DRW_dbg()
|
||||||
|
{
|
||||||
|
delete prClass;
|
||||||
|
}
|
||||||
|
|
||||||
void DRW_dbg::setLevel(LEVEL lvl){
|
void DRW_dbg::setLevel(LEVEL lvl){
|
||||||
level = lvl;
|
level = lvl;
|
||||||
delete prClass;
|
delete prClass;
|
||||||
|
@ -73,7 +78,7 @@ void DRW_dbg::setLevel(LEVEL lvl){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DRW_dbg::LEVEL DRW_dbg::getLevel(){
|
DRW_dbg::LEVEL DRW_dbg::getLevel() const{
|
||||||
return level;
|
return level;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <QtGlobal>
|
||||||
//#include <iomanip>
|
//#include <iomanip>
|
||||||
|
|
||||||
#define DRW_DBGSL(a) DRW_dbg::getInstance()->setLevel(a)
|
#define DRW_DBGSL(a) DRW_dbg::getInstance()->setLevel(a)
|
||||||
|
@ -35,7 +36,7 @@ public:
|
||||||
DEBUG
|
DEBUG
|
||||||
};
|
};
|
||||||
void setLevel(LEVEL lvl);
|
void setLevel(LEVEL lvl);
|
||||||
LEVEL getLevel();
|
LEVEL getLevel() const;
|
||||||
static DRW_dbg *getInstance();
|
static DRW_dbg *getInstance();
|
||||||
void print(std::string s);
|
void print(std::string s);
|
||||||
void print(int i);
|
void print(int i);
|
||||||
|
@ -50,7 +51,9 @@ public:
|
||||||
void printPT(double x, double y, double z);
|
void printPT(double x, double y, double z);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Q_DISABLE_COPY(DRW_dbg)
|
||||||
DRW_dbg();
|
DRW_dbg();
|
||||||
|
~DRW_dbg();
|
||||||
static DRW_dbg *instance;
|
static DRW_dbg *instance;
|
||||||
LEVEL level;
|
LEVEL level;
|
||||||
std::ios_base::fmtflags flags;
|
std::ios_base::fmtflags flags;
|
||||||
|
|
|
@ -48,7 +48,7 @@ void DRW_TextCodec::setVersion(std::string *v, bool dxfFormat){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DRW_TextCodec::setCodePage(std::string *c, bool dxfFormat){
|
void DRW_TextCodec::setCodePage(const std::string *c, bool dxfFormat){
|
||||||
cp = correctCodePage(*c);
|
cp = correctCodePage(*c);
|
||||||
if (version < DRW::AC1021)
|
if (version < DRW::AC1021)
|
||||||
{
|
{
|
||||||
|
@ -71,7 +71,7 @@ void DRW_TextCodec::setCodePage(std::string *c, bool dxfFormat){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string DRW_TextCodec::toUtf8(std::string s) {
|
std::string DRW_TextCodec::toUtf8(const std::string &s) {
|
||||||
if (conv == nullptr)
|
if (conv == nullptr)
|
||||||
{
|
{
|
||||||
return s;
|
return s;
|
||||||
|
@ -81,7 +81,7 @@ std::string DRW_TextCodec::toUtf8(std::string s) {
|
||||||
return encodedString.toStdString();
|
return encodedString.toStdString();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string DRW_TextCodec::fromUtf8(std::string s) {
|
std::string DRW_TextCodec::fromUtf8(const std::__cxx11::string &s) {
|
||||||
if (conv == nullptr)
|
if (conv == nullptr)
|
||||||
{
|
{
|
||||||
return s;
|
return s;
|
||||||
|
|
|
@ -10,14 +10,14 @@ class DRW_TextCodec
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
DRW_TextCodec();
|
DRW_TextCodec();
|
||||||
std::string fromUtf8(std::string s);
|
std::string fromUtf8(const std::string &s);
|
||||||
std::string toUtf8(std::string s);
|
std::string toUtf8(const std::string &s);
|
||||||
int getVersion(){return version;}
|
int getVersion() const {return version;}
|
||||||
void setVersion(std::string *v, bool dxfFormat);
|
void setVersion(std::string *v, bool dxfFormat);
|
||||||
void setVersion(int v, bool dxfFormat);
|
void setVersion(int v, bool dxfFormat);
|
||||||
void setCodePage(std::string *c, bool dxfFormat);
|
void setCodePage(const std::string *c, bool dxfFormat);
|
||||||
void setCodePage(std::string c, bool dxfFormat){setCodePage(&c, dxfFormat);}
|
void setCodePage(const std::string &c, bool dxfFormat){setCodePage(&c, dxfFormat);}
|
||||||
std::string getCodePage(){return cp;}
|
std::string getCodePage() const {return cp;}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string correctCodePage(const std::string& s);
|
std::string correctCodePage(const std::string& s);
|
||||||
|
|
|
@ -102,14 +102,6 @@ static unsigned int crc32Table[256] ={
|
||||||
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
|
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
|
||||||
0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d};
|
0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d};
|
||||||
|
|
||||||
union typeCast {
|
|
||||||
char buf[8];
|
|
||||||
duint16 i16;
|
|
||||||
duint32 i32;
|
|
||||||
duint64 i64;
|
|
||||||
ddouble64 d64;
|
|
||||||
};
|
|
||||||
|
|
||||||
bool dwgFileStream::setPos(duint64 p){
|
bool dwgFileStream::setPos(duint64 p){
|
||||||
if (p >= sz)
|
if (p >= sz)
|
||||||
return false;
|
return false;
|
||||||
|
@ -368,6 +360,7 @@ double dwgBuffer::getBitDouble(){
|
||||||
} else {
|
} else {
|
||||||
filestr->read (buffer,8);
|
filestr->read (buffer,8);
|
||||||
}
|
}
|
||||||
|
// cppcheck-suppress invalidPointerCast
|
||||||
double* ret = reinterpret_cast<double*>( buffer );
|
double* ret = reinterpret_cast<double*>( buffer );
|
||||||
return *ret;
|
return *ret;
|
||||||
}
|
}
|
||||||
|
@ -429,6 +422,7 @@ double dwgBuffer::getRawDouble(){
|
||||||
for (int i = 0; i < 8; i++)
|
for (int i = 0; i < 8; i++)
|
||||||
buffer[i] = getRawChar8();
|
buffer[i] = getRawChar8();
|
||||||
}
|
}
|
||||||
|
// cppcheck-suppress invalidPointerCast
|
||||||
double* nOffset = reinterpret_cast<double*>( buffer );
|
double* nOffset = reinterpret_cast<double*>( buffer );
|
||||||
return *nOffset;
|
return *nOffset;
|
||||||
}
|
}
|
||||||
|
@ -713,9 +707,11 @@ double dwgBuffer::getDefaultDouble(double d){
|
||||||
} else {
|
} else {
|
||||||
filestr->read (buffer,4);
|
filestr->read (buffer,4);
|
||||||
}
|
}
|
||||||
|
// cppcheck-suppress invalidPointerCast
|
||||||
tmp = reinterpret_cast<char*>(&d);
|
tmp = reinterpret_cast<char*>(&d);
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
tmp[i] = buffer[i];
|
tmp[i] = buffer[i];
|
||||||
|
// cppcheck-suppress invalidPointerCast
|
||||||
double ret = *reinterpret_cast<double*>( tmp );
|
double ret = *reinterpret_cast<double*>( tmp );
|
||||||
return ret;
|
return ret;
|
||||||
} else if (b == 2){
|
} else if (b == 2){
|
||||||
|
@ -727,11 +723,13 @@ double dwgBuffer::getDefaultDouble(double d){
|
||||||
} else {
|
} else {
|
||||||
filestr->read (buffer,6);
|
filestr->read (buffer,6);
|
||||||
}
|
}
|
||||||
|
// cppcheck-suppress invalidPointerCast
|
||||||
tmp = reinterpret_cast<char*>(&d);
|
tmp = reinterpret_cast<char*>(&d);
|
||||||
for (int i = 2; i < 6; i++)
|
for (int i = 2; i < 6; i++)
|
||||||
tmp[i-2] = buffer[i];
|
tmp[i-2] = buffer[i];
|
||||||
tmp[4] = buffer[0];
|
tmp[4] = buffer[0];
|
||||||
tmp[5] = buffer[1];
|
tmp[5] = buffer[1];
|
||||||
|
// cppcheck-suppress invalidPointerCast
|
||||||
double ret = *reinterpret_cast<double*>( tmp );
|
double ret = *reinterpret_cast<double*>( tmp );
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -807,7 +805,6 @@ duint32 dwgBuffer::getEnColor(DRW::Version v) {
|
||||||
if (v < DRW::AC1018) //2000-
|
if (v < DRW::AC1018) //2000-
|
||||||
return getSBitShort();
|
return getSBitShort();
|
||||||
duint32 rgb = 0;
|
duint32 rgb = 0;
|
||||||
duint32 cb = 0;
|
|
||||||
duint16 idx = getBitShort();
|
duint16 idx = getBitShort();
|
||||||
DRW_DBG("idx reads COLOR: "); DRW_DBGH(idx);
|
DRW_DBG("idx reads COLOR: "); DRW_DBGH(idx);
|
||||||
duint16 flags = static_cast<duint16>(idx>>8);
|
duint16 flags = static_cast<duint16>(idx>>8);
|
||||||
|
@ -819,7 +816,7 @@ duint32 dwgBuffer::getEnColor(DRW::Version v) {
|
||||||
// DRW_DBG("\nRGB COLOR: "); DRW_DBGH(rgb);
|
// DRW_DBG("\nRGB COLOR: "); DRW_DBGH(rgb);
|
||||||
// }
|
// }
|
||||||
if (flags & 0x20) {
|
if (flags & 0x20) {
|
||||||
cb = getBitLong();
|
duint32 cb = getBitLong();
|
||||||
DRW_DBG("\nTransparency COLOR: "); DRW_DBGH(cb);
|
DRW_DBG("\nTransparency COLOR: "); DRW_DBGH(cb);
|
||||||
}
|
}
|
||||||
if (flags & 0x40)
|
if (flags & 0x40)
|
||||||
|
@ -849,14 +846,13 @@ duint16 dwgBuffer::getBERawShort16(){
|
||||||
|
|
||||||
/* reads "size" bytes and stores in "buf" return false if fail */
|
/* reads "size" bytes and stores in "buf" return false if fail */
|
||||||
bool dwgBuffer::getBytes(unsigned char *buf, int size){
|
bool dwgBuffer::getBytes(unsigned char *buf, int size){
|
||||||
duint8 tmp;
|
|
||||||
filestr->read (buf,size);
|
filestr->read (buf,size);
|
||||||
if (!filestr->good())
|
if (!filestr->good())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (bitPos != 0){
|
if (bitPos != 0){
|
||||||
for (int i=0; i<size;i++){
|
for (int i=0; i<size;i++){
|
||||||
tmp = buf[i];
|
duint8 tmp = buf[i];
|
||||||
buf[i] = static_cast<unsigned char>((currByte << bitPos) | (tmp >> (8 - bitPos)));
|
buf[i] = static_cast<unsigned char>((currByte << bitPos) | (tmp >> (8 - bitPos)));
|
||||||
currByte = tmp;
|
currByte = tmp;
|
||||||
}
|
}
|
||||||
|
@ -875,10 +871,8 @@ duint16 dwgBuffer::crc8(duint16 dx, dint32 start, dint32 end){
|
||||||
if (!filestr->good())
|
if (!filestr->good())
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
duint8 al;
|
|
||||||
|
|
||||||
while (n-- > 0) {
|
while (n-- > 0) {
|
||||||
al = static_cast<duint8>((*p) ^ (static_cast<duint8>(dx & 0xFF)));
|
duint8 al = static_cast<duint8>((*p) ^ (static_cast<duint8>(dx & 0xFF)));
|
||||||
dx = (dx>>8) & 0xFF;
|
dx = (dx>>8) & 0xFF;
|
||||||
dx = static_cast<duint16>(dx ^ crctable[al & 0xFF]);
|
dx = static_cast<duint16>(dx ^ crctable[al & 0xFF]);
|
||||||
p++;
|
p++;
|
||||||
|
|
|
@ -25,7 +25,7 @@ class dwgBasicStream{
|
||||||
protected:
|
protected:
|
||||||
dwgBasicStream(){}
|
dwgBasicStream(){}
|
||||||
public:
|
public:
|
||||||
virtual ~dwgBasicStream(){}
|
virtual ~dwgBasicStream() = default;
|
||||||
virtual bool read(duint8* s, duint64 n) = 0;
|
virtual bool read(duint8* s, duint64 n) = 0;
|
||||||
virtual duint64 size() = 0;
|
virtual duint64 size() = 0;
|
||||||
virtual duint64 getPos() = 0;
|
virtual duint64 getPos() = 0;
|
||||||
|
@ -36,7 +36,7 @@ public:
|
||||||
|
|
||||||
class dwgFileStream: public dwgBasicStream{
|
class dwgFileStream: public dwgBasicStream{
|
||||||
public:
|
public:
|
||||||
dwgFileStream(std::istream *s)
|
explicit dwgFileStream(std::istream *s)
|
||||||
: stream(nullptr),
|
: stream(nullptr),
|
||||||
sz(0)
|
sz(0)
|
||||||
{
|
{
|
||||||
|
@ -84,8 +84,8 @@ private:
|
||||||
|
|
||||||
class dwgBuffer {
|
class dwgBuffer {
|
||||||
public:
|
public:
|
||||||
dwgBuffer(std::istream *stream, DRW_TextCodec *decoder = NULL);
|
dwgBuffer(std::istream *stream, DRW_TextCodec *dc = nullptr);
|
||||||
dwgBuffer(duint8 *buf, int size, DRW_TextCodec *decoder= NULL);
|
dwgBuffer(duint8 *buf, int size, DRW_TextCodec *dc = nullptr);
|
||||||
dwgBuffer( const dwgBuffer& org );
|
dwgBuffer( const dwgBuffer& org );
|
||||||
dwgBuffer& operator=( const dwgBuffer& org );
|
dwgBuffer& operator=( const dwgBuffer& org );
|
||||||
~dwgBuffer();
|
~dwgBuffer();
|
||||||
|
@ -94,7 +94,7 @@ public:
|
||||||
duint64 getPosition();
|
duint64 getPosition();
|
||||||
void resetPosition(){setPosition(0); setBitPos(0);}
|
void resetPosition(){setPosition(0); setBitPos(0);}
|
||||||
void setBitPos(duint8 pos);
|
void setBitPos(duint8 pos);
|
||||||
duint8 getBitPos(){return bitPos;}
|
duint8 getBitPos() const {return bitPos;}
|
||||||
bool moveBitPos(dint32 size);
|
bool moveBitPos(dint32 size);
|
||||||
|
|
||||||
duint8 getBit(); //B
|
duint8 getBit(); //B
|
||||||
|
|
|
@ -694,13 +694,13 @@ bool dwgReader::readDwgTables(DRW_Header& hdr, dwgBuffer *dbuf) {
|
||||||
oc = mit->second;
|
oc = mit->second;
|
||||||
ObjectMap.erase(mit);
|
ObjectMap.erase(mit);
|
||||||
DRW_DBG("vpEntHeader Control Obj Handle= "); DRW_DBGH(oc.handle); DRW_DBG(" "); DRW_DBG(oc.loc); DRW_DBG("\n");
|
DRW_DBG("vpEntHeader Control Obj Handle= "); DRW_DBGH(oc.handle); DRW_DBG(" "); DRW_DBG(oc.loc); DRW_DBG("\n");
|
||||||
DRW_ObjControl vpEntHeaderCtrl;
|
// DRW_ObjControl vpEntHeaderCtrl;
|
||||||
dbuf->setPosition(oc.loc);
|
dbuf->setPosition(oc.loc);
|
||||||
int size = dbuf->getModularShort();
|
int size = dbuf->getModularShort();
|
||||||
if (version > DRW::AC1021) //2010+
|
// if (version > DRW::AC1021) //2010+
|
||||||
bs = dbuf->getUModularChar();
|
// bs = dbuf->getUModularChar();
|
||||||
else
|
// else
|
||||||
bs = 0;
|
// bs = 0;
|
||||||
tmpByteStr = new duint8[size];
|
tmpByteStr = new duint8[size];
|
||||||
dbuf->getBytes(tmpByteStr, size);
|
dbuf->getBytes(tmpByteStr, size);
|
||||||
dwgBuffer buff(tmpByteStr, size, &decoder);
|
dwgBuffer buff(tmpByteStr, size, &decoder);
|
||||||
|
@ -934,13 +934,12 @@ bool dwgReader::readPlineVertex(DRW_Polyline& pline, dwgBuffer *dbuf){
|
||||||
|
|
||||||
bool dwgReader::readDwgEntities(DRW_Interface& intfa, dwgBuffer *dbuf){
|
bool dwgReader::readDwgEntities(DRW_Interface& intfa, dwgBuffer *dbuf){
|
||||||
bool ret = true;
|
bool ret = true;
|
||||||
bool ret2 = true;
|
|
||||||
|
|
||||||
DRW_DBG("\nobject map total size= "); DRW_DBG(ObjectMap.size());
|
DRW_DBG("\nobject map total size= "); DRW_DBG(ObjectMap.size());
|
||||||
std::map<duint32, objHandle>::iterator itB=ObjectMap.begin();
|
std::map<duint32, objHandle>::iterator itB=ObjectMap.begin();
|
||||||
std::map<duint32, objHandle>::iterator itE=ObjectMap.end();
|
std::map<duint32, objHandle>::iterator itE=ObjectMap.end();
|
||||||
while (itB != itE){
|
while (itB != itE){
|
||||||
ret2 = readDwgEntity(dbuf, itB->second, intfa);
|
bool ret2 = readDwgEntity(dbuf, itB->second, intfa);
|
||||||
ObjectMap.erase(itB);
|
ObjectMap.erase(itB);
|
||||||
itB=ObjectMap.begin();
|
itB=ObjectMap.begin();
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -1170,21 +1169,20 @@ bool dwgReader::readDwgEntity(dwgBuffer *dbuf, objHandle& obj, DRW_Interface& in
|
||||||
|
|
||||||
bool dwgReader::readDwgObjects(DRW_Interface& intfa, dwgBuffer *dbuf){
|
bool dwgReader::readDwgObjects(DRW_Interface& intfa, dwgBuffer *dbuf){
|
||||||
bool ret = true;
|
bool ret = true;
|
||||||
bool ret2 = true;
|
|
||||||
|
|
||||||
duint32 i=0;
|
|
||||||
DRW_DBG("\nentities map total size= "); DRW_DBG(ObjectMap.size());
|
DRW_DBG("\nentities map total size= "); DRW_DBG(ObjectMap.size());
|
||||||
DRW_DBG("\nobjects map total size= "); DRW_DBG(objObjectMap.size());
|
DRW_DBG("\nobjects map total size= "); DRW_DBG(objObjectMap.size());
|
||||||
std::map<duint32, objHandle>::iterator itB=objObjectMap.begin();
|
std::map<duint32, objHandle>::iterator itB=objObjectMap.begin();
|
||||||
std::map<duint32, objHandle>::iterator itE=objObjectMap.end();
|
std::map<duint32, objHandle>::iterator itE=objObjectMap.end();
|
||||||
while (itB != itE){
|
while (itB != itE){
|
||||||
ret2 = readDwgObject(dbuf, itB->second, intfa);
|
bool ret2 = readDwgObject(dbuf, itB->second, intfa);
|
||||||
objObjectMap.erase(itB);
|
objObjectMap.erase(itB);
|
||||||
itB=objObjectMap.begin();
|
itB=objObjectMap.begin();
|
||||||
if (ret)
|
if (ret)
|
||||||
ret = ret2;
|
ret = ret2;
|
||||||
}
|
}
|
||||||
if (DRW_DBGGL == DRW_dbg::DEBUG) {
|
if (DRW_DBGGL == DRW_dbg::DEBUG) {
|
||||||
|
duint32 i=0;
|
||||||
for (std::map<duint32, objHandle>::iterator it=remainingMap.begin(); it != remainingMap.end(); ++it){
|
for (std::map<duint32, objHandle>::iterator it=remainingMap.begin(); it != remainingMap.end(); ++it){
|
||||||
DRW_DBG("\nnum.# "); DRW_DBG(i++); DRW_DBG(" Remaining object Handle, loc, type= "); DRW_DBG(it->first);
|
DRW_DBG("\nnum.# "); DRW_DBG(i++); DRW_DBG(" Remaining object Handle, loc, type= "); DRW_DBG(it->first);
|
||||||
DRW_DBG(" "); DRW_DBG(it->second.loc); DRW_DBG(" "); DRW_DBG(it->second.type);
|
DRW_DBG(" "); DRW_DBG(it->second.loc); DRW_DBG(" "); DRW_DBG(it->second.type);
|
||||||
|
|
|
@ -140,6 +140,7 @@ public:
|
||||||
: hadlesList()
|
: hadlesList()
|
||||||
{ reset();}
|
{ reset();}
|
||||||
|
|
||||||
|
// cppcheck-suppress functionStatic
|
||||||
void reset(){}
|
void reset(){}
|
||||||
bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
||||||
std::list<duint32>hadlesList;
|
std::list<duint32>hadlesList;
|
||||||
|
@ -195,11 +196,11 @@ protected:
|
||||||
std::string findTableName(DRW::TTYPE table, dint32 handle);
|
std::string findTableName(DRW::TTYPE table, dint32 handle);
|
||||||
|
|
||||||
void setCodePage(std::string *c){decoder.setCodePage(c, false);}
|
void setCodePage(std::string *c){decoder.setCodePage(c, false);}
|
||||||
std::string getCodePage(){ return decoder.getCodePage();}
|
std::string getCodePage() const { return decoder.getCodePage();}
|
||||||
bool readDwgHeader(DRW_Header& hdr, dwgBuffer *buf, dwgBuffer *hBuf);
|
bool readDwgHeader(DRW_Header& hdr, dwgBuffer *buf, dwgBuffer *hBuf);
|
||||||
bool readDwgHandles(dwgBuffer *dbuf, duint32 offset, duint32 size);
|
bool readDwgHandles(dwgBuffer *dbuf, duint32 offset, duint32 size);
|
||||||
bool readDwgTables(DRW_Header& hdr, dwgBuffer *dbuf);
|
bool readDwgTables(DRW_Header& hdr, dwgBuffer *dbuf);
|
||||||
bool checkSentinel(dwgBuffer *buf, enum secEnum::DWGSection, bool start);
|
static bool checkSentinel(dwgBuffer *buf, enum secEnum::DWGSection, bool start);
|
||||||
|
|
||||||
bool readDwgBlocks(DRW_Interface& intfa, dwgBuffer *dbuf);
|
bool readDwgBlocks(DRW_Interface& intfa, dwgBuffer *dbuf);
|
||||||
bool readDwgEntities(DRW_Interface& intfa, dwgBuffer *dbuf);
|
bool readDwgEntities(DRW_Interface& intfa, dwgBuffer *dbuf);
|
||||||
|
|
|
@ -179,8 +179,7 @@ bool dwgReader15::readDwgHandles() {
|
||||||
if (si.Id<0)//not found, ends
|
if (si.Id<0)//not found, ends
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
bool ret = dwgReader::readDwgHandles(fileBuf, static_cast<duint32>(si.address), static_cast<duint32>(si.size));
|
return dwgReader::readDwgHandles(fileBuf, static_cast<duint32>(si.address), static_cast<duint32>(si.size));
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*********** objects ************************/
|
/*********** objects ************************/
|
||||||
|
@ -189,9 +188,7 @@ bool dwgReader15::readDwgHandles() {
|
||||||
* (using their object file offsets)
|
* (using their object file offsets)
|
||||||
*/
|
*/
|
||||||
bool dwgReader15::readDwgTables(DRW_Header& hdr) {
|
bool dwgReader15::readDwgTables(DRW_Header& hdr) {
|
||||||
bool ret = dwgReader::readDwgTables(hdr, fileBuf);
|
return dwgReader::readDwgTables(hdr, fileBuf);
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -199,7 +196,5 @@ bool dwgReader15::readDwgTables(DRW_Header& hdr) {
|
||||||
* (using their object file offsets)
|
* (using their object file offsets)
|
||||||
*/
|
*/
|
||||||
bool dwgReader15::readDwgBlocks(DRW_Interface& intfa) {
|
bool dwgReader15::readDwgBlocks(DRW_Interface& intfa) {
|
||||||
bool ret = true;
|
return dwgReader::readDwgBlocks(intfa, fileBuf);
|
||||||
ret = dwgReader::readDwgBlocks(intfa, fileBuf);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,14 +31,10 @@ public:
|
||||||
bool readDwgTables(DRW_Header& hdr);
|
bool readDwgTables(DRW_Header& hdr);
|
||||||
bool readDwgBlocks(DRW_Interface& intfa);
|
bool readDwgBlocks(DRW_Interface& intfa);
|
||||||
bool readDwgEntities(DRW_Interface& intfa){
|
bool readDwgEntities(DRW_Interface& intfa){
|
||||||
bool ret = true;
|
return dwgReader::readDwgEntities(intfa, fileBuf);
|
||||||
ret = dwgReader::readDwgEntities(intfa, fileBuf);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
bool readDwgObjects(DRW_Interface& intfa){
|
bool readDwgObjects(DRW_Interface& intfa){
|
||||||
bool ret = true;
|
return dwgReader::readDwgObjects(intfa, fileBuf);
|
||||||
ret = dwgReader::readDwgObjects(intfa, fileBuf);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
// bool readDwgEntity(objHandle& obj, DRW_Interface& intfa);
|
// bool readDwgEntity(objHandle& obj, DRW_Interface& intfa);
|
||||||
};
|
};
|
||||||
|
|
|
@ -149,7 +149,10 @@ bool dwgReader18::parseDataPage(dwgSectionInfo si/*, duint8 *dData*/){
|
||||||
//get compresed data
|
//get compresed data
|
||||||
duint8 *cData = new duint8[pi.cSize];
|
duint8 *cData = new duint8[pi.cSize];
|
||||||
if (!fileBuf->setPosition(pi.address+32))
|
if (!fileBuf->setPosition(pi.address+32))
|
||||||
|
{
|
||||||
|
delete[]cData;
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
fileBuf->getBytes(cData, static_cast<int>(pi.cSize));
|
fileBuf->getBytes(cData, static_cast<int>(pi.cSize));
|
||||||
|
|
||||||
//calculate checksum
|
//calculate checksum
|
||||||
|
@ -269,8 +272,8 @@ bool dwgReader18::readFileHeader() {
|
||||||
DRW_DBG("\nGap array size= "); DRW_DBGH(buff.getRawLong32());
|
DRW_DBG("\nGap array size= "); DRW_DBGH(buff.getRawLong32());
|
||||||
//TODO: verify CRC
|
//TODO: verify CRC
|
||||||
DRW_DBG("\nCRC32= "); DRW_DBGH(buff.getRawLong32());
|
DRW_DBG("\nCRC32= "); DRW_DBGH(buff.getRawLong32());
|
||||||
for (duint8 i = 0x68; i < 0x6c; ++i)
|
// for (duint8 i = 0x68; i < 0x6c; ++i)
|
||||||
byteStr[i] = '\0';
|
// byteStr[i] = '\0';
|
||||||
// byteStr[i] = '\0';
|
// byteStr[i] = '\0';
|
||||||
duint32 crcCalc = buff.crc32(0x00,0,0x6C);
|
duint32 crcCalc = buff.crc32(0x00,0,0x6C);
|
||||||
DRW_DBG("\nCRC32 calculated= "); DRW_DBGH(crcCalc);
|
DRW_DBG("\nCRC32 calculated= "); DRW_DBGH(crcCalc);
|
||||||
|
|
|
@ -61,23 +61,17 @@ public:
|
||||||
bool readDwgHandles();
|
bool readDwgHandles();
|
||||||
bool readDwgTables(DRW_Header& hdr);
|
bool readDwgTables(DRW_Header& hdr);
|
||||||
bool readDwgBlocks(DRW_Interface& intfa){
|
bool readDwgBlocks(DRW_Interface& intfa){
|
||||||
bool ret = true;
|
|
||||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||||
ret = dwgReader::readDwgBlocks(intfa, &dataBuf);
|
return dwgReader::readDwgBlocks(intfa, &dataBuf);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool readDwgEntities(DRW_Interface& intfa){
|
virtual bool readDwgEntities(DRW_Interface& intfa){
|
||||||
bool ret = true;
|
|
||||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||||
ret = dwgReader::readDwgEntities(intfa, &dataBuf);
|
return dwgReader::readDwgEntities(intfa, &dataBuf);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
virtual bool readDwgObjects(DRW_Interface& intfa){
|
virtual bool readDwgObjects(DRW_Interface& intfa){
|
||||||
bool ret = true;
|
|
||||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||||
ret = dwgReader::readDwgObjects(intfa, &dataBuf);
|
return dwgReader::readDwgObjects(intfa, &dataBuf);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// bool readDwgEntity(objHandle& obj, DRW_Interface& intfa){
|
// bool readDwgEntity(objHandle& obj, DRW_Interface& intfa){
|
||||||
|
@ -91,11 +85,12 @@ protected:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(dwgReader18)
|
Q_DISABLE_COPY(dwgReader18)
|
||||||
void genMagicNumber();
|
// cppcheck-suppress unusedPrivateFunction
|
||||||
|
static void genMagicNumber();
|
||||||
// dwgBuffer* bufObj;
|
// dwgBuffer* bufObj;
|
||||||
void parseSysPage(duint8 *decompSec, duint32 decompSize); //called: Section page map: 0x41630e3b
|
void parseSysPage(duint8 *decompSec, duint32 decompSize); //called: Section page map: 0x41630e3b
|
||||||
bool parseDataPage(dwgSectionInfo si/*, duint8 *dData*/); //called ???: Section map: 0x4163003b
|
bool parseDataPage(dwgSectionInfo si/*, duint8 *dData*/); //called ???: Section map: 0x4163003b
|
||||||
duint32 checksum(duint32 seed, duint8* data, duint32 sz);
|
static duint32 checksum(duint32 seed, duint8* data, duint32 sz);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
duint32 securityFlags;
|
duint32 securityFlags;
|
||||||
|
|
|
@ -481,10 +481,6 @@ bool dwgReader21::readDwgTables(DRW_Header& hdr) {
|
||||||
|
|
||||||
|
|
||||||
bool dwgReader21::readDwgBlocks(DRW_Interface& intfa){
|
bool dwgReader21::readDwgBlocks(DRW_Interface& intfa){
|
||||||
bool ret = true;
|
|
||||||
dwgBuffer dataBuf(objData, static_cast<int>(dataSize), &decoder);
|
dwgBuffer dataBuf(objData, static_cast<int>(dataSize), &decoder);
|
||||||
ret = dwgReader::readDwgBlocks(intfa, &dataBuf);
|
return dwgReader::readDwgBlocks(intfa, &dataBuf);
|
||||||
return ret;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,16 +40,12 @@ public:
|
||||||
bool readDwgTables(DRW_Header& hdr);
|
bool readDwgTables(DRW_Header& hdr);
|
||||||
bool readDwgBlocks(DRW_Interface& intfa);
|
bool readDwgBlocks(DRW_Interface& intfa);
|
||||||
virtual bool readDwgEntities(DRW_Interface& intfa){
|
virtual bool readDwgEntities(DRW_Interface& intfa){
|
||||||
bool ret = true;
|
|
||||||
dwgBuffer dataBuf(objData, static_cast<int>(dataSize), &decoder);
|
dwgBuffer dataBuf(objData, static_cast<int>(dataSize), &decoder);
|
||||||
ret = dwgReader::readDwgEntities(intfa, &dataBuf);
|
return dwgReader::readDwgEntities(intfa, &dataBuf);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
virtual bool readDwgObjects(DRW_Interface& intfa){
|
virtual bool readDwgObjects(DRW_Interface& intfa){
|
||||||
bool ret = true;
|
|
||||||
dwgBuffer dataBuf(objData, static_cast<int>(dataSize), &decoder);
|
dwgBuffer dataBuf(objData, static_cast<int>(dataSize), &decoder);
|
||||||
ret = dwgReader::readDwgObjects(intfa, &dataBuf);
|
return dwgReader::readDwgObjects(intfa, &dataBuf);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
//bool readDwgEntity(objHandle& obj, DRW_Interface& intfa){
|
//bool readDwgEntity(objHandle& obj, DRW_Interface& intfa){
|
||||||
// return false;
|
// return false;
|
||||||
|
|
|
@ -29,22 +29,16 @@ public:
|
||||||
// bool readDwgHandles(){return false;}
|
// bool readDwgHandles(){return false;}
|
||||||
// bool readDwgTables(){return false;}
|
// bool readDwgTables(){return false;}
|
||||||
bool readDwgBlocks(DRW_Interface& intfa){
|
bool readDwgBlocks(DRW_Interface& intfa){
|
||||||
bool ret = true;
|
|
||||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||||
ret = dwgReader::readDwgBlocks(intfa, &dataBuf);
|
return dwgReader::readDwgBlocks(intfa, &dataBuf);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
virtual bool readDwgEntities(DRW_Interface& intfa){
|
virtual bool readDwgEntities(DRW_Interface& intfa){
|
||||||
bool ret = true;
|
|
||||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||||
ret = dwgReader::readDwgEntities(intfa, &dataBuf);
|
return dwgReader::readDwgEntities(intfa, &dataBuf);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
virtual bool readDwgObjects(DRW_Interface& intfa){
|
virtual bool readDwgObjects(DRW_Interface& intfa){
|
||||||
bool ret = true;
|
|
||||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||||
ret = dwgReader::readDwgObjects(intfa, &dataBuf);
|
return dwgReader::readDwgObjects(intfa, &dataBuf);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// bool readDwgEntity(objHandle& obj, DRW_Interface& intfa){
|
// bool readDwgEntity(objHandle& obj, DRW_Interface& intfa){
|
||||||
|
|
|
@ -29,22 +29,16 @@ public:
|
||||||
// bool readDwgHandles(){return false;}
|
// bool readDwgHandles(){return false;}
|
||||||
// bool readDwgTables(){return false;}
|
// bool readDwgTables(){return false;}
|
||||||
bool readDwgBlocks(DRW_Interface& intfa){
|
bool readDwgBlocks(DRW_Interface& intfa){
|
||||||
bool ret = true;
|
|
||||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||||
ret = dwgReader::readDwgBlocks(intfa, &dataBuf);
|
return dwgReader::readDwgBlocks(intfa, &dataBuf);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
virtual bool readDwgEntities(DRW_Interface& intfa){
|
virtual bool readDwgEntities(DRW_Interface& intfa){
|
||||||
bool ret = true;
|
|
||||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||||
ret = dwgReader::readDwgEntities(intfa, &dataBuf);
|
return dwgReader::readDwgEntities(intfa, &dataBuf);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
virtual bool readDwgObjects(DRW_Interface& intfa){
|
virtual bool readDwgObjects(DRW_Interface& intfa){
|
||||||
bool ret = true;
|
|
||||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||||
ret = dwgReader::readDwgObjects(intfa, &dataBuf);
|
return dwgReader::readDwgObjects(intfa, &dataBuf);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
// bool readDwgEntity(objHandle& obj, DRW_Interface& intfa){
|
// bool readDwgEntity(objHandle& obj, DRW_Interface& intfa){
|
||||||
// DRW_UNUSED(obj);
|
// DRW_UNUSED(obj);
|
||||||
|
|
|
@ -40,11 +40,10 @@ std::string toHexStr(int n){
|
||||||
* @param blk number of codewords ( 1 cw == 255 bytes)
|
* @param blk number of codewords ( 1 cw == 255 bytes)
|
||||||
*/
|
*/
|
||||||
void dwgRSCodec::decode239I(unsigned char *in, unsigned char *out, duint32 blk){
|
void dwgRSCodec::decode239I(unsigned char *in, unsigned char *out, duint32 blk){
|
||||||
int k=0;
|
|
||||||
unsigned char data[255];
|
unsigned char data[255];
|
||||||
RScodec rsc(0x96, 8, 8); //(255, 239)
|
RScodec rsc(0x96, 8, 8); //(255, 239)
|
||||||
for (duint32 i=0; i<blk; i++){
|
for (duint32 i=0; i<blk; i++){
|
||||||
k = i;
|
int k = i;
|
||||||
for (int j=0; j<255; j++) {
|
for (int j=0; j<255; j++) {
|
||||||
data[j] = in[k];
|
data[j] = in[k];
|
||||||
k +=blk;
|
k +=blk;
|
||||||
|
@ -66,11 +65,10 @@ void dwgRSCodec::decode239I(unsigned char *in, unsigned char *out, duint32 blk){
|
||||||
* @param blk number of codewords ( 1 cw == 255 bytes)
|
* @param blk number of codewords ( 1 cw == 255 bytes)
|
||||||
*/
|
*/
|
||||||
void dwgRSCodec::decode251I(unsigned char *in, unsigned char *out, duint32 blk){
|
void dwgRSCodec::decode251I(unsigned char *in, unsigned char *out, duint32 blk){
|
||||||
int k=0;
|
|
||||||
unsigned char data[255];
|
unsigned char data[255];
|
||||||
RScodec rsc(0xB8, 8, 2); //(255, 251)
|
RScodec rsc(0xB8, 8, 2); //(255, 251)
|
||||||
for (duint32 i=0; i<blk; i++){
|
for (duint32 i=0; i<blk; i++){
|
||||||
k = i;
|
int k = i;
|
||||||
for (int j=0; j<255; j++) {
|
for (int j=0; j<255; j++) {
|
||||||
data[j] = in[k];
|
data[j] = in[k];
|
||||||
k +=blk;
|
k +=blk;
|
||||||
|
@ -649,7 +647,7 @@ void dwgCompressor::copyCompBytes21(duint8 *cbuf, duint8 *dbuf, duint32 l, duint
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
secEnum::DWGSection secEnum::getEnum(std::string nameSec){
|
secEnum::DWGSection secEnum::getEnum(const std::string &nameSec){
|
||||||
//TODO: complete it
|
//TODO: complete it
|
||||||
if (nameSec=="AcDb:Header"){
|
if (nameSec=="AcDb:Header"){
|
||||||
return HEADER;
|
return HEADER;
|
||||||
|
|
|
@ -93,7 +93,7 @@ public:
|
||||||
secEnum(){}
|
secEnum(){}
|
||||||
~secEnum(){}
|
~secEnum(){}
|
||||||
|
|
||||||
static DWGSection getEnum(std::string nameSec);
|
static DWGSection getEnum(const std::__cxx11::string &nameSec);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // DWGUTIL_H
|
#endif // DWGUTIL_H
|
||||||
|
|
|
@ -90,6 +90,7 @@ bool dxfReader::readRec(int *codeData) {
|
||||||
int dxfReader::getHandleString(){
|
int dxfReader::getHandleString(){
|
||||||
int res;
|
int res;
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
|
// cppcheck-suppress invalidScanfArgType_int
|
||||||
int Succeeded = sscanf ( strData.c_str(), "%x", &res );
|
int Succeeded = sscanf ( strData.c_str(), "%x", &res );
|
||||||
if ( !Succeeded || Succeeded == EOF )
|
if ( !Succeeded || Succeeded == EOF )
|
||||||
res = 0;
|
res = 0;
|
||||||
|
@ -169,6 +170,7 @@ bool dxfReaderBinary::readDouble() {
|
||||||
double *result;
|
double *result;
|
||||||
char buffer[8];
|
char buffer[8];
|
||||||
filestr->read(buffer,8);
|
filestr->read(buffer,8);
|
||||||
|
// cppcheck-suppress invalidPointerCast
|
||||||
result = reinterpret_cast<double *>(buffer);
|
result = reinterpret_cast<double *>(buffer);
|
||||||
doubleData = *result;
|
doubleData = *result;
|
||||||
DRW_DBG(doubleData); DRW_DBG("\n");
|
DRW_DBG(doubleData); DRW_DBG("\n");
|
||||||
|
|
|
@ -27,7 +27,7 @@ public:
|
||||||
};
|
};
|
||||||
enum TYPE type;
|
enum TYPE type;
|
||||||
public:
|
public:
|
||||||
dxfReader(std::istream *stream)
|
explicit dxfReader(std::istream *stream)
|
||||||
: type(INVALID),
|
: type(INVALID),
|
||||||
filestr(stream),
|
filestr(stream),
|
||||||
strData(),
|
strData(),
|
||||||
|
@ -39,20 +39,20 @@ public:
|
||||||
{}
|
{}
|
||||||
|
|
||||||
virtual ~dxfReader() = default;
|
virtual ~dxfReader() = default;
|
||||||
bool readRec(int *code);
|
bool readRec(int *codeData);
|
||||||
|
|
||||||
std::string getString() {return strData;}
|
std::string getString() const {return strData;}
|
||||||
int getHandleString();//Convert hex string to int
|
int getHandleString();//Convert hex string to int
|
||||||
std::string toUtf8String(std::string t) {return decoder.toUtf8(t);}
|
std::string toUtf8String(std::string t) {return decoder.toUtf8(t);}
|
||||||
std::string getUtf8String() {return decoder.toUtf8(strData);}
|
std::string getUtf8String() {return decoder.toUtf8(strData);}
|
||||||
double getDouble() {return doubleData;}
|
double getDouble() const {return doubleData;}
|
||||||
int getInt32() {return intData;}
|
int getInt32() const {return intData;}
|
||||||
unsigned long long int getInt64() {return int64;}
|
unsigned long long int getInt64() const {return int64;}
|
||||||
bool getBool() { return (intData==0) ? false : true;}
|
bool getBool() const { return (intData==0) ? false : true;}
|
||||||
int getVersion(){return decoder.getVersion();}
|
int getVersion() const {return decoder.getVersion();}
|
||||||
void setVersion(std::string *v, bool dxfFormat){decoder.setVersion(v, dxfFormat);}
|
void setVersion(std::string *v, bool dxfFormat){decoder.setVersion(v, dxfFormat);}
|
||||||
void setCodePage(std::string *c){decoder.setCodePage(c, true);}
|
void setCodePage(std::string *c){decoder.setCodePage(c, true);}
|
||||||
std::string getCodePage(){ return decoder.getCodePage();}
|
std::string getCodePage() const { return decoder.getCodePage();}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool readCode(int *code) = 0; //return true if sucesful (not EOF)
|
virtual bool readCode(int *code) = 0; //return true if sucesful (not EOF)
|
||||||
|
@ -78,8 +78,11 @@ private:
|
||||||
|
|
||||||
class dxfReaderBinary : public dxfReader {
|
class dxfReaderBinary : public dxfReader {
|
||||||
public:
|
public:
|
||||||
dxfReaderBinary(std::istream *stream):dxfReader(stream){skip = false; }
|
explicit dxfReaderBinary(std::istream *stream)
|
||||||
virtual ~dxfReaderBinary() {}
|
: dxfReader(stream)
|
||||||
|
{skip = false; }
|
||||||
|
|
||||||
|
virtual ~dxfReaderBinary() = default;
|
||||||
virtual bool readCode(int *code);
|
virtual bool readCode(int *code);
|
||||||
virtual bool readString(std::string *text);
|
virtual bool readString(std::string *text);
|
||||||
virtual bool readString();
|
virtual bool readString();
|
||||||
|
@ -92,8 +95,11 @@ public:
|
||||||
|
|
||||||
class dxfReaderAscii : public dxfReader {
|
class dxfReaderAscii : public dxfReader {
|
||||||
public:
|
public:
|
||||||
dxfReaderAscii(std::istream *stream):dxfReader(stream){skip = true; }
|
explicit dxfReaderAscii(std::istream *stream)
|
||||||
virtual ~dxfReaderAscii(){}
|
: dxfReader(stream)
|
||||||
|
{skip = true; }
|
||||||
|
|
||||||
|
virtual ~dxfReaderAscii() = default;
|
||||||
virtual bool readCode(int *code);
|
virtual bool readCode(int *code);
|
||||||
virtual bool readString(std::string *text);
|
virtual bool readString(std::string *text);
|
||||||
virtual bool readString();
|
virtual bool readString();
|
||||||
|
|
|
@ -91,12 +91,12 @@
|
||||||
return (filestr->good());
|
return (filestr->good());
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
bool dxfWriter::writeUtf8String(int code, std::string text) {
|
bool dxfWriter::writeUtf8String(int code, const std::string &text) {
|
||||||
std::string t = encoder.fromUtf8(text);
|
std::string t = encoder.fromUtf8(text);
|
||||||
return writeString(code, t);
|
return writeString(code, t);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool dxfWriter::writeUtf8Caps(int code, std::string text) {
|
bool dxfWriter::writeUtf8Caps(int code, const std::string &text) {
|
||||||
std::string strname = text;
|
std::string strname = text;
|
||||||
std::transform(strname.begin(), strname.end(), strname.begin(),::toupper);
|
std::transform(strname.begin(), strname.end(), strname.begin(),::toupper);
|
||||||
std::string t = encoder.fromUtf8(strname);
|
std::string t = encoder.fromUtf8(strname);
|
||||||
|
@ -194,6 +194,7 @@ bool dxfWriterBinary::writeDouble(int code, double data) {
|
||||||
filestr->write(bufcode, 2);
|
filestr->write(bufcode, 2);
|
||||||
|
|
||||||
unsigned char *val;
|
unsigned char *val;
|
||||||
|
// cppcheck-suppress invalidPointerCast
|
||||||
val = reinterpret_cast<unsigned char *>(&data);
|
val = reinterpret_cast<unsigned char *>(&data);
|
||||||
for (int i=0; i<8; i++) {
|
for (int i=0; i<8; i++) {
|
||||||
buffer[i] =val[i];
|
buffer[i] =val[i];
|
||||||
|
|
|
@ -17,15 +17,15 @@
|
||||||
|
|
||||||
class dxfWriter {
|
class dxfWriter {
|
||||||
public:
|
public:
|
||||||
dxfWriter(std::ofstream *stream)
|
explicit dxfWriter(std::ofstream *stream)
|
||||||
: filestr(stream),
|
: filestr(stream),
|
||||||
encoder()
|
encoder()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
virtual ~dxfWriter() = default;
|
virtual ~dxfWriter() = default;
|
||||||
virtual bool writeString(int code, std::string text) = 0;
|
virtual bool writeString(int code, std::string text) = 0;
|
||||||
bool writeUtf8String(int code, std::string text);
|
bool writeUtf8String(int code, const std::__cxx11::string &text);
|
||||||
bool writeUtf8Caps(int code, std::string text);
|
bool writeUtf8Caps(int code, const std::__cxx11::string &text);
|
||||||
std::string fromUtf8String(std::string t) {return encoder.fromUtf8(t);}
|
std::string fromUtf8String(std::string t) {return encoder.fromUtf8(t);}
|
||||||
virtual bool writeInt16(int code, int data) = 0;
|
virtual bool writeInt16(int code, int data) = 0;
|
||||||
virtual bool writeInt32(int code, int data) = 0;
|
virtual bool writeInt32(int code, int data) = 0;
|
||||||
|
@ -34,7 +34,7 @@ public:
|
||||||
virtual bool writeBool(int code, bool data) = 0;
|
virtual bool writeBool(int code, bool data) = 0;
|
||||||
void setVersion(std::string *v, bool dxfFormat){encoder.setVersion(v, dxfFormat);}
|
void setVersion(std::string *v, bool dxfFormat){encoder.setVersion(v, dxfFormat);}
|
||||||
void setCodePage(std::string *c){encoder.setCodePage(c, true);}
|
void setCodePage(std::string *c){encoder.setCodePage(c, true);}
|
||||||
std::string getCodePage(){return encoder.getCodePage();}
|
std::string getCodePage() const {return encoder.getCodePage();}
|
||||||
protected:
|
protected:
|
||||||
std::ofstream *filestr;
|
std::ofstream *filestr;
|
||||||
private:
|
private:
|
||||||
|
@ -44,8 +44,10 @@ private:
|
||||||
|
|
||||||
class dxfWriterBinary : public dxfWriter {
|
class dxfWriterBinary : public dxfWriter {
|
||||||
public:
|
public:
|
||||||
dxfWriterBinary(std::ofstream *stream):dxfWriter(stream){}
|
explicit dxfWriterBinary(std::ofstream *stream)
|
||||||
virtual ~dxfWriterBinary() {}
|
: dxfWriter(stream)
|
||||||
|
{}
|
||||||
|
virtual ~dxfWriterBinary() = default;
|
||||||
virtual bool writeString(int code, std::string text);
|
virtual bool writeString(int code, std::string text);
|
||||||
virtual bool writeInt16(int code, int data);
|
virtual bool writeInt16(int code, int data);
|
||||||
virtual bool writeInt32(int code, int data);
|
virtual bool writeInt32(int code, int data);
|
||||||
|
@ -56,8 +58,8 @@ public:
|
||||||
|
|
||||||
class dxfWriterAscii : public dxfWriter {
|
class dxfWriterAscii : public dxfWriter {
|
||||||
public:
|
public:
|
||||||
dxfWriterAscii(std::ofstream *stream);
|
explicit dxfWriterAscii(std::ofstream *stream);
|
||||||
virtual ~dxfWriterAscii(){}
|
virtual ~dxfWriterAscii() = default;
|
||||||
virtual bool writeString(int code, std::string text);
|
virtual bool writeString(int code, std::string text);
|
||||||
virtual bool writeInt16(int code, int data);
|
virtual bool writeInt16(int code, int data);
|
||||||
virtual bool writeInt32(int code, int data);
|
virtual bool writeInt32(int code, int data);
|
||||||
|
|
|
@ -58,14 +58,13 @@ RScodec::~RScodec() {
|
||||||
*/
|
*/
|
||||||
void RScodec::RSgenerate_gf(unsigned int pp) {
|
void RScodec::RSgenerate_gf(unsigned int pp) {
|
||||||
int i, mask ;
|
int i, mask ;
|
||||||
int pb;
|
|
||||||
|
|
||||||
mask = 1 ;
|
mask = 1 ;
|
||||||
alpha_to[mm] = 0 ;
|
alpha_to[mm] = 0 ;
|
||||||
for (i=0; i<mm; i++) {
|
for (i=0; i<mm; i++) {
|
||||||
alpha_to[i] = mask ;
|
alpha_to[i] = mask ;
|
||||||
index_of[alpha_to[i]] = i ;
|
index_of[alpha_to[i]] = i ;
|
||||||
pb = (pp >>(mm-1-i)) & 1;
|
int pb = (pp >>(mm-1-i)) & 1;
|
||||||
if (pb!=0) {
|
if (pb!=0) {
|
||||||
alpha_to[mm] ^= mask;
|
alpha_to[mm] ^= mask;
|
||||||
}
|
}
|
||||||
|
@ -110,7 +109,8 @@ void RScodec::RSgen_poly() {
|
||||||
for (i=0; i<=bb; i++) gg[i] = index_of[gg[i]] ;
|
for (i=0; i<=bb; i++) gg[i] = index_of[gg[i]] ;
|
||||||
}
|
}
|
||||||
|
|
||||||
int RScodec::calcDecode(unsigned char* data, int* recd, int** elp, int* d, int* l, int* u_lu, int* s, int* root, int* loc, int* z, int* err, int* reg, int bb)
|
int RScodec::calcDecode(unsigned char* data, int* recd, int** elp, int* d, int* l, int* u_lu, int* s, int* root,
|
||||||
|
int* loc, int* z, int* err, int* reg, int bb) const
|
||||||
{
|
{
|
||||||
if (!isOk) return -1;
|
if (!isOk) return -1;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
@ -315,17 +315,16 @@ int RScodec::calcDecode(unsigned char* data, int* recd, int** elp, int* d, int*
|
||||||
Encoding is done by using a feedback shift register with appropriate
|
Encoding is done by using a feedback shift register with appropriate
|
||||||
connections specified by the elements of gg[], which was generated above.
|
connections specified by the elements of gg[], which was generated above.
|
||||||
Codeword is c(X) = data(X)*X**(nn-kk)+ b(X) */
|
Codeword is c(X) = data(X)*X**(nn-kk)+ b(X) */
|
||||||
bool RScodec::encode(unsigned char *data, unsigned char *parity) {
|
bool RScodec::encode(unsigned char *data, unsigned char *parity) const {
|
||||||
if (!isOk) return false;
|
if (!isOk) return false;
|
||||||
int i,j ;
|
int i,j ;
|
||||||
int feedback ;
|
|
||||||
unsigned char *idata = data;
|
unsigned char *idata = data;
|
||||||
unsigned char *bd = parity;
|
unsigned char *bd = parity;
|
||||||
int bb = nn-kk;; //nn-kk length of parity data
|
int bb = nn-kk;; //nn-kk length of parity data
|
||||||
|
|
||||||
for (i=0; i<bb; i++) bd[i] = 0 ;
|
for (i=0; i<bb; i++) bd[i] = 0 ;
|
||||||
for (i=kk-1; i>=0; i--) {
|
for (i=kk-1; i>=0; i--) {
|
||||||
feedback = index_of[idata[i]^bd[bb-1]] ;
|
int feedback = index_of[idata[i]^bd[bb-1]] ;
|
||||||
if (feedback != -1) {
|
if (feedback != -1) {
|
||||||
for (j=bb-1; j>0; j--)
|
for (j=bb-1; j>0; j--)
|
||||||
if (gg[j] != -1)
|
if (gg[j] != -1)
|
||||||
|
@ -362,7 +361,7 @@ bool RScodec::encode(unsigned char *data, unsigned char *parity) {
|
||||||
parity part of the transmitted codeword). Of course, these insoluble cases
|
parity part of the transmitted codeword). Of course, these insoluble cases
|
||||||
can be returned as error flags to the calling routine if desired. */
|
can be returned as error flags to the calling routine if desired. */
|
||||||
/** return value: number of corrected errors or -1 if can't correct it */
|
/** return value: number of corrected errors or -1 if can't correct it */
|
||||||
int RScodec::decode(unsigned char *data) {
|
int RScodec::decode(unsigned char *data) const {
|
||||||
if (!isOk) return -1;
|
if (!isOk) return -1;
|
||||||
int bb = nn-kk;; //nn-kk length of parity data
|
int bb = nn-kk;; //nn-kk length of parity data
|
||||||
|
|
||||||
|
|
|
@ -45,16 +45,17 @@ public:
|
||||||
~RScodec();
|
~RScodec();
|
||||||
// bool encode(int *data, int *parity);
|
// bool encode(int *data, int *parity);
|
||||||
// int decode(int *recd);
|
// int decode(int *recd);
|
||||||
bool encode(unsigned char *data, unsigned char *parity);
|
bool encode(unsigned char *data, unsigned char *parity) const;
|
||||||
int decode(unsigned char *data);
|
int decode(unsigned char *data) const;
|
||||||
bool isOkey(){return isOk;}
|
bool isOkey() const {return isOk;}
|
||||||
const unsigned int* indexOf() {return index_of;}
|
const unsigned int* indexOf() const {return index_of;}
|
||||||
const int* alphaTo() {return alpha_to;}
|
const int* alphaTo() const {return alpha_to;}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void RSgenerate_gf(unsigned int pp);
|
void RSgenerate_gf(unsigned int pp);
|
||||||
void RSgen_poly();
|
void RSgen_poly();
|
||||||
int calcDecode(unsigned char* data, int* recd, int** elp, int* d, int* l, int* u_lu, int* s, int* root, int* loc, int* z, int* err, int* reg, int bb);
|
int calcDecode(unsigned char* data, int* recd, int** elp, int* d, int* l, int* u_lu, int* s, int* root, int* loc,
|
||||||
|
int* z, int* err, int* reg, int bb) const;
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -65,9 +65,7 @@ void dwgR::setDebug(DRW::DBG_LEVEL lvl){
|
||||||
|
|
||||||
/*reads metadata and loads image preview*/
|
/*reads metadata and loads image preview*/
|
||||||
bool dwgR::getPreview(std::istream &stream){
|
bool dwgR::getPreview(std::istream &stream){
|
||||||
bool isOk = false;
|
bool isOk = open(&stream);
|
||||||
|
|
||||||
isOk = open(&stream);
|
|
||||||
if (!isOk)
|
if (!isOk)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -88,9 +86,7 @@ bool dwgR::read(std::istream &stream, DRW_Interface *interface_, bool ext){
|
||||||
applyExt = ext;
|
applyExt = ext;
|
||||||
iface = interface_;
|
iface = interface_;
|
||||||
|
|
||||||
bool isOk = false;
|
bool isOk = open(&stream);
|
||||||
|
|
||||||
isOk = open(&stream);
|
|
||||||
if (!isOk)
|
if (!isOk)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
|
@ -29,9 +29,9 @@ public:
|
||||||
//read: return true if all ok
|
//read: return true if all ok
|
||||||
bool read(std::istream &stream, DRW_Interface *interface_, bool ext);
|
bool read(std::istream &stream, DRW_Interface *interface_, bool ext);
|
||||||
bool getPreview(std::istream &stream);
|
bool getPreview(std::istream &stream);
|
||||||
DRW::Version getVersion(){return version;}
|
DRW::Version getVersion() const {return version;}
|
||||||
DRW::error getError(){return error;}
|
DRW::error getError() const {return error;}
|
||||||
void setDebug(DRW::DBG_LEVEL lvl);
|
static void setDebug(DRW::DBG_LEVEL lvl);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool open(std::istream *stream);
|
bool open(std::istream *stream);
|
||||||
|
|
|
@ -1264,7 +1264,7 @@ bool dxfRW::writeViewport(DRW_Viewport *ent) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
DRW_ImageDef* dxfRW::writeImage(DRW_Image *ent, std::string name){
|
DRW_ImageDef* dxfRW::writeImage(DRW_Image *ent, const std::string &name){
|
||||||
if (version > DRW::AC1009) {
|
if (version > DRW::AC1009) {
|
||||||
//search if exist imagedef with this mane (image inserted more than 1 time)
|
//search if exist imagedef with this mane (image inserted more than 1 time)
|
||||||
//RLZ: imagedef_reactor seem needed to read in acad
|
//RLZ: imagedef_reactor seem needed to read in acad
|
||||||
|
@ -1280,7 +1280,7 @@ DRW_ImageDef* dxfRW::writeImage(DRW_Image *ent, std::string name){
|
||||||
imageDef.push_back(id);
|
imageDef.push_back(id);
|
||||||
id->handle = ++entCount;
|
id->handle = ++entCount;
|
||||||
}
|
}
|
||||||
id->name = name;
|
id->fileName = name;
|
||||||
std::string idReactor = toHexStr(++entCount);
|
std::string idReactor = toHexStr(++entCount);
|
||||||
|
|
||||||
writer->writeString(0, "IMAGE");
|
writer->writeString(0, "IMAGE");
|
||||||
|
@ -1775,7 +1775,7 @@ bool dxfRW::writeObjects() {
|
||||||
writer->writeString(102, "}");
|
writer->writeString(102, "}");
|
||||||
writer->writeString(100, "AcDbRasterImageDef");
|
writer->writeString(100, "AcDbRasterImageDef");
|
||||||
writer->writeInt16(90, 0); //version 0=R14 to v2010
|
writer->writeInt16(90, 0); //version 0=R14 to v2010
|
||||||
writer->writeUtf8String(1, id->name);
|
writer->writeUtf8String(1, id->fileName);
|
||||||
writer->writeDouble(10, id->u);
|
writer->writeDouble(10, id->u);
|
||||||
writer->writeDouble(20, id->v);
|
writer->writeDouble(20, id->v);
|
||||||
writer->writeDouble(11, id->up);
|
writer->writeDouble(11, id->up);
|
||||||
|
|
|
@ -25,9 +25,9 @@ class dxfWriter;
|
||||||
|
|
||||||
class dxfRW {
|
class dxfRW {
|
||||||
public:
|
public:
|
||||||
dxfRW(const char* name);
|
explicit dxfRW(const char* name);
|
||||||
~dxfRW();
|
~dxfRW();
|
||||||
void setDebug(DRW::DBG_LEVEL lvl);
|
static void setDebug(DRW::DBG_LEVEL lvl);
|
||||||
/// reads the file specified in constructor
|
/// reads the file specified in constructor
|
||||||
/*!
|
/*!
|
||||||
* An interface must be provided. It is used by the class to signal various
|
* An interface must be provided. It is used by the class to signal various
|
||||||
|
@ -60,13 +60,13 @@ public:
|
||||||
bool writePolyline(DRW_Polyline *ent);
|
bool writePolyline(DRW_Polyline *ent);
|
||||||
bool writeSpline(DRW_Spline *ent);
|
bool writeSpline(DRW_Spline *ent);
|
||||||
bool writeBlockRecord(std::string name);
|
bool writeBlockRecord(std::string name);
|
||||||
bool writeBlock(DRW_Block *ent);
|
bool writeBlock(DRW_Block *bk);
|
||||||
bool writeInsert(DRW_Insert *ent);
|
bool writeInsert(DRW_Insert *ent);
|
||||||
bool writeMText(DRW_MText *ent);
|
bool writeMText(DRW_MText *ent);
|
||||||
bool writeText(DRW_Text *ent);
|
bool writeText(DRW_Text *ent);
|
||||||
bool writeHatch(DRW_Hatch *ent);
|
bool writeHatch(DRW_Hatch *ent);
|
||||||
bool writeViewport(DRW_Viewport *ent);
|
bool writeViewport(DRW_Viewport *ent);
|
||||||
DRW_ImageDef *writeImage(DRW_Image *ent, std::string name);
|
DRW_ImageDef *writeImage(DRW_Image *ent, const std::__cxx11::string &name);
|
||||||
bool writeLeader(DRW_Leader *ent);
|
bool writeLeader(DRW_Leader *ent);
|
||||||
bool writeDimension(DRW_Dimension *ent);
|
bool writeDimension(DRW_Dimension *ent);
|
||||||
void setEllipseParts(int parts){elParts = parts;} /*!< set parts munber when convert ellipse to polyline */
|
void setEllipseParts(int parts){elParts = parts;} /*!< set parts munber when convert ellipse to polyline */
|
||||||
|
@ -120,7 +120,7 @@ private:
|
||||||
bool writeObjects();
|
bool writeObjects();
|
||||||
bool writeExtData(const std::vector<DRW_Variant*> &ed);
|
bool writeExtData(const std::vector<DRW_Variant*> &ed);
|
||||||
/*use version from dwgutil.h*/
|
/*use version from dwgutil.h*/
|
||||||
std::string toHexStr(int n);//RLZ removeme
|
static std::string toHexStr(int n);//RLZ removeme
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DRW::Version version;
|
DRW::Version version;
|
||||||
|
|
|
@ -81,6 +81,7 @@ VAbstractApplication::VAbstractApplication(int &argc, char **argv)
|
||||||
#endif //defined(V_NO_ASSERT)
|
#endif //defined(V_NO_ASSERT)
|
||||||
#endif // QT_VERSION >= QT_VERSION_CHECK(5, 4, 1)
|
#endif // QT_VERSION >= QT_VERSION_CHECK(5, 4, 1)
|
||||||
|
|
||||||
|
// cppcheck-suppress reademptycontainer
|
||||||
if (not rules.isEmpty())
|
if (not rules.isEmpty())
|
||||||
{
|
{
|
||||||
QLoggingCategory::setFilterRules(rules);
|
QLoggingCategory::setFilterRules(rules);
|
||||||
|
|
|
@ -153,10 +153,10 @@ void VPE::VPropertySet::clear(bool delete_properties)
|
||||||
|
|
||||||
QString VPE::VPropertySet::getPropertyID(const VProperty *prop, bool look_for_parent_id) const
|
QString VPE::VPropertySet::getPropertyID(const VProperty *prop, bool look_for_parent_id) const
|
||||||
{
|
{
|
||||||
QString tmpResult;
|
// QString tmpResult;
|
||||||
const VProperty* tmpCurrentProp = prop;
|
const VProperty* tmpCurrentProp = prop;
|
||||||
|
|
||||||
while (tmpCurrentProp && (look_for_parent_id || prop == tmpCurrentProp) && tmpResult.isEmpty())
|
while (tmpCurrentProp && (look_for_parent_id || prop == tmpCurrentProp) /*&& tmpResult.isEmpty()*/)
|
||||||
{
|
{
|
||||||
|
|
||||||
// todo: The following code doesn't work, because .key() doesn't accept a const VProperty* pointer ...
|
// todo: The following code doesn't work, because .key() doesn't accept a const VProperty* pointer ...
|
||||||
|
@ -175,7 +175,8 @@ QString VPE::VPropertySet::getPropertyID(const VProperty *prop, bool look_for_pa
|
||||||
tmpCurrentProp = tmpCurrentProp->getParent();
|
tmpCurrentProp = tmpCurrentProp->getParent();
|
||||||
}
|
}
|
||||||
|
|
||||||
return tmpResult;
|
// return tmpResult;
|
||||||
|
return QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
// cppcheck-suppress unusedFunction
|
// cppcheck-suppress unusedFunction
|
||||||
|
|
Loading…
Reference in New Issue
Block a user