GCC warnings.
--HG-- branch : develop
This commit is contained in:
parent
b6e0d97df0
commit
1726b55339
|
@ -293,8 +293,8 @@ GCC_DEBUG_CXXFLAGS += \
|
|||
-Wno-unused \
|
||||
-ftrapv
|
||||
|
||||
# Good support Q_NULLPTR come later
|
||||
greaterThan(QT_MAJOR_VERSION, 4):greaterThan(QT_MINOR_VERSION, 4) {
|
||||
# Good support Q_NULLPTR came later
|
||||
greaterThan(QT_MAJOR_VERSION, 4):greaterThan(QT_MINOR_VERSION, 5) {
|
||||
GCC_DEBUG_CXXFLAGS += -Wzero-as-null-pointer-constant
|
||||
}
|
||||
|
||||
|
|
|
@ -43,8 +43,8 @@ class DialogMDataBase : public QDialog
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit DialogMDataBase(const QStringList &list, QWidget *parent = 0);
|
||||
explicit DialogMDataBase(QWidget *parent = 0);
|
||||
explicit DialogMDataBase(const QStringList &list, QWidget *parent = nullptr);
|
||||
explicit DialogMDataBase(QWidget *parent = nullptr);
|
||||
virtual ~DialogMDataBase() Q_DECL_OVERRIDE;
|
||||
|
||||
QStringList GetNewNames() const;
|
||||
|
|
|
@ -43,7 +43,7 @@ class DialogNewMeasurements : public QDialog
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit DialogNewMeasurements(QWidget *parent = 0);
|
||||
explicit DialogNewMeasurements(QWidget *parent = nullptr);
|
||||
~DialogNewMeasurements();
|
||||
|
||||
MeasurementsType Type() const;
|
||||
|
|
|
@ -283,7 +283,7 @@ VApplication::VApplication(int &argc, char **argv)
|
|||
VApplication::~VApplication()
|
||||
{
|
||||
qCDebug(vApp, "Application closing.");
|
||||
qInstallMessageHandler(0); // Resore the message handler
|
||||
qInstallMessageHandler(nullptr); // Resore the message handler
|
||||
delete trVars;
|
||||
VCommandLine::Reset();
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ class DialogLayoutProgress : public QDialog
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit DialogLayoutProgress(int count, QWidget *parent = 0);
|
||||
explicit DialogLayoutProgress(int count, QWidget *parent = nullptr);
|
||||
~DialogLayoutProgress();
|
||||
|
||||
signals:
|
||||
|
|
|
@ -338,7 +338,7 @@ QString QmuParserBase::GetVersion(EParserVersionInfo eInfo)
|
|||
void QmuParserBase::AddCallback(const QString &a_strName, const QmuParserCallback &a_Callback,
|
||||
funmap_type &a_Storage, const QString &a_szCharSet )
|
||||
{
|
||||
if (a_Callback.GetAddr()==0)
|
||||
if (a_Callback.GetAddr() == nullptr)
|
||||
{
|
||||
Error(ecINVALID_FUN_PTR);
|
||||
}
|
||||
|
@ -582,7 +582,7 @@ void QmuParserBase::DefineStrConst(const QString &a_strName, const QString &a_st
|
|||
*/
|
||||
void QmuParserBase::DefineVar(const QString &a_sName, qreal *a_pVar)
|
||||
{
|
||||
if (a_pVar==0)
|
||||
if (a_pVar == nullptr)
|
||||
{
|
||||
Error(ecINVALID_VAR_PTR);
|
||||
}
|
||||
|
@ -787,7 +787,7 @@ void QmuParserBase::ApplyFunc( QStack<token_type> &a_stOpt, QStack<token_type> &
|
|||
assert(m_pTokenReader.get());
|
||||
|
||||
// Operator stack empty or does not contain tokens with callback functions
|
||||
if (a_stOpt.empty() || a_stOpt.top().GetFuncAddr()==0 )
|
||||
if (a_stOpt.empty() || a_stOpt.top().GetFuncAddr() == nullptr)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -1451,7 +1451,7 @@ void QmuParserBase::CreateRPN() const
|
|||
// The opening bracket was popped from the stack now check if there
|
||||
// was a function before this bracket
|
||||
if (stOpt.size() && stOpt.top().GetCode()!=cmOPRT_INFIX && stOpt.top().GetCode()!=cmOPRT_BIN &&
|
||||
stOpt.top().GetFuncAddr()!=0)
|
||||
stOpt.top().GetFuncAddr()!=nullptr)
|
||||
{
|
||||
ApplyFunc(stOpt, stVal, iArgCount);
|
||||
}
|
||||
|
|
|
@ -296,8 +296,8 @@ QmuParserCallback::QmuParserCallback ( strfun_type3 a_pFun, bool a_bAllowOpti )
|
|||
* @throw nothrow
|
||||
*/
|
||||
QmuParserCallback::QmuParserCallback()
|
||||
: m_pFun ( 0 ), m_iArgc ( 0 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmUNKNOWN ), m_iType ( tpVOID ),
|
||||
m_bAllowOpti ( 0 )
|
||||
: m_pFun ( nullptr ), m_iArgc ( 0 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmUNKNOWN ),
|
||||
m_iType ( tpVOID ), m_bAllowOpti ( 0 )
|
||||
{}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -339,12 +339,12 @@ int QmuParserTester::TestNames()
|
|||
PARSER_THROWCHECK ( Var, true, "a_min", &a )
|
||||
PARSER_THROWCHECK ( Var, true, "a_min0", &a )
|
||||
PARSER_THROWCHECK ( Var, true, "a_min9", &a )
|
||||
PARSER_THROWCHECK ( Var, false, "a_min9", 0 )
|
||||
PARSER_THROWCHECK ( Var, false, "a_min9", nullptr )
|
||||
// Postfix operators
|
||||
// fail
|
||||
PARSER_THROWCHECK ( PostfixOprt, false, "(k", f1of1 )
|
||||
PARSER_THROWCHECK ( PostfixOprt, false, "9+", f1of1 )
|
||||
PARSER_THROWCHECK ( PostfixOprt, false, "+", 0 )
|
||||
PARSER_THROWCHECK ( PostfixOprt, false, "+", nullptr )
|
||||
// pass
|
||||
PARSER_THROWCHECK ( PostfixOprt, true, "-a", f1of1 )
|
||||
PARSER_THROWCHECK ( PostfixOprt, true, "?a", f1of1 )
|
||||
|
@ -543,7 +543,7 @@ int QmuParserTester::TestVarConst()
|
|||
|
||||
for ( item = UsedVar.begin(); item != UsedVar.end(); ++item )
|
||||
{
|
||||
if ( item->second != 0 )
|
||||
if ( item->second != nullptr )
|
||||
{
|
||||
throw false; // all pointers to undefined variables must be null
|
||||
}
|
||||
|
@ -1378,7 +1378,7 @@ int QmuParserTester::EqnTest ( const QString &a_str, double a_fRes, bool a_fPass
|
|||
|
||||
// destroy the originals from p2
|
||||
vParser.clear(); // delete the vector
|
||||
p1.reset ( 0 );
|
||||
p1.reset ( nullptr );
|
||||
|
||||
fVal[2] = p2.Eval();
|
||||
|
||||
|
|
|
@ -67,8 +67,8 @@ public:
|
|||
* @sa ECmdCode
|
||||
*/
|
||||
QmuParserToken()
|
||||
: m_iCode ( cmUNKNOWN ), m_iType ( tpVOID ), m_pTok ( 0 ), m_iIdx ( -1 ), m_strTok(), m_strVal(), m_fVal(),
|
||||
m_pCallback()
|
||||
: m_iCode ( cmUNKNOWN ), m_iType ( tpVOID ), m_pTok ( nullptr ), m_iIdx ( -1 ), m_strTok(), m_strVal(),
|
||||
m_fVal(), m_pCallback()
|
||||
{}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
@ -121,7 +121,7 @@ public:
|
|||
m_iType = a_Tok.m_iType;
|
||||
m_fVal = a_Tok.m_fVal;
|
||||
// create new callback object if a_Tok has one
|
||||
m_pCallback.reset ( a_Tok.m_pCallback.get() ? a_Tok.m_pCallback->Clone() : 0 );
|
||||
m_pCallback.reset ( a_Tok.m_pCallback.get() ? a_Tok.m_pCallback->Clone() : nullptr );
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
@ -145,7 +145,7 @@ public:
|
|||
|
||||
m_iCode = a_iType;
|
||||
m_iType = tpVOID;
|
||||
m_pTok = 0;
|
||||
m_pTok = nullptr;
|
||||
m_strTok = a_strTok;
|
||||
m_iIdx = -1;
|
||||
|
||||
|
@ -165,7 +165,7 @@ public:
|
|||
m_strTok = a_sTok;
|
||||
m_pCallback.reset ( new QmuParserCallback ( a_pCallback ) );
|
||||
|
||||
m_pTok = 0;
|
||||
m_pTok = nullptr;
|
||||
m_iIdx = -1;
|
||||
|
||||
return *this;
|
||||
|
@ -186,8 +186,8 @@ public:
|
|||
m_strTok = a_strTok;
|
||||
m_iIdx = -1;
|
||||
|
||||
m_pTok = 0;
|
||||
m_pCallback.reset ( 0 );
|
||||
m_pTok = nullptr;
|
||||
m_pCallback.reset ( nullptr );
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
@ -206,7 +206,7 @@ public:
|
|||
m_strTok = a_strTok;
|
||||
m_iIdx = -1;
|
||||
m_pTok = reinterpret_cast<void*> ( a_pVar );
|
||||
m_pCallback.reset ( 0 );
|
||||
m_pCallback.reset ( nullptr );
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
@ -224,8 +224,8 @@ public:
|
|||
m_strTok = a_strTok;
|
||||
m_iIdx = a_iSize;
|
||||
|
||||
m_pTok = 0;
|
||||
m_pCallback.reset ( 0 );
|
||||
m_pTok = nullptr;
|
||||
m_pCallback.reset ( nullptr );
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
@ -361,7 +361,7 @@ public:
|
|||
generic_fun_type GetFuncAddr() const
|
||||
{
|
||||
return ( union_cast<generic_fun_type>( m_pCallback.get() ) ) ?
|
||||
union_cast<generic_fun_type>( m_pCallback->GetAddr() ) : union_cast<generic_fun_type>(0);
|
||||
union_cast<generic_fun_type>( m_pCallback->GetAddr() ) : union_cast<generic_fun_type>(nullptr);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
|
|
@ -947,7 +947,7 @@ bool QmuParserTokenReader::IsUndefVarTok ( token_type &a_Tok )
|
|||
else
|
||||
{
|
||||
a_Tok.SetVar ( &m_fZero, strTok );
|
||||
m_UsedVar[strTok] = 0; // Add variable to used-var-list
|
||||
m_UsedVar[strTok] = nullptr; // Add variable to used-var-list
|
||||
}
|
||||
|
||||
m_iPos = iEnd;
|
||||
|
|
|
@ -54,12 +54,13 @@ class QMUPARSERSHARED_EXPORT QmuTranslation
|
|||
public:
|
||||
QmuTranslation();
|
||||
~QmuTranslation(){}
|
||||
QmuTranslation(const QString &context, const QString &sourceText, const QString &disambiguation = 0, int n = -1);
|
||||
QmuTranslation(const QString &context, const QString &sourceText, const QString &disambiguation = nullptr,
|
||||
int n = -1);
|
||||
QmuTranslation &operator=(const QmuTranslation &tr);
|
||||
QmuTranslation(const QmuTranslation &tr);
|
||||
QString translate() const;
|
||||
static QmuTranslation translate(const QString &context, const QString &sourceText,
|
||||
const QString &disambiguation = 0, int n = -1);
|
||||
const QString &disambiguation = nullptr, int n = -1);
|
||||
QString getMcontext() const;
|
||||
QString getMsourceText() const;
|
||||
QString getMdisambiguation() const;
|
||||
|
|
|
@ -22,18 +22,32 @@ class QFont;
|
|||
//class to store image data and path from DRW_ImageDef
|
||||
class dx_ifaceImg : public DRW_Image {
|
||||
public:
|
||||
dx_ifaceImg(){}
|
||||
dx_ifaceImg(const DRW_Image& p):DRW_Image(p){}
|
||||
~dx_ifaceImg(){}
|
||||
dx_ifaceImg()
|
||||
: path()
|
||||
{}
|
||||
|
||||
dx_ifaceImg(const DRW_Image& p)
|
||||
: DRW_Image(p),
|
||||
path()
|
||||
{}
|
||||
|
||||
virtual ~dx_ifaceImg() = default;
|
||||
std::string path; //stores the image path
|
||||
};
|
||||
|
||||
//container class to store entites.
|
||||
class dx_ifaceBlock : public DRW_Block {
|
||||
public:
|
||||
dx_ifaceBlock(){}
|
||||
dx_ifaceBlock(const DRW_Block& p):DRW_Block(p){}
|
||||
~dx_ifaceBlock(){
|
||||
dx_ifaceBlock()
|
||||
: ent()
|
||||
{}
|
||||
|
||||
dx_ifaceBlock(const DRW_Block& p)
|
||||
: DRW_Block(p),
|
||||
ent()
|
||||
{}
|
||||
|
||||
virtual ~dx_ifaceBlock(){
|
||||
for (std::list<DRW_Entity*>::const_iterator it=ent.begin(); it!=ent.end(); ++it)
|
||||
delete *it;
|
||||
}
|
||||
|
@ -44,9 +58,19 @@ public:
|
|||
//container class to store full dwg/dxf data.
|
||||
class dx_data {
|
||||
public:
|
||||
dx_data(){
|
||||
mBlock = new dx_ifaceBlock();
|
||||
}
|
||||
dx_data()
|
||||
: headerC(),
|
||||
lineTypes(),
|
||||
layers(),
|
||||
dimStyles(),
|
||||
VPorts(),
|
||||
textStyles(),
|
||||
appIds(),
|
||||
blocks(),
|
||||
images(),
|
||||
mBlock(new dx_ifaceBlock())
|
||||
{}
|
||||
|
||||
~dx_data(){
|
||||
//cleanup,
|
||||
for (std::list<dx_ifaceBlock*>::const_iterator it=blocks.begin(); it!=blocks.end(); ++it)
|
||||
|
@ -65,7 +89,8 @@ public:
|
|||
std::list<dx_ifaceImg*>images; //temporary list to find images for link with DRW_ImageDef. Do not delete it!!
|
||||
|
||||
dx_ifaceBlock* mBlock; //container to store model entities
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(dx_data)
|
||||
|
||||
};
|
||||
|
||||
|
@ -96,6 +121,7 @@ public:
|
|||
UTF8STRING AddFont(const QFont &f);
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(dx_iface)
|
||||
dxfRW* dxfW; //pointer to writer, needed to send data
|
||||
dx_data cData; // class to store or read data
|
||||
DRW::Version version;
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include <string>
|
||||
#include <list>
|
||||
#include <cmath>
|
||||
#include <QtGlobal>
|
||||
|
||||
#ifdef DRW_ASSERTS
|
||||
# define drw_assert(a) assert(a)
|
||||
|
@ -158,6 +159,23 @@ enum TransparencyCodes {
|
|||
|
||||
} // namespace DRW
|
||||
|
||||
Q_REQUIRED_RESULT static inline bool DRW_FuzzyComparePossibleNulls(double p1, double p2);
|
||||
static inline bool DRW_FuzzyComparePossibleNulls(double p1, double p2)
|
||||
{
|
||||
if(qFuzzyIsNull(p1))
|
||||
{
|
||||
return qFuzzyIsNull(p2);
|
||||
}
|
||||
else if(qFuzzyIsNull(p2))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return qFuzzyCompare(p1, p2);
|
||||
}
|
||||
}
|
||||
|
||||
//! Class to handle 3D coordinate point
|
||||
/*!
|
||||
* Class to handle 3D coordinate point
|
||||
|
@ -165,13 +183,27 @@ enum TransparencyCodes {
|
|||
*/
|
||||
class DRW_Coord {
|
||||
public:
|
||||
DRW_Coord() { x = 0; y = 0; z = 0; }
|
||||
DRW_Coord(double ix, double iy, double iz) {
|
||||
x = ix; y = iy; z = iz;
|
||||
DRW_Coord()
|
||||
: x(0),
|
||||
y(0),
|
||||
z(0)
|
||||
{}
|
||||
DRW_Coord(double ix, double iy, double iz)
|
||||
: x(ix),
|
||||
y(iy),
|
||||
z(iz)
|
||||
{}
|
||||
|
||||
DRW_Coord &operator = (const DRW_Coord& data)
|
||||
{
|
||||
if ( &data == this )
|
||||
{
|
||||
return *this;
|
||||
}
|
||||
|
||||
DRW_Coord operator = (const DRW_Coord& data) {
|
||||
x = data.x; y = data.y; z = data.z;
|
||||
x = data.x;
|
||||
y = data.y;
|
||||
z = data.z;
|
||||
return *this;
|
||||
}
|
||||
/*!< convert to unitary vector */
|
||||
|
@ -199,16 +231,22 @@ public:
|
|||
*/
|
||||
class DRW_Vertex2D {
|
||||
public:
|
||||
DRW_Vertex2D() {
|
||||
DRW_Vertex2D()
|
||||
: x(),
|
||||
y(),
|
||||
stawidth(0),
|
||||
endwidth(0),
|
||||
bulge(0)
|
||||
{
|
||||
// eType = DRW::LWPOLYLINE;
|
||||
stawidth = endwidth = bulge = 0;
|
||||
}
|
||||
DRW_Vertex2D(double sx, double sy, double b) {
|
||||
stawidth = endwidth = 0;
|
||||
x = sx;
|
||||
y =sy;
|
||||
bulge = b;
|
||||
}
|
||||
DRW_Vertex2D(double sx, double sy, double b)
|
||||
: x(sx),
|
||||
y(sy),
|
||||
stawidth(0),
|
||||
endwidth(0),
|
||||
bulge(b)
|
||||
{}
|
||||
|
||||
public:
|
||||
double x; /*!< x coordinate, code 10 */
|
||||
|
@ -234,41 +272,85 @@ public:
|
|||
INVALID
|
||||
};
|
||||
//TODO: add INT64 support
|
||||
DRW_Variant() {
|
||||
type = INVALID;
|
||||
DRW_Variant()
|
||||
: content(),
|
||||
type(INVALID),
|
||||
code(),
|
||||
sdata(),
|
||||
vdata()
|
||||
{}
|
||||
|
||||
DRW_Variant(int c, dint32 i)
|
||||
: content(),
|
||||
type(),
|
||||
code(c),
|
||||
sdata(),
|
||||
vdata()
|
||||
{
|
||||
addInt(i);
|
||||
}
|
||||
|
||||
DRW_Variant(int c, dint32 i) {
|
||||
code = c; addInt(i);
|
||||
DRW_Variant(int c, duint32 i)
|
||||
: content(),
|
||||
type(),
|
||||
code(c),
|
||||
sdata(),
|
||||
vdata()
|
||||
{
|
||||
addInt(static_cast<dint32>(i));//RLZ: verify if work with big numbers
|
||||
}
|
||||
DRW_Variant(int c, duint32 i) {
|
||||
code = c; addInt(static_cast<dint32>(i));//RLZ: verify if worrk with big numbers
|
||||
|
||||
DRW_Variant(int c, double d)
|
||||
: content(),
|
||||
type(),
|
||||
code(c),
|
||||
sdata(),
|
||||
vdata()
|
||||
{
|
||||
addDouble(d);
|
||||
}
|
||||
DRW_Variant(int c, double d) {
|
||||
code = c; addDouble(d);
|
||||
|
||||
DRW_Variant(int c, UTF8STRING s)
|
||||
: content(),
|
||||
type(),
|
||||
code(c),
|
||||
sdata(),
|
||||
vdata()
|
||||
{
|
||||
addString(s);
|
||||
}
|
||||
DRW_Variant(int c, UTF8STRING s) {
|
||||
code = c; addString(s);
|
||||
|
||||
DRW_Variant(int c, DRW_Coord crd)
|
||||
: content(),
|
||||
type(),
|
||||
code(c),
|
||||
sdata(),
|
||||
vdata()
|
||||
{
|
||||
addCoord(crd);
|
||||
}
|
||||
DRW_Variant(int c, DRW_Coord crd) {
|
||||
code = c; addCoord(crd);
|
||||
}
|
||||
DRW_Variant(const DRW_Variant& d) {
|
||||
code = d.code;
|
||||
type = d.type;
|
||||
content = d.content;
|
||||
if (d.type == COORD) {
|
||||
|
||||
DRW_Variant(const DRW_Variant& d)
|
||||
: content(d.content),
|
||||
type(d.type),
|
||||
code(d.code),
|
||||
sdata(),
|
||||
vdata()
|
||||
{
|
||||
if (d.type == COORD)
|
||||
{
|
||||
vdata = d.vdata;
|
||||
content.v = &vdata;
|
||||
}
|
||||
if (d.type == STRING) {
|
||||
|
||||
if (d.type == STRING)
|
||||
{
|
||||
sdata = d.sdata;
|
||||
content.s = &sdata;
|
||||
}
|
||||
}
|
||||
|
||||
~DRW_Variant() {
|
||||
}
|
||||
~DRW_Variant() = default;
|
||||
|
||||
void addString(UTF8STRING s) {setType(STRING); sdata = s; content.s = &sdata;}
|
||||
void addInt(int i) {setType(INTEGER); content.i = i;}
|
||||
|
@ -305,12 +387,14 @@ private:
|
|||
*/
|
||||
class dwgHandle{
|
||||
public:
|
||||
dwgHandle(){
|
||||
code=0;
|
||||
size=0;
|
||||
ref=0;
|
||||
}
|
||||
~dwgHandle(){}
|
||||
dwgHandle()
|
||||
: code(0),
|
||||
size(0),
|
||||
ref(0)
|
||||
{}
|
||||
|
||||
~dwgHandle() = default;
|
||||
|
||||
duint8 code;
|
||||
duint8 size;
|
||||
duint32 ref;
|
||||
|
|
|
@ -29,10 +29,19 @@ class dwgBuffer;
|
|||
*/
|
||||
class DRW_Class {
|
||||
public:
|
||||
DRW_Class() {
|
||||
}
|
||||
~DRW_Class() {
|
||||
}
|
||||
DRW_Class()
|
||||
: recName(),
|
||||
className(),
|
||||
appName(),
|
||||
proxyFlag(),
|
||||
instanceCount(),
|
||||
wasaProxyFlag(),
|
||||
entityFlag(),
|
||||
classNum(),
|
||||
dwgType()
|
||||
{}
|
||||
|
||||
~DRW_Class() = default;
|
||||
|
||||
void parseCode(int code, dxfReader *reader);
|
||||
void write(dxfWriter *writer, DRW::Version ver);
|
||||
|
|
|
@ -135,7 +135,7 @@ bool DRW_Entity::parseCode(int code, dxfReader *reader){
|
|||
case 1033:
|
||||
if (curr)
|
||||
curr->setCoordZ(reader->getDouble());
|
||||
curr=NULL;
|
||||
curr=nullptr;
|
||||
break;
|
||||
case 1040:
|
||||
case 1041:
|
||||
|
@ -159,7 +159,7 @@ bool DRW_Entity::parseDxfGroups(int code, dxfReader *reader){
|
|||
int nc;
|
||||
std::string appName= reader->getString();
|
||||
if (!appName.empty() && appName.at(0)== '{'){
|
||||
curr.addString(appName.substr(1, (int) appName.size()-1));
|
||||
curr.addString(appName.substr(1, static_cast<int>(appName.size()-1)));
|
||||
curr.code = code;
|
||||
ls.push_back(curr);
|
||||
while (code !=102 && appName.at(0)== '}'){
|
||||
|
@ -205,7 +205,7 @@ bool DRW_Entity::parseDwg(DRW::Version version, dwgBuffer *buf, dwgBuffer* strBu
|
|||
DRW_DBG(" Object size: "); DRW_DBG(objSize); DRW_DBG("\n");
|
||||
}
|
||||
if (version > DRW::AC1021) {//2010+
|
||||
duint32 ms = buf->size();
|
||||
duint32 ms = static_cast<duint32>(buf->size());
|
||||
objSize = ms*8 - bs;
|
||||
DRW_DBG(" Object size: "); DRW_DBG(objSize); DRW_DBG("\n");
|
||||
}
|
||||
|
@ -222,7 +222,7 @@ bool DRW_Entity::parseDwg(DRW::Version version, dwgBuffer *buf, dwgBuffer* strBu
|
|||
DRW_DBG("\nDRW_TableEntry::parseDwg string 0x8000 bit is set");
|
||||
strBuf->moveBitPos(-33);//RLZ pending to verify
|
||||
duint16 hiSize = strBuf->getRawShort16();
|
||||
strDataSize = ((strDataSize&0x7fff) | (hiSize<<15));
|
||||
strDataSize = static_cast<duint16>((strDataSize&0x7fff) | (hiSize<<15));
|
||||
}
|
||||
strBuf->moveBitPos( -strDataSize -16); //-14
|
||||
DRW_DBG("strBuf start strDataSize pos 2007: "); DRW_DBG(strBuf->getPosition()); DRW_DBG(" strBuf bpos 2007: "); DRW_DBG(strBuf->getBitPos()); DRW_DBG("\n");
|
||||
|
@ -290,7 +290,7 @@ bool DRW_Entity::parseDwg(DRW::Version version, dwgBuffer *buf, dwgBuffer* strBu
|
|||
// entmode = 2;
|
||||
else if(entmode ==2)
|
||||
entmode = 0;
|
||||
space = (DRW::Space)entmode; //RLZ verify cast values
|
||||
space = static_cast<DRW::Space>(entmode); //RLZ verify cast values
|
||||
DRW_DBG("entmode: "); DRW_DBG(entmode);
|
||||
numReactors = buf->getBitShort(); //BS
|
||||
DRW_DBG(", numReactors: "); DRW_DBG(numReactors);
|
||||
|
@ -493,7 +493,7 @@ void DRW_Point::parseCode(int code, dxfReader *reader){
|
|||
}
|
||||
|
||||
bool DRW_Point::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, NULL, bs);
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, nullptr, bs);
|
||||
if (!ret)
|
||||
return ret;
|
||||
DRW_DBG("\n***************************** parsing point *********************************************\n");
|
||||
|
@ -535,7 +535,7 @@ void DRW_Line::parseCode(int code, dxfReader *reader){
|
|||
}
|
||||
|
||||
bool DRW_Line::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, NULL, bs);
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, nullptr, bs);
|
||||
if (!ret)
|
||||
return ret;
|
||||
DRW_DBG("\n***************************** parsing line *********************************************\n");
|
||||
|
@ -573,7 +573,7 @@ bool DRW_Line::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
|||
}
|
||||
|
||||
bool DRW_Ray::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, NULL, bs);
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, nullptr, bs);
|
||||
if (!ret)
|
||||
return ret;
|
||||
DRW_DBG("\n***************************** parsing ray/xline *********************************************\n");
|
||||
|
@ -613,7 +613,7 @@ void DRW_Circle::parseCode(int code, dxfReader *reader){
|
|||
}
|
||||
|
||||
bool DRW_Circle::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, NULL, bs);
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, nullptr, bs);
|
||||
if (!ret)
|
||||
return ret;
|
||||
DRW_DBG("\n***************************** parsing circle *********************************************\n");
|
||||
|
@ -672,7 +672,7 @@ void DRW_Arc::parseCode(int code, dxfReader *reader){
|
|||
}
|
||||
|
||||
bool DRW_Arc::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, NULL, bs);
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, nullptr, bs);
|
||||
if (!ret)
|
||||
return ret;
|
||||
DRW_DBG("\n***************************** parsing circle arc *********************************************\n");
|
||||
|
@ -730,7 +730,7 @@ void DRW_Ellipse::applyExtrusion(){
|
|||
//if ratio > 1 minor axis are greather than major axis, correct it
|
||||
void DRW_Ellipse::correctAxis(){
|
||||
bool complete = false;
|
||||
if (staparam == endparam) {
|
||||
if (DRW_FuzzyComparePossibleNulls(staparam, endparam)) {
|
||||
staparam = 0.0;
|
||||
endparam = M_PIx2; //2*M_PI;
|
||||
complete = true;
|
||||
|
@ -754,7 +754,7 @@ void DRW_Ellipse::correctAxis(){
|
|||
}
|
||||
|
||||
bool DRW_Ellipse::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, NULL, bs);
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, nullptr, bs);
|
||||
if (!ret)
|
||||
return ret;
|
||||
DRW_DBG("\n***************************** parsing ellipse *********************************************\n");
|
||||
|
@ -851,7 +851,7 @@ void DRW_Trace::parseCode(int code, dxfReader *reader){
|
|||
}
|
||||
|
||||
bool DRW_Trace::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, NULL, bs);
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, nullptr, bs);
|
||||
if (!ret)
|
||||
return ret;
|
||||
DRW_DBG("\n***************************** parsing Trace *********************************************\n");
|
||||
|
@ -909,7 +909,7 @@ void DRW_3Dface::parseCode(int code, dxfReader *reader){
|
|||
}
|
||||
|
||||
bool DRW_3Dface::parseDwg(DRW::Version v, dwgBuffer *buf, duint32 bs){
|
||||
bool ret = DRW_Entity::parseDwg(v, buf, NULL, bs);
|
||||
bool ret = DRW_Entity::parseDwg(v, buf, nullptr, bs);
|
||||
if (!ret)
|
||||
return ret;
|
||||
DRW_DBG("\n***************************** parsing 3Dface *********************************************\n");
|
||||
|
@ -943,7 +943,7 @@ bool DRW_3Dface::parseDwg(DRW::Version v, dwgBuffer *buf, duint32 bs){
|
|||
fourPoint.x = buf->getDefaultDouble(thirdPoint.x);
|
||||
fourPoint.y = buf->getDefaultDouble(thirdPoint.y);
|
||||
fourPoint.z = buf->getDefaultDouble(thirdPoint.z);
|
||||
invisibleflag = has_no_flag ? (int)NoEdge : buf->getBitShort();
|
||||
invisibleflag = has_no_flag ? static_cast<int>(NoEdge) : buf->getBitShort();
|
||||
}
|
||||
drw_assert(invisibleflag>=NoEdge);
|
||||
drw_assert(invisibleflag<=AllEdges);
|
||||
|
@ -1041,7 +1041,7 @@ void DRW_Insert::parseCode(int code, dxfReader *reader){
|
|||
|
||||
bool DRW_Insert::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
||||
dint32 objCount = 0;
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, NULL, bs);
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, nullptr, bs);
|
||||
if (!ret)
|
||||
return ret;
|
||||
DRW_DBG("\n************************** parsing insert/minsert *****************************************\n");
|
||||
|
@ -1187,7 +1187,7 @@ void DRW_LWPolyline::parseCode(int code, dxfReader *reader){
|
|||
}
|
||||
|
||||
bool DRW_LWPolyline::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, NULL, bs);
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, nullptr, bs);
|
||||
if (!ret)
|
||||
return ret;
|
||||
DRW_DBG("\n***************************** parsing LWPolyline *******************************************\n");
|
||||
|
@ -1307,10 +1307,10 @@ void DRW_Text::parseCode(int code, dxfReader *reader){
|
|||
textgen = reader->getInt32();
|
||||
break;
|
||||
case 72:
|
||||
alignH = (HAlign)reader->getInt32();
|
||||
alignH = static_cast<HAlign>(reader->getInt32());
|
||||
break;
|
||||
case 73:
|
||||
alignV = (VAlign)reader->getInt32();
|
||||
alignV = static_cast<VAlign>(reader->getInt32());
|
||||
break;
|
||||
case 1:
|
||||
text = reader->getUtf8String();
|
||||
|
@ -1393,11 +1393,11 @@ bool DRW_Text::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
|||
DRW_DBG("textgen: "); DRW_DBG(textgen);
|
||||
}
|
||||
if ( !(data_flags & 0x40) ) { /* Horiz align. BS 72 present if !(DataFlags & 0x40) */
|
||||
alignH = (HAlign)buf->getBitShort();
|
||||
alignH = static_cast<HAlign>(buf->getBitShort());
|
||||
DRW_DBG(", alignH: "); DRW_DBG(alignH);
|
||||
}
|
||||
if ( !(data_flags & 0x80) ) { /* Vert align. BS 73 present if !(DataFlags & 0x80) */
|
||||
alignV = (VAlign)buf->getBitShort();
|
||||
alignV = static_cast<VAlign>(buf->getBitShort());
|
||||
DRW_DBG(", alignV: "); DRW_DBG(alignV);
|
||||
}
|
||||
DRW_DBG("\n");
|
||||
|
@ -1432,7 +1432,10 @@ void DRW_MText::parseCode(int code, dxfReader *reader){
|
|||
break;
|
||||
case 71: {
|
||||
// Attachment point
|
||||
Attach a = (Attach)reader->getInt32();
|
||||
Attach a = static_cast<Attach>(reader->getInt32());
|
||||
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||
|
||||
switch(a) {
|
||||
case TopLeft:
|
||||
|
@ -1472,6 +1475,8 @@ void DRW_MText::parseCode(int code, dxfReader *reader){
|
|||
alignH = HRight;
|
||||
break;
|
||||
}
|
||||
|
||||
QT_WARNING_POP
|
||||
} break;
|
||||
case 72:
|
||||
// To prevent redirection to DRW_Text::parseCode.
|
||||
|
@ -1606,7 +1611,7 @@ void DRW_Polyline::parseCode(int code, dxfReader *reader){
|
|||
//0x10 polyline 3D bit 4(8) set
|
||||
//0x1D PFACE bit 5(16) set
|
||||
bool DRW_Polyline::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, NULL, bs);
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, nullptr, bs);
|
||||
if (!ret)
|
||||
return ret;
|
||||
DRW_DBG("\n***************************** parsing polyline *********************************************\n");
|
||||
|
@ -1721,7 +1726,7 @@ void DRW_Vertex::parseCode(int code, dxfReader *reader){
|
|||
//0x0D PFACE
|
||||
//0x0E PFACE FACE
|
||||
bool DRW_Vertex::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs, double el){
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, NULL, bs);
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, nullptr, bs);
|
||||
if (!ret)
|
||||
return ret;
|
||||
DRW_DBG("\n***************************** parsing pline Vertex *********************************************\n");
|
||||
|
@ -2145,7 +2150,7 @@ void DRW_Spline::parseCode(int code, dxfReader *reader){
|
|||
}
|
||||
|
||||
bool DRW_Spline::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, NULL, bs);
|
||||
bool ret = DRW_Entity::parseDwg(version, buf, nullptr, bs);
|
||||
if (!ret)
|
||||
return ret;
|
||||
DRW_DBG("\n***************************** parsing spline *********************************************\n");
|
||||
|
@ -2416,7 +2421,7 @@ void DRW_Dimension::parseCode(int code, dxfReader *reader){
|
|||
break;
|
||||
case 42:
|
||||
actual = reader->getDouble();
|
||||
hasActual = (actual != 0.0);
|
||||
hasActual = not qFuzzyIsNull(actual);
|
||||
break;
|
||||
case 53:
|
||||
rot = reader->getDouble();
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
#include <list>
|
||||
#include <QtGlobal>
|
||||
#include "drw_base.h"
|
||||
|
||||
class dxfReader;
|
||||
|
@ -99,54 +100,87 @@ class DRW_Entity {
|
|||
SETENTFRIENDS
|
||||
public:
|
||||
//initializes default values
|
||||
DRW_Entity() {
|
||||
eType = DRW::UNKNOWN;
|
||||
handle = parentHandle = DRW::NoHandle; //no handle (0)
|
||||
lineType = "BYLAYER";
|
||||
color = DRW::ColorByLayer; // default BYLAYER (256)
|
||||
ltypeScale = 1.0;
|
||||
visible = true;
|
||||
layer = "0";
|
||||
lWeight = DRW_LW_Conv::widthByLayer; // default BYLAYER (dxf -1, dwg 29)
|
||||
space = DRW::ModelSpace; // default ModelSpace (0)
|
||||
haveExtrusion = false;
|
||||
color24 = -1; //default -1 not set
|
||||
numProxyGraph = 0;
|
||||
shadow = DRW::CastAndReceieveShadows;
|
||||
material = DRW::MaterialByLayer;
|
||||
plotStyle = DRW::DefaultPlotStyle;
|
||||
transparency = DRW::Opaque;
|
||||
nextEntLink = prevEntLink = 0;
|
||||
numReactors = xDictFlag = 0;
|
||||
curr = NULL;
|
||||
ownerHandle= false;
|
||||
}
|
||||
DRW_Entity()
|
||||
: eType(DRW::UNKNOWN),
|
||||
handle(DRW::NoHandle),
|
||||
appData(),
|
||||
parentHandle(DRW::NoHandle),
|
||||
space(DRW::ModelSpace),
|
||||
layer("0"),
|
||||
lineType("BYLAYER"),
|
||||
material(DRW::MaterialByLayer),
|
||||
color(DRW::ColorByLayer),
|
||||
lWeight(DRW_LW_Conv::widthByLayer),
|
||||
ltypeScale(1.0),
|
||||
visible(true),
|
||||
numProxyGraph(0),
|
||||
proxyGraphics(),
|
||||
color24(-1),
|
||||
colorName(),
|
||||
transparency(DRW::Opaque),
|
||||
plotStyle(DRW::DefaultPlotStyle),
|
||||
shadow(DRW::CastAndReceieveShadows),
|
||||
haveExtrusion(false),
|
||||
extData(),
|
||||
haveNextLinks(),
|
||||
plotFlags(),
|
||||
ltFlags(),
|
||||
materialFlag(),
|
||||
shadowFlag(),
|
||||
lTypeH(),
|
||||
layerH(),
|
||||
nextEntLink(0),
|
||||
prevEntLink(0),
|
||||
ownerHandle(false),
|
||||
xDictFlag(0),
|
||||
numReactors(0),
|
||||
objSize(),
|
||||
oType(),
|
||||
extAxisX(),
|
||||
extAxisY(),
|
||||
curr(nullptr)
|
||||
{}
|
||||
|
||||
DRW_Entity(const DRW_Entity& e) {
|
||||
eType = e.eType;
|
||||
handle = e.handle;
|
||||
parentHandle = e.parentHandle; //no handle (0)
|
||||
lineType = e.lineType;
|
||||
color = e.color; // default BYLAYER (256)
|
||||
ltypeScale = e.ltypeScale;
|
||||
visible = e.visible;
|
||||
layer = e.layer;
|
||||
lWeight = e.lWeight;
|
||||
space = e.space;
|
||||
haveExtrusion = e.haveExtrusion;
|
||||
color24 = e.color24; //default -1 not set
|
||||
numProxyGraph = e.numProxyGraph;
|
||||
shadow = e.shadow;
|
||||
material = e.material;
|
||||
plotStyle = e.plotStyle;
|
||||
transparency = e.transparency;
|
||||
nextEntLink = e.nextEntLink;
|
||||
prevEntLink = e.prevEntLink;
|
||||
numReactors = e.numReactors;
|
||||
xDictFlag = e.xDictFlag;
|
||||
curr = NULL;
|
||||
ownerHandle= false;
|
||||
// curr = e.curr;
|
||||
DRW_Entity(const DRW_Entity& e)
|
||||
: eType(e.eType),
|
||||
handle(e.handle),
|
||||
appData(),
|
||||
parentHandle(e.parentHandle),
|
||||
space(e.space),
|
||||
layer(e.layer),
|
||||
lineType(e.lineType),
|
||||
material(e.material),
|
||||
color(e.color),
|
||||
lWeight(e.lWeight),
|
||||
ltypeScale(e.ltypeScale),
|
||||
visible(e.visible),
|
||||
numProxyGraph(e.numProxyGraph),
|
||||
proxyGraphics(),
|
||||
color24(e.color24),
|
||||
colorName(),
|
||||
transparency(e.transparency),
|
||||
plotStyle(e.plotStyle),
|
||||
shadow(e.shadow),
|
||||
haveExtrusion(e.haveExtrusion),
|
||||
extData(),
|
||||
haveNextLinks(),
|
||||
plotFlags(),
|
||||
ltFlags(),
|
||||
materialFlag(),
|
||||
shadowFlag(),
|
||||
lTypeH(),
|
||||
layerH(),
|
||||
nextEntLink(e.nextEntLink),
|
||||
prevEntLink(e.prevEntLink),
|
||||
ownerHandle(false),
|
||||
xDictFlag(e.xDictFlag),
|
||||
numReactors(e.numReactors),
|
||||
objSize(),
|
||||
oType(),
|
||||
extAxisX(),
|
||||
extAxisY(),
|
||||
curr(nullptr/*e.curr*/)
|
||||
{
|
||||
for (std::vector<DRW_Variant*>::const_iterator it=e.extData.begin(); it!=e.extData.end(); ++it){
|
||||
extData.push_back(new DRW_Variant(*(*it)));
|
||||
}
|
||||
|
@ -233,6 +267,7 @@ protected: //only for read dwg
|
|||
dint16 oType;
|
||||
|
||||
private:
|
||||
DRW_Entity &operator=(const DRW_Entity &) Q_DECL_EQ_DELETE;
|
||||
DRW_Coord extAxisX;
|
||||
DRW_Coord extAxisY;
|
||||
DRW_Variant* curr;
|
||||
|
@ -247,11 +282,12 @@ private:
|
|||
class DRW_Point : public DRW_Entity {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Point() {
|
||||
DRW_Point()
|
||||
: basePoint(),
|
||||
thickness(0),
|
||||
extPoint(DRW_Coord(0, 0, 1))
|
||||
{
|
||||
eType = DRW::POINT;
|
||||
basePoint.z = extPoint.x = extPoint.y = 0;
|
||||
extPoint.z = 1;
|
||||
thickness = 0;
|
||||
}
|
||||
|
||||
virtual void applyExtrusion(){}
|
||||
|
@ -276,9 +312,10 @@ public:
|
|||
class DRW_Line : public DRW_Point {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Line() {
|
||||
DRW_Line()
|
||||
: secPoint()
|
||||
{
|
||||
eType = DRW::LINE;
|
||||
secPoint.z = 0;
|
||||
}
|
||||
|
||||
virtual void applyExtrusion(){}
|
||||
|
@ -326,7 +363,9 @@ public:
|
|||
class DRW_Circle : public DRW_Point {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Circle() {
|
||||
DRW_Circle()
|
||||
: radious()
|
||||
{
|
||||
eType = DRW::CIRCLE;
|
||||
}
|
||||
|
||||
|
@ -348,9 +387,12 @@ public:
|
|||
class DRW_Arc : public DRW_Circle {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Arc() {
|
||||
DRW_Arc()
|
||||
: staangle(),
|
||||
endangle(),
|
||||
isccw(1)
|
||||
{
|
||||
eType = DRW::ARC;
|
||||
isccw = 1;
|
||||
}
|
||||
|
||||
virtual void applyExtrusion();
|
||||
|
@ -390,9 +432,13 @@ public:
|
|||
class DRW_Ellipse : public DRW_Line {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Ellipse() {
|
||||
DRW_Ellipse()
|
||||
: ratio(),
|
||||
staparam(),
|
||||
endparam(),
|
||||
isccw(1)
|
||||
{
|
||||
eType = DRW::ELLIPSE;
|
||||
isccw = 1;
|
||||
}
|
||||
|
||||
void toPolyline(DRW_Polyline *pol, int parts = 128);
|
||||
|
@ -422,10 +468,11 @@ public:
|
|||
class DRW_Trace : public DRW_Line {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Trace() {
|
||||
DRW_Trace()
|
||||
: thirdPoint(),
|
||||
fourPoint()
|
||||
{
|
||||
eType = DRW::TRACE;
|
||||
thirdPoint.z = 0;
|
||||
fourPoint.z = 0;
|
||||
}
|
||||
|
||||
virtual void applyExtrusion();
|
||||
|
@ -492,9 +539,10 @@ public:
|
|||
AllEdges = 0x0F
|
||||
};
|
||||
|
||||
DRW_3Dface() {
|
||||
DRW_3Dface()
|
||||
: invisibleflag(0)
|
||||
{
|
||||
eType = DRW::E3DFACE;
|
||||
invisibleflag = 0;
|
||||
}
|
||||
|
||||
virtual void applyExtrusion(){}
|
||||
|
@ -508,7 +556,7 @@ public:
|
|||
//! fourth corner in WCS
|
||||
const DRW_Coord & fourthCorner() { return fourPoint; }
|
||||
//! edge visibility flags
|
||||
InvisibleEdgeFlags edgeFlags() { return (InvisibleEdgeFlags)invisibleflag; }
|
||||
InvisibleEdgeFlags edgeFlags() { return static_cast<InvisibleEdgeFlags>(invisibleflag); }
|
||||
|
||||
protected:
|
||||
//! interpret code in dxf reading process or dispatch to inherited class
|
||||
|
@ -529,12 +577,13 @@ public:
|
|||
class DRW_Block : public DRW_Point {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Block() {
|
||||
DRW_Block()
|
||||
: name("*U0"),
|
||||
flags(0),
|
||||
isEnd(false)
|
||||
{
|
||||
eType = DRW::BLOCK;
|
||||
layer = "0";
|
||||
flags = 0;
|
||||
name = "*U0";
|
||||
isEnd = false;
|
||||
}
|
||||
|
||||
virtual void applyExtrusion(){}
|
||||
|
@ -559,16 +608,20 @@ private:
|
|||
class DRW_Insert : public DRW_Point {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Insert() {
|
||||
DRW_Insert()
|
||||
: name(),
|
||||
xscale(1),
|
||||
yscale(1),
|
||||
zscale(1),
|
||||
angle(0),
|
||||
colcount(1),
|
||||
rowcount(1),
|
||||
colspace(0),
|
||||
rowspace(0),
|
||||
blockRecH(),
|
||||
seqendH()
|
||||
{
|
||||
eType = DRW::INSERT;
|
||||
xscale = 1;
|
||||
yscale = 1;
|
||||
zscale = 1;
|
||||
angle = 0;
|
||||
colcount = 1;
|
||||
rowcount = 1;
|
||||
colspace = 0;
|
||||
rowspace = 0;
|
||||
}
|
||||
|
||||
virtual void applyExtrusion(){DRW_Point::applyExtrusion();}
|
||||
|
@ -600,27 +653,33 @@ public: //only for read dwg
|
|||
class DRW_LWPolyline : public DRW_Entity {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_LWPolyline() {
|
||||
DRW_LWPolyline()
|
||||
: vertexnum(),
|
||||
flags(0),
|
||||
width(0.0),
|
||||
elevation(0.0),
|
||||
thickness(0.0),
|
||||
extPoint(DRW_Coord(0, 0, 1)),
|
||||
vertex(nullptr),
|
||||
vertlist()
|
||||
{
|
||||
eType = DRW::LWPOLYLINE;
|
||||
elevation = thickness = width = 0.0;
|
||||
flags = 0;
|
||||
extPoint.x = extPoint.y = 0;
|
||||
extPoint.z = 1;
|
||||
vertex = NULL;
|
||||
}
|
||||
|
||||
DRW_LWPolyline(const DRW_LWPolyline& p):DRW_Entity(p){
|
||||
DRW_LWPolyline(const DRW_LWPolyline& p)
|
||||
: DRW_Entity(p),
|
||||
vertexnum(),
|
||||
flags(p.flags),
|
||||
width(p.width),
|
||||
elevation(p.elevation),
|
||||
thickness(p.thickness),
|
||||
extPoint(p.extPoint),
|
||||
vertex(nullptr),
|
||||
vertlist()
|
||||
{
|
||||
this->eType = DRW::LWPOLYLINE;
|
||||
this->elevation = p.elevation;
|
||||
this->thickness = p.thickness;
|
||||
this->width = p.width;
|
||||
this->flags = p.flags;
|
||||
this->extPoint = p.extPoint;
|
||||
this->vertex = NULL;
|
||||
for (unsigned i=0; i<p.vertlist.size(); i++)// RLZ ok or new
|
||||
this->vertlist.push_back( new DRW_Vertex2D( *(p.vertlist.at(i)) ) );
|
||||
|
||||
this->vertex = NULL;
|
||||
}
|
||||
|
||||
~DRW_LWPolyline() {
|
||||
|
@ -658,6 +717,8 @@ public:
|
|||
DRW_Coord extPoint; /*!< Dir extrusion normal vector, code 210, 220 & 230 */
|
||||
DRW_Vertex2D *vertex; /*!< current vertex to add data */
|
||||
std::vector<DRW_Vertex2D *> vertlist; /*!< vertex list */
|
||||
private:
|
||||
DRW_LWPolyline &operator=(const DRW_LWPolyline &) Q_DECL_EQ_DELETE;
|
||||
};
|
||||
|
||||
//! Class to handle insert entries
|
||||
|
@ -686,15 +747,19 @@ public:
|
|||
HFit /*!< fit into point = 5 (if VAlign==0) */
|
||||
};
|
||||
|
||||
DRW_Text() {
|
||||
DRW_Text()
|
||||
: height(),
|
||||
text(),
|
||||
angle(0),
|
||||
widthscale(1),
|
||||
oblique(0),
|
||||
style("STANDARD"),
|
||||
textgen(0),
|
||||
alignH(HLeft),
|
||||
alignV(VBaseLine),
|
||||
styleH()
|
||||
{
|
||||
eType = DRW::TEXT;
|
||||
angle = 0;
|
||||
widthscale = 1;
|
||||
oblique = 0;
|
||||
style = "STANDARD";
|
||||
textgen = 0;
|
||||
alignH = HLeft;
|
||||
alignV = VBaseLine;
|
||||
}
|
||||
|
||||
virtual void applyExtrusion(){} //RLZ TODO
|
||||
|
@ -737,12 +802,13 @@ public:
|
|||
BottomRight
|
||||
};
|
||||
|
||||
DRW_MText() {
|
||||
DRW_MText()
|
||||
: interlin(1),
|
||||
haveXAxis(false)//if true needed to recalculate angle
|
||||
{
|
||||
eType = DRW::MTEXT;
|
||||
interlin = 1;
|
||||
alignV = (VAlign)TopLeft;
|
||||
alignV = static_cast<VAlign>(TopLeft);
|
||||
textgen = 1;
|
||||
haveXAxis = false; //if true needed to recalculate angle
|
||||
}
|
||||
|
||||
protected:
|
||||
|
@ -764,20 +830,36 @@ private:
|
|||
class DRW_Vertex : public DRW_Point {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Vertex() {
|
||||
DRW_Vertex()
|
||||
: stawidth(0),
|
||||
endwidth(0),
|
||||
bulge(0),
|
||||
flags(0),
|
||||
tgdir(),
|
||||
vindex1(0),
|
||||
vindex2(0),
|
||||
vindex3(0),
|
||||
vindex4(0),
|
||||
identifier(0)
|
||||
{
|
||||
eType = DRW::VERTEX;
|
||||
stawidth = endwidth = bulge = 0;
|
||||
vindex1 = vindex2 = vindex3 = vindex4 = 0;
|
||||
flags = identifier = 0;
|
||||
}
|
||||
DRW_Vertex(double sx, double sy, double sz, double b) {
|
||||
stawidth = endwidth = 0;
|
||||
vindex1 = vindex2 = vindex3 = vindex4 = 0;
|
||||
flags = identifier = 0;
|
||||
|
||||
DRW_Vertex(double sx, double sy, double sz, double b)
|
||||
: stawidth(0),
|
||||
endwidth(0),
|
||||
bulge(b),
|
||||
flags(0),
|
||||
tgdir(),
|
||||
vindex1(0),
|
||||
vindex2(0),
|
||||
vindex3(0),
|
||||
vindex4(0),
|
||||
identifier(0)
|
||||
{
|
||||
basePoint.x = sx;
|
||||
basePoint.y =sy;
|
||||
basePoint.z =sz;
|
||||
bulge = b;
|
||||
basePoint.y = sy;
|
||||
basePoint.z = sz;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
@ -808,23 +890,41 @@ public:
|
|||
class DRW_Polyline : public DRW_Point {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Polyline() {
|
||||
DRW_Polyline()
|
||||
: flags(0),
|
||||
defstawidth(0.0),
|
||||
defendwidth(0.0),
|
||||
vertexcount(0),
|
||||
facecount(0),
|
||||
smoothM(0),
|
||||
smoothN(0),
|
||||
curvetype(0),
|
||||
vertlist(),
|
||||
hadlesList(),
|
||||
firstEH(),
|
||||
lastEH(),
|
||||
seqEndH()
|
||||
{
|
||||
eType = DRW::POLYLINE;
|
||||
defstawidth = defendwidth = 0.0;
|
||||
basePoint.x = basePoint.y = 0.0;
|
||||
flags = vertexcount = facecount = 0;
|
||||
smoothM = smoothN = curvetype = 0;
|
||||
}
|
||||
|
||||
DRW_Polyline(const DRW_Polyline& p) : DRW_Point(p) {
|
||||
flags = p.flags ;
|
||||
defstawidth = p.defstawidth;
|
||||
defendwidth = p.defendwidth;
|
||||
vertexcount = p.vertexcount;
|
||||
facecount = p.facecount ;
|
||||
smoothM = p.smoothM ;
|
||||
smoothN = p.smoothN ;
|
||||
curvetype = p.curvetype ;
|
||||
DRW_Polyline(const DRW_Polyline& p)
|
||||
: DRW_Point(p),
|
||||
flags(p.flags),
|
||||
defstawidth(p.defstawidth),
|
||||
defendwidth(p.defendwidth),
|
||||
vertexcount(p.vertexcount),
|
||||
facecount(p.facecount),
|
||||
smoothM(p.smoothM),
|
||||
smoothN(p.smoothN),
|
||||
curvetype(p.curvetype),
|
||||
vertlist(),
|
||||
hadlesList(),
|
||||
firstEH(),
|
||||
lastEH(),
|
||||
seqEndH()
|
||||
{
|
||||
for (unsigned i=0; i<p.vertlist.size(); i++)// RLZ ok or new
|
||||
this->vertlist.push_back( new DRW_Vertex( *(p.vertlist.at(i)) ) );
|
||||
}
|
||||
|
@ -878,26 +978,49 @@ private:
|
|||
class DRW_Spline : public DRW_Entity {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Spline() {
|
||||
DRW_Spline()
|
||||
: normalVec(),
|
||||
tgStart(),
|
||||
tgEnd(),
|
||||
flags(0),
|
||||
degree(),
|
||||
nknots(0),
|
||||
ncontrol(0),
|
||||
nfit(0),
|
||||
tolknot(0.0000001),
|
||||
tolcontrol(0.0000001),
|
||||
tolfit(0.0000001),
|
||||
knotslist(),
|
||||
weightlist(),
|
||||
controllist(),
|
||||
fitlist(),
|
||||
controlpoint(),
|
||||
fitpoint()
|
||||
{
|
||||
eType = DRW::SPLINE;
|
||||
flags = nknots = ncontrol = nfit = 0;
|
||||
tolknot = tolcontrol = tolfit = 0.0000001;
|
||||
|
||||
}
|
||||
|
||||
DRW_Spline(const DRW_Spline& p):DRW_Entity(p){
|
||||
DRW_Spline(const DRW_Spline& p)
|
||||
: DRW_Entity(p),
|
||||
normalVec(p.normalVec),
|
||||
tgStart(p.tgStart),
|
||||
tgEnd(p.tgEnd),
|
||||
flags(p.flags),
|
||||
degree(p.degree),
|
||||
nknots(p.nknots),
|
||||
ncontrol(p.ncontrol),
|
||||
nfit(p.nfit),
|
||||
tolknot(p.tolknot),
|
||||
tolcontrol(p.tolcontrol),
|
||||
tolfit(p.tolfit),
|
||||
knotslist(),
|
||||
weightlist(),
|
||||
controllist(),
|
||||
fitlist(),
|
||||
controlpoint(),
|
||||
fitpoint()
|
||||
{
|
||||
eType = DRW::SPLINE;
|
||||
normalVec = p.normalVec ;
|
||||
tgStart = p.tgStart ;
|
||||
tgEnd = p.tgEnd ;
|
||||
flags = p.flags ;
|
||||
degree = p.degree ;
|
||||
nknots = p.nknots ;
|
||||
ncontrol = p.ncontrol ;
|
||||
nfit = p.nfit ;
|
||||
tolknot = p.tolknot ;
|
||||
tolcontrol = p.tolcontrol;
|
||||
tolfit = p.tolfit ;
|
||||
|
||||
for(double v : p.knotslist) knotslist.push_back(v);
|
||||
for(double v : p.weightlist) weightlist.push_back(v);
|
||||
|
@ -943,6 +1066,7 @@ public:
|
|||
std::vector<DRW_Coord *> fitlist; /*!< fit points list, code 11, 21 & 31 */
|
||||
|
||||
private:
|
||||
DRW_Spline &operator=(const DRW_Spline &) Q_DECL_EQ_DELETE;
|
||||
DRW_Coord *controlpoint; /*!< current control point to add data */
|
||||
DRW_Coord *fitpoint; /*!< current fit point to add data */
|
||||
};
|
||||
|
@ -954,10 +1078,11 @@ private:
|
|||
*/
|
||||
class DRW_HatchLoop {
|
||||
public:
|
||||
DRW_HatchLoop(int t) {
|
||||
type = t;
|
||||
numedges = 0;
|
||||
}
|
||||
DRW_HatchLoop(int t)
|
||||
: type(t),
|
||||
numedges(0),
|
||||
objlist()
|
||||
{}
|
||||
|
||||
~DRW_HatchLoop() {
|
||||
// for(DRW_LWPolyline *item : pollist) delete item;
|
||||
|
@ -965,7 +1090,7 @@ public:
|
|||
}
|
||||
|
||||
void update() {
|
||||
numedges = (int)objlist.size();
|
||||
numedges = static_cast<int>(objlist.size());
|
||||
}
|
||||
|
||||
public:
|
||||
|
@ -985,14 +1110,30 @@ public:
|
|||
class DRW_Hatch : public DRW_Point {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Hatch() {
|
||||
DRW_Hatch()
|
||||
: name(),
|
||||
solid(1),
|
||||
associative(0),
|
||||
hstyle(0),
|
||||
hpattern(1),
|
||||
doubleflag(0),
|
||||
loopsnum(0),
|
||||
angle(0.0),
|
||||
scale(0.0),
|
||||
deflines(0),
|
||||
looplist(),
|
||||
loop(nullptr),
|
||||
line(),
|
||||
arc(),
|
||||
ellipse(),
|
||||
spline(),
|
||||
pline(),
|
||||
pt(),
|
||||
plvert(),
|
||||
ispol()
|
||||
{
|
||||
eType = DRW::HATCH;
|
||||
angle = scale = 0.0;
|
||||
basePoint.x = basePoint.y = basePoint.z = 0.0;
|
||||
loopsnum = hstyle = associative = 0;
|
||||
solid = hpattern = 1;
|
||||
deflines = doubleflag = 0;
|
||||
loop = NULL;
|
||||
clearEntities();
|
||||
}
|
||||
|
||||
|
@ -1025,13 +1166,14 @@ public:
|
|||
std::vector<DRW_HatchLoop *> looplist; /*!< polyline list */
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(DRW_Hatch)
|
||||
void clearEntities(){
|
||||
pt = line = NULL;
|
||||
pline = NULL;
|
||||
arc = NULL;
|
||||
ellipse = NULL;
|
||||
spline = NULL;
|
||||
plvert = NULL;
|
||||
pt = line = nullptr;
|
||||
pline = nullptr;
|
||||
arc = nullptr;
|
||||
ellipse = nullptr;
|
||||
spline = nullptr;
|
||||
plvert = nullptr;
|
||||
}
|
||||
|
||||
void addLine() {
|
||||
|
@ -1061,7 +1203,7 @@ private:
|
|||
void addSpline() {
|
||||
clearEntities();
|
||||
if (loop) {
|
||||
pt = NULL;
|
||||
pt = nullptr;
|
||||
spline = new DRW_Spline;
|
||||
loop->objlist.push_back(spline);
|
||||
}
|
||||
|
@ -1086,10 +1228,18 @@ private:
|
|||
class DRW_Image : public DRW_Line {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Image() {
|
||||
DRW_Image()
|
||||
: ref(),
|
||||
vVector(),
|
||||
sizeu(),
|
||||
sizev(),
|
||||
dz(),
|
||||
clip(0),
|
||||
brightness(50),
|
||||
contrast(50),
|
||||
fade(0)
|
||||
{
|
||||
eType = DRW::IMAGE;
|
||||
fade = clip = 0;
|
||||
brightness = contrast = 50;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
@ -1121,48 +1271,66 @@ public:
|
|||
class DRW_Dimension : public DRW_Entity {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Dimension() {
|
||||
DRW_Dimension()
|
||||
: type(0),
|
||||
name(),
|
||||
defPoint(),
|
||||
textPoint(),
|
||||
text(),
|
||||
style("STANDARD"),
|
||||
align(5),
|
||||
linesty(1),
|
||||
linefactor(1.0),
|
||||
rot(0.0),
|
||||
extPoint(DRW_Coord(0, 0, 1.0)),
|
||||
hdir(),
|
||||
clonePoint(),
|
||||
def1(),
|
||||
def2(),
|
||||
angle(0.0),
|
||||
oblique(0.0),
|
||||
circlePoint(),
|
||||
arcPoint(),
|
||||
length(0.0),
|
||||
hasActual(false),
|
||||
actual(0.0),
|
||||
dimStyleH(),
|
||||
blockH()
|
||||
{
|
||||
eType = DRW::DIMENSION;
|
||||
type = 0;
|
||||
linesty = 1;
|
||||
linefactor = extPoint.z = 1.0;
|
||||
angle = oblique = rot = 0.0;
|
||||
align = 5;
|
||||
style = "STANDARD";
|
||||
defPoint.z = extPoint.x = extPoint.y = 0;
|
||||
textPoint.z = rot = 0;
|
||||
clonePoint.x = clonePoint.y = clonePoint.z = 0;
|
||||
length = 0.0;
|
||||
hasActual = false;
|
||||
actual = 0.0;
|
||||
}
|
||||
|
||||
DRW_Dimension(const DRW_Dimension& d): DRW_Entity(d) {
|
||||
DRW_Dimension(const DRW_Dimension& d)
|
||||
: DRW_Entity(d),
|
||||
type(d.type),
|
||||
name(d.name),
|
||||
defPoint(d.defPoint),
|
||||
textPoint(d.textPoint),
|
||||
text(d.text),
|
||||
style(d.style),
|
||||
align(d.align),
|
||||
linesty(d.linesty),
|
||||
linefactor(d.linefactor),
|
||||
rot(d.rot),
|
||||
extPoint(d.extPoint),
|
||||
hdir(),
|
||||
clonePoint(d.clonePoint),
|
||||
def1(d.def1),
|
||||
def2(d.def2),
|
||||
angle(d.angle),
|
||||
oblique(d.oblique),
|
||||
circlePoint(d.circlePoint),
|
||||
arcPoint(d.arcPoint),
|
||||
length(d.length),
|
||||
hasActual(d.hasActual),
|
||||
actual(d.actual),
|
||||
dimStyleH(),
|
||||
blockH()
|
||||
{
|
||||
eType = DRW::DIMENSION;
|
||||
type =d.type;
|
||||
name = d.name;
|
||||
defPoint = d.defPoint;
|
||||
textPoint = d.textPoint;
|
||||
text = d.text;
|
||||
style = d.style;
|
||||
align = d.align;
|
||||
linesty = d.linesty;
|
||||
linefactor = d.linefactor;
|
||||
rot = d.rot;
|
||||
extPoint = d.extPoint;
|
||||
clonePoint = d.clonePoint;
|
||||
def1 = d.def1;
|
||||
def2 = d.def2;
|
||||
angle = d.angle;
|
||||
oblique = d.oblique;
|
||||
arcPoint = d.arcPoint;
|
||||
circlePoint = d.circlePoint;
|
||||
length = d.length;
|
||||
hasActual = d.hasActual;
|
||||
actual = d.actual;
|
||||
//RLZ needed a def value for this: hdir = ???
|
||||
}
|
||||
virtual ~DRW_Dimension() {}
|
||||
virtual ~DRW_Dimension() = default;
|
||||
|
||||
virtual void applyExtrusion(){}
|
||||
|
||||
|
@ -1451,13 +1619,28 @@ protected:
|
|||
class DRW_Leader : public DRW_Entity {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Leader() {
|
||||
DRW_Leader()
|
||||
: style(),
|
||||
arrow(1),
|
||||
leadertype(0),
|
||||
flag(3),
|
||||
hookline(),
|
||||
hookflag(0),
|
||||
textheight(),
|
||||
textwidth(),
|
||||
vertnum(0),
|
||||
coloruse(),
|
||||
annotHandle(),
|
||||
extrusionPoint(DRW_Coord(0, 0, 1.0)),
|
||||
horizdir(),
|
||||
offsetblock(),
|
||||
offsettext(),
|
||||
vertexlist(),
|
||||
vertexpoint(),
|
||||
dimStyleH(),
|
||||
AnnotH()
|
||||
{
|
||||
eType = DRW::LEADER;
|
||||
flag = 3;
|
||||
hookflag = vertnum = leadertype = 0;
|
||||
extrusionPoint.x = extrusionPoint.y = 0.0;
|
||||
arrow = 1;
|
||||
extrusionPoint.z = 1.0;
|
||||
}
|
||||
~DRW_Leader() {
|
||||
for(DRW_Coord *item : vertexlist) delete item;
|
||||
|
@ -1489,6 +1672,7 @@ public:
|
|||
std::vector<DRW_Coord *> vertexlist; /*!< vertex points list, code 10, 20 & 30 */
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(DRW_Leader)
|
||||
DRW_Coord *vertexpoint; /*!< current control point to add data */
|
||||
dwgHandle dimStyleH;
|
||||
dwgHandle AnnotH;
|
||||
|
@ -1502,13 +1686,28 @@ private:
|
|||
class DRW_Viewport : public DRW_Point {
|
||||
SETENTFRIENDS
|
||||
public:
|
||||
DRW_Viewport() {
|
||||
DRW_Viewport()
|
||||
: pswidth(205),
|
||||
psheight(156),
|
||||
vpstatus(0),
|
||||
vpID(),
|
||||
centerPX(128.5),
|
||||
centerPY(97.5),
|
||||
snapPX(),
|
||||
snapPY(),
|
||||
snapSpPX(),
|
||||
snapSpPY(),
|
||||
viewDir(),
|
||||
viewTarget(),
|
||||
viewLength(),
|
||||
frontClip(),
|
||||
backClip(),
|
||||
viewHeight(),
|
||||
snapAngle(),
|
||||
twistAngle(),
|
||||
frozenLyCount()
|
||||
{
|
||||
eType = DRW::VIEWPORT;
|
||||
vpstatus = 0;
|
||||
pswidth = 205;
|
||||
psheight = 156;
|
||||
centerPX = 128.5;
|
||||
centerPY = 97.5;
|
||||
}
|
||||
|
||||
virtual void applyExtrusion(){}
|
||||
|
|
|
@ -16,11 +16,23 @@
|
|||
#include "intern/drw_dbg.h"
|
||||
#include "intern/dwgbuffer.h"
|
||||
|
||||
DRW_Header::DRW_Header() {
|
||||
linetypeCtrl = layerCtrl = styleCtrl = dimstyleCtrl = appidCtrl = 0;
|
||||
blockCtrl = viewCtrl = ucsCtrl = vportCtrl = vpEntHeaderCtrl = 0;
|
||||
version = DRW::AC1021;
|
||||
}
|
||||
DRW_Header::DRW_Header()
|
||||
: vars(),
|
||||
comments(),
|
||||
name(),
|
||||
curr(),
|
||||
version(DRW::AC1021),
|
||||
linetypeCtrl(0),
|
||||
layerCtrl(0),
|
||||
styleCtrl(0),
|
||||
dimstyleCtrl(0),
|
||||
appidCtrl(0),
|
||||
blockCtrl(0),
|
||||
viewCtrl(0),
|
||||
ucsCtrl(0),
|
||||
vportCtrl(0),
|
||||
vpEntHeaderCtrl(0)
|
||||
{}
|
||||
|
||||
void DRW_Header::addComment(std::string c){
|
||||
if (!comments.empty())
|
||||
|
|
|
@ -35,24 +35,42 @@ class DRW_Header {
|
|||
SETHDRFRIENDS
|
||||
public:
|
||||
DRW_Header();
|
||||
|
||||
~DRW_Header() {
|
||||
clearVars();
|
||||
}
|
||||
|
||||
DRW_Header(const DRW_Header& h){
|
||||
this->version = h.version;
|
||||
this->comments = h.comments;
|
||||
for (std::map<std::string,DRW_Variant*>::const_iterator it=h.vars.begin(); it!=h.vars.end(); ++it){
|
||||
DRW_Header(const DRW_Header& h)
|
||||
: vars(),
|
||||
comments(h.comments),
|
||||
name(),
|
||||
curr(nullptr),
|
||||
version(h.version),
|
||||
linetypeCtrl(),
|
||||
layerCtrl(),
|
||||
styleCtrl(),
|
||||
dimstyleCtrl(),
|
||||
appidCtrl(),
|
||||
blockCtrl(),
|
||||
viewCtrl(),
|
||||
ucsCtrl(),
|
||||
vportCtrl(),
|
||||
vpEntHeaderCtrl()
|
||||
{
|
||||
for (std::map<std::string,DRW_Variant*>::const_iterator it=h.vars.begin(); it!=h.vars.end(); ++it)
|
||||
{
|
||||
this->vars[it->first] = new DRW_Variant( *(it->second) );
|
||||
}
|
||||
this->curr = NULL;
|
||||
}
|
||||
DRW_Header& operator=(const DRW_Header &h) {
|
||||
if(this != &h) {
|
||||
DRW_Header& operator=(const DRW_Header &h)
|
||||
{
|
||||
if(this != &h)
|
||||
{
|
||||
clearVars();
|
||||
this->version = h.version;
|
||||
this->comments = h.comments;
|
||||
for (std::map<std::string,DRW_Variant*>::const_iterator it=h.vars.begin(); it!=h.vars.end(); ++it){
|
||||
for (std::map<std::string,DRW_Variant*>::const_iterator it=h.vars.begin(); it!=h.vars.end(); ++it)
|
||||
{
|
||||
this->vars[it->first] = new DRW_Variant( *(it->second) );
|
||||
}
|
||||
}
|
||||
|
@ -75,7 +93,8 @@ private:
|
|||
bool getInt(std::string key, int *varInt);
|
||||
bool getStr(std::string key, std::string *varStr);
|
||||
bool getCoord(std::string key, DRW_Coord *varStr);
|
||||
void clearVars(){
|
||||
void clearVars()
|
||||
{
|
||||
for (std::map<std::string,DRW_Variant*>::iterator it=vars.begin(); it!=vars.end(); ++it)
|
||||
delete it->second;
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ void DRW_TableEntry::parseCode(int code, dxfReader *reader){
|
|||
case 1033:
|
||||
if (curr)
|
||||
curr->setCoordZ(reader->getDouble());
|
||||
curr=NULL;
|
||||
curr=nullptr;
|
||||
break;
|
||||
case 1040:
|
||||
case 1041:
|
||||
|
@ -95,13 +95,14 @@ DRW_DBG("\n***************************** parsing table entry *******************
|
|||
DRW_DBG(" Object size: "); DRW_DBG(objSize); DRW_DBG("\n");
|
||||
}
|
||||
if (version > DRW::AC1021) {//2010+
|
||||
duint32 ms = buf->size();
|
||||
duint32 ms =static_cast<duint32>(buf->size());
|
||||
objSize = ms*8 - bs;
|
||||
DRW_DBG(" Object size: "); DRW_DBG(objSize); DRW_DBG("\n");
|
||||
}
|
||||
if (strBuf != NULL && version > DRW::AC1018) {//2007+
|
||||
strBuf->moveBitPos(objSize-1);
|
||||
DRW_DBG(" strBuf strbit pos 2007: "); DRW_DBG(strBuf->getPosition()); DRW_DBG(" strBuf bpos 2007: "); DRW_DBG(strBuf->getBitPos()); DRW_DBG("\n");
|
||||
DRW_DBG(" strBuf strbit pos 2007: "); DRW_DBG(strBuf->getPosition()); DRW_DBG(" strBuf bpos 2007: ");
|
||||
DRW_DBG(strBuf->getBitPos()); DRW_DBG("\n");
|
||||
if (strBuf->getBit() == 1){
|
||||
DRW_DBG("DRW_TableEntry::parseDwg string bit is 1\n");
|
||||
strBuf->moveBitPos(-17);
|
||||
|
@ -111,7 +112,7 @@ DRW_DBG("\n***************************** parsing table entry *******************
|
|||
DRW_DBG("\nDRW_TableEntry::parseDwg string 0x8000 bit is set");
|
||||
strBuf->moveBitPos(-33);//RLZ pending to verify
|
||||
duint16 hiSize = strBuf->getRawShort16();
|
||||
strDataSize = ((strDataSize&0x7fff) | (hiSize<<15));
|
||||
strDataSize = static_cast<duint16>((strDataSize&0x7fff) | (hiSize<<15));
|
||||
}
|
||||
strBuf->moveBitPos( -strDataSize -16); //-14
|
||||
DRW_DBG("strBuf start strDataSize pos 2007: "); DRW_DBG(strBuf->getPosition()); DRW_DBG(" strBuf bpos 2007: "); DRW_DBG(strBuf->getBitPos()); DRW_DBG("\n");
|
||||
|
@ -132,7 +133,7 @@ DRW_DBG("\n***************************** parsing table entry *******************
|
|||
duint8 *tmpExtData = new duint8[extDataSize];
|
||||
buf->getBytes(tmpExtData, extDataSize);
|
||||
dwgBuffer tmpExtDataBuf(tmpExtData, extDataSize, buf->decoder);
|
||||
int pos = tmpExtDataBuf.getPosition();
|
||||
int pos = static_cast<int>(tmpExtDataBuf.getPosition());
|
||||
int bpos = tmpExtDataBuf.getBitPos();
|
||||
DRW_DBG("ext data pos: "); DRW_DBG(pos); DRW_DBG("."); DRW_DBG(bpos); DRW_DBG("\n");
|
||||
duint8 dxfCode = tmpExtDataBuf.getRawChar8();
|
||||
|
@ -458,7 +459,7 @@ void DRW_LType::parseCode(int code, dxfReader *reader){
|
|||
/*TODO: control max length permited */
|
||||
void DRW_LType::update(){
|
||||
double d =0;
|
||||
size = (int)path.size();
|
||||
size = static_cast<int>(path.size());
|
||||
for (int i = 0; i< size; i++){
|
||||
d += fabs(path.at(i));
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <QtGlobal>
|
||||
#include "drw_base.h"
|
||||
|
||||
class dxfReader;
|
||||
|
@ -56,13 +57,19 @@ namespace DRW {
|
|||
class DRW_TableEntry {
|
||||
public:
|
||||
//initializes default values
|
||||
DRW_TableEntry() {
|
||||
tType = DRW::UNKNOWNT;
|
||||
flags = 0;
|
||||
numReactors = xDictFlag = 0;
|
||||
parentHandle = 0;
|
||||
curr = NULL;
|
||||
}
|
||||
DRW_TableEntry()
|
||||
: tType(DRW::UNKNOWNT),
|
||||
handle(),
|
||||
parentHandle(0),
|
||||
name(),
|
||||
flags(0),
|
||||
extData(),
|
||||
curr(nullptr),
|
||||
oType(),
|
||||
xDictFlag(0),
|
||||
numReactors(0),
|
||||
objSize()
|
||||
{}
|
||||
|
||||
virtual~DRW_TableEntry() {
|
||||
for (std::vector<DRW_Variant*>::iterator it=extData.begin(); it!=extData.end(); ++it)
|
||||
|
@ -71,15 +78,19 @@ public:
|
|||
extData.clear();
|
||||
}
|
||||
|
||||
DRW_TableEntry(const DRW_TableEntry& e) {
|
||||
tType = e.tType;
|
||||
handle = e.handle;
|
||||
parentHandle = e.parentHandle;
|
||||
name = e.name;
|
||||
flags = e.flags;
|
||||
numReactors = e.numReactors;
|
||||
xDictFlag = e.xDictFlag;
|
||||
curr = e.curr;
|
||||
DRW_TableEntry(const DRW_TableEntry& e)
|
||||
: tType(e.tType),
|
||||
handle(e.handle),
|
||||
parentHandle(e.parentHandle),
|
||||
name(e.name),
|
||||
flags(e.flags),
|
||||
extData(),
|
||||
curr(e.curr),
|
||||
oType(),
|
||||
xDictFlag(e.xDictFlag),
|
||||
numReactors(e.numReactors),
|
||||
objSize()
|
||||
{
|
||||
for (std::vector<DRW_Variant*>::const_iterator it=e.extData.begin(); it!=e.extData.end(); ++it){
|
||||
extData.push_back(new DRW_Variant(*(*it)));
|
||||
}
|
||||
|
@ -90,7 +101,7 @@ protected:
|
|||
virtual bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0) = 0;
|
||||
bool parseDwg(DRW::Version version, dwgBuffer *buf, dwgBuffer* strBuf, duint32 bs=0);
|
||||
void reset(){
|
||||
flags =0;
|
||||
flags = 0;
|
||||
for (std::vector<DRW_Variant*>::iterator it=extData.begin(); it!=extData.end(); ++it)
|
||||
delete *it;
|
||||
extData.clear();
|
||||
|
@ -105,6 +116,7 @@ public:
|
|||
std::vector<DRW_Variant*> extData; /*!< FIFO list of extended data, codes 1000 to 1071*/
|
||||
|
||||
private:
|
||||
DRW_TableEntry &operator=(const DRW_TableEntry &) Q_DECL_EQ_DELETE;
|
||||
DRW_Variant* curr;
|
||||
|
||||
//***** dwg parse ********/
|
||||
|
@ -124,7 +136,76 @@ protected:
|
|||
class DRW_Dimstyle : public DRW_TableEntry {
|
||||
SETOBJFRIENDS
|
||||
public:
|
||||
DRW_Dimstyle() { reset();}
|
||||
DRW_Dimstyle()
|
||||
: dimpost(),
|
||||
dimapost(),
|
||||
dimblk(),
|
||||
dimblk1(),
|
||||
dimblk2(),
|
||||
dimscale(),
|
||||
dimasz(),
|
||||
dimexo(),
|
||||
dimdli(),
|
||||
dimexe(),
|
||||
dimrnd(),
|
||||
dimdle(),
|
||||
dimtp(),
|
||||
dimtm(),
|
||||
dimfxl(),
|
||||
dimtxt(),
|
||||
dimcen(),
|
||||
dimtsz(),
|
||||
dimaltf(),
|
||||
dimlfac(),
|
||||
dimtvp(),
|
||||
dimtfac(),
|
||||
dimgap(),
|
||||
dimaltrnd(),
|
||||
dimtol(),
|
||||
dimlim(),
|
||||
dimtih(),
|
||||
dimtoh(),
|
||||
dimse1(),
|
||||
dimse2(),
|
||||
dimtad(),
|
||||
dimzin(),
|
||||
dimazin(),
|
||||
dimalt(),
|
||||
dimaltd(),
|
||||
dimtofl(),
|
||||
dimsah(),
|
||||
dimtix(),
|
||||
dimsoxd(),
|
||||
dimclrd(),
|
||||
dimclre(),
|
||||
dimclrt(),
|
||||
dimadec(),
|
||||
dimunit(),
|
||||
dimdec(),
|
||||
dimtdec(),
|
||||
dimaltu(),
|
||||
dimalttd(),
|
||||
dimaunit(),
|
||||
dimfrac(),
|
||||
dimlunit(),
|
||||
dimdsep(),
|
||||
dimtmove(),
|
||||
dimjust(),
|
||||
dimsd1(),
|
||||
dimsd2(),
|
||||
dimtolj(),
|
||||
dimtzin(),
|
||||
dimaltz(),
|
||||
dimaltttz(),
|
||||
dimfit(),
|
||||
dimupt(),
|
||||
dimatfit(),
|
||||
dimfxlon(),
|
||||
dimtxsty(),
|
||||
dimldrblk(),
|
||||
dimlwd(),
|
||||
dimlwe()
|
||||
{ reset();}
|
||||
|
||||
void reset(){
|
||||
tType = DRW::DIMSTYLE;
|
||||
|
@ -243,7 +324,13 @@ public:
|
|||
class DRW_LType : public DRW_TableEntry {
|
||||
SETOBJFRIENDS
|
||||
public:
|
||||
DRW_LType() { reset();}
|
||||
DRW_LType()
|
||||
: desc(),
|
||||
size(),
|
||||
length(),
|
||||
path(),
|
||||
pathIdx()
|
||||
{ reset();}
|
||||
|
||||
void reset(){
|
||||
tType = DRW::LTYPE;
|
||||
|
@ -279,7 +366,16 @@ private:
|
|||
class DRW_Layer : public DRW_TableEntry {
|
||||
SETOBJFRIENDS
|
||||
public:
|
||||
DRW_Layer() { reset();}
|
||||
DRW_Layer()
|
||||
: lineType(),
|
||||
color(),
|
||||
color24(),
|
||||
plotF(),
|
||||
lWeight(),
|
||||
handlePlotS(),
|
||||
handleMaterialS(),
|
||||
lTypeH()
|
||||
{ reset();}
|
||||
|
||||
void reset() {
|
||||
tType = DRW::LAYER;
|
||||
|
@ -315,7 +411,16 @@ public:
|
|||
class DRW_Block_Record : public DRW_TableEntry {
|
||||
SETOBJFRIENDS
|
||||
public:
|
||||
DRW_Block_Record() { reset();}
|
||||
DRW_Block_Record()
|
||||
: insUnits(),
|
||||
basePoint(),
|
||||
block(),
|
||||
endBlock(),
|
||||
firstEH(),
|
||||
lastEH(),
|
||||
entMap()
|
||||
{ reset();}
|
||||
|
||||
void reset() {
|
||||
tType = DRW::BLOCK_RECORD;
|
||||
flags = 0;
|
||||
|
@ -349,7 +454,16 @@ private:
|
|||
class DRW_Textstyle : public DRW_TableEntry {
|
||||
SETOBJFRIENDS
|
||||
public:
|
||||
DRW_Textstyle() { reset();}
|
||||
DRW_Textstyle()
|
||||
: height(),
|
||||
width(),
|
||||
oblique(),
|
||||
genFlag(),
|
||||
lastHeight(),
|
||||
font(),
|
||||
bigFont(),
|
||||
fontFamily()
|
||||
{reset();}
|
||||
|
||||
void reset(){
|
||||
tType = DRW::STYLE;
|
||||
|
@ -384,7 +498,32 @@ public:
|
|||
class DRW_Vport : public DRW_TableEntry {
|
||||
SETOBJFRIENDS
|
||||
public:
|
||||
DRW_Vport() { reset();}
|
||||
DRW_Vport()
|
||||
: lowerLeft(),
|
||||
UpperRight(),
|
||||
center(),
|
||||
snapBase(),
|
||||
snapSpacing(),
|
||||
gridSpacing(),
|
||||
viewDir(),
|
||||
viewTarget(),
|
||||
height(),
|
||||
ratio(),
|
||||
lensHeight(),
|
||||
frontClip(),
|
||||
backClip(),
|
||||
snapAngle(),
|
||||
twistAngle(),
|
||||
viewMode(),
|
||||
circleZoom(),
|
||||
fastZoom(),
|
||||
ucsIcon(),
|
||||
snap(),
|
||||
grid(),
|
||||
snapStyle(),
|
||||
snapIsopair(),
|
||||
gridBehavior()
|
||||
{ reset();}
|
||||
|
||||
void reset(){
|
||||
tType = DRW::VPORT;
|
||||
|
@ -452,7 +591,17 @@ public:
|
|||
class DRW_ImageDef : public DRW_TableEntry {//
|
||||
SETOBJFRIENDS
|
||||
public:
|
||||
DRW_ImageDef() {
|
||||
DRW_ImageDef()
|
||||
: name(),
|
||||
imgVersion(),
|
||||
u(),
|
||||
v(),
|
||||
up(),
|
||||
vp(),
|
||||
loaded(),
|
||||
resolution(),
|
||||
reactors()
|
||||
{
|
||||
reset();
|
||||
}
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ public:
|
|||
virtual void printHL(int c, int s, int h);
|
||||
virtual void printPT(double x, double y, double z);
|
||||
print_debug();
|
||||
virtual ~print_debug(){}
|
||||
virtual ~print_debug() = default;
|
||||
private:
|
||||
std::ios_base::fmtflags flags;
|
||||
};
|
||||
|
@ -55,11 +55,11 @@ DRW_dbg *DRW_dbg::getInstance(){
|
|||
return instance;
|
||||
}
|
||||
|
||||
DRW_dbg::DRW_dbg(){
|
||||
level = NONE;
|
||||
prClass = new print_none;
|
||||
flags = std::cerr.flags();
|
||||
}
|
||||
DRW_dbg::DRW_dbg()
|
||||
: level(NONE),
|
||||
flags(std::cerr.flags()),
|
||||
prClass(new print_none)
|
||||
{}
|
||||
|
||||
void DRW_dbg::setLevel(LEVEL lvl){
|
||||
level = lvl;
|
||||
|
@ -120,9 +120,9 @@ void DRW_dbg::printPT(double x, double y, double z){
|
|||
prClass->printPT(x, y, z);
|
||||
}
|
||||
|
||||
print_debug::print_debug(){
|
||||
flags = std::cerr.flags();
|
||||
}
|
||||
print_debug::print_debug()
|
||||
: flags(std::cerr.flags())
|
||||
{}
|
||||
|
||||
void print_debug::printS(std::string s){
|
||||
std::cerr << s;
|
||||
|
|
|
@ -6,10 +6,11 @@
|
|||
#include <QTextCodec>
|
||||
#include "../drw_base.h"
|
||||
|
||||
DRW_TextCodec::DRW_TextCodec() {
|
||||
version = DRW::AC1021;
|
||||
conv = nullptr;
|
||||
}
|
||||
DRW_TextCodec::DRW_TextCodec()
|
||||
: version(DRW::AC1021),
|
||||
cp(),
|
||||
conv(nullptr)
|
||||
{}
|
||||
|
||||
void DRW_TextCodec::setVersion(int v, bool dxfFormat){
|
||||
if (v == DRW::AC1009 || v == DRW::AC1006) {
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#define DRW_TEXTCODEC_H
|
||||
|
||||
#include <string>
|
||||
#include <QtGlobal>
|
||||
|
||||
class QTextCodec;
|
||||
|
||||
|
@ -22,6 +23,7 @@ private:
|
|||
std::string correctCodePage(const std::string& s);
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(DRW_TextCodec)
|
||||
int version;
|
||||
std::string cp;
|
||||
QTextCodec *conv;
|
||||
|
|
|
@ -144,32 +144,40 @@ bool dwgCharStream::read(duint8* s, duint64 n){
|
|||
return true;
|
||||
}
|
||||
|
||||
dwgBuffer::dwgBuffer(duint8 *buf, int size, DRW_TextCodec *dc){
|
||||
filestr = new dwgCharStream(buf, size);
|
||||
decoder = dc;
|
||||
maxSize = size;
|
||||
bitPos = 0;
|
||||
}
|
||||
dwgBuffer::dwgBuffer(duint8 *buf, int size, DRW_TextCodec *dc)
|
||||
: decoder(dc),
|
||||
filestr(new dwgCharStream(buf, size)),
|
||||
maxSize(size),
|
||||
currByte(),
|
||||
bitPos(0)
|
||||
{}
|
||||
|
||||
dwgBuffer::dwgBuffer(std::istream *stream, DRW_TextCodec *dc){
|
||||
filestr = new dwgFileStream(stream);
|
||||
decoder = dc;
|
||||
maxSize = filestr->size();
|
||||
bitPos = 0;
|
||||
}
|
||||
dwgBuffer::dwgBuffer(std::istream *stream, DRW_TextCodec *dc)
|
||||
: decoder(dc),
|
||||
filestr(new dwgFileStream(stream)),
|
||||
maxSize(static_cast<int>(filestr->size())),
|
||||
currByte(),
|
||||
bitPos(0)
|
||||
{}
|
||||
|
||||
dwgBuffer::dwgBuffer( const dwgBuffer& org )
|
||||
: decoder(org.decoder),
|
||||
filestr(org.filestr->clone()),
|
||||
maxSize(static_cast<int>(filestr->size())),
|
||||
currByte(org.currByte),
|
||||
bitPos(org.bitPos)
|
||||
{}
|
||||
|
||||
dwgBuffer& dwgBuffer::operator=( const dwgBuffer& org )
|
||||
{
|
||||
if (&org == this)
|
||||
{
|
||||
return *this;
|
||||
}
|
||||
|
||||
dwgBuffer::dwgBuffer( const dwgBuffer& org ){
|
||||
filestr = org.filestr->clone();
|
||||
decoder = org.decoder;
|
||||
maxSize = filestr->size();
|
||||
currByte = org.currByte;
|
||||
bitPos = org.bitPos;
|
||||
}
|
||||
|
||||
dwgBuffer& dwgBuffer::operator=( const dwgBuffer& org ){
|
||||
filestr = org.filestr->clone();
|
||||
decoder = org.decoder;
|
||||
maxSize = filestr->size();
|
||||
maxSize = static_cast<int>(filestr->size());
|
||||
currByte = org.currByte;
|
||||
bitPos = org.bitPos;
|
||||
return *this;
|
||||
|
@ -233,7 +241,7 @@ duint8 dwgBuffer::getBit(){
|
|||
}
|
||||
|
||||
ret = (currByte >> (7 - bitPos) & 1);
|
||||
bitPos +=1;
|
||||
++bitPos;
|
||||
if (bitPos == 8)
|
||||
bitPos = 0;
|
||||
|
||||
|
@ -254,15 +262,15 @@ duint8 dwgBuffer::get2Bits(){
|
|||
currByte = buffer;
|
||||
}
|
||||
|
||||
bitPos +=2;
|
||||
bitPos = static_cast<duint8>(bitPos+2);
|
||||
if (bitPos < 9)
|
||||
ret = currByte >>(8 - bitPos);
|
||||
ret = static_cast<duint8>(currByte >>(8 - bitPos));
|
||||
else {//read one bit per byte
|
||||
ret = currByte << 1;
|
||||
ret = static_cast<duint8>(currByte << 1);
|
||||
filestr->read (&buffer,1);
|
||||
currByte = buffer;
|
||||
bitPos = 1;
|
||||
ret = ret | currByte >> 7;
|
||||
ret = static_cast<duint8>(ret | currByte >> 7);
|
||||
}
|
||||
if (bitPos == 8)
|
||||
bitPos = 0;
|
||||
|
@ -280,15 +288,15 @@ duint8 dwgBuffer::get3Bits(){
|
|||
currByte = buffer;
|
||||
}
|
||||
|
||||
bitPos +=3;
|
||||
bitPos = static_cast<duint8>(bitPos + 3);
|
||||
if (bitPos < 9)
|
||||
ret = currByte >>(8 - bitPos);
|
||||
ret = static_cast<duint8>(currByte >>(8 - bitPos));
|
||||
else {//read one bit per byte
|
||||
ret = currByte << 1;
|
||||
ret = static_cast<duint8>(currByte << 1);
|
||||
filestr->read (&buffer,1);
|
||||
currByte = buffer;
|
||||
bitPos = 1;
|
||||
ret = ret | currByte >> 7;
|
||||
ret = static_cast<duint8>(ret | currByte >> 7);
|
||||
}
|
||||
if (bitPos == 8)
|
||||
bitPos = 0;
|
||||
|
@ -315,9 +323,9 @@ duint16 dwgBuffer::getBitShort(){
|
|||
dint16 dwgBuffer::getSBitShort(){
|
||||
duint8 b = get2Bits();
|
||||
if (b == 0)
|
||||
return (dint16)getRawShort16();
|
||||
return static_cast<dint16>(getRawShort16());
|
||||
else if (b== 1)
|
||||
return (dint16)getRawChar8();
|
||||
return static_cast<dint16>(getRawChar8());
|
||||
else if (b == 2)
|
||||
return 0;
|
||||
else
|
||||
|
@ -384,9 +392,9 @@ duint8 dwgBuffer::getRawChar8(){
|
|||
if (bitPos == 0)
|
||||
return buffer;
|
||||
else {
|
||||
ret = currByte << bitPos;
|
||||
ret = static_cast<duint8>(currByte << bitPos);
|
||||
currByte = buffer;
|
||||
ret = ret | (currByte >>(8 - bitPos));
|
||||
ret = static_cast<duint8>(ret | (currByte >>(8 - bitPos)));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
@ -399,15 +407,15 @@ duint16 dwgBuffer::getRawShort16(){
|
|||
filestr->read (buffer,2);
|
||||
if (bitPos == 0) {
|
||||
/* no offset directly swap bytes for little-endian */
|
||||
ret = (buffer[1] << 8) | (buffer[0] & 0x00FF);
|
||||
ret = static_cast<duint16>((buffer[1] << 8) | (buffer[0] & 0x00FF));
|
||||
} else {
|
||||
ret = (buffer[0] << 8) | (buffer[1] & 0x00FF);
|
||||
ret = static_cast<duint16>((buffer[0] << 8) | (buffer[1] & 0x00FF));
|
||||
/* apply offset */
|
||||
ret = ret >> (8 - bitPos);
|
||||
ret = ret | (currByte << (8 + bitPos));
|
||||
ret = static_cast<duint16>(ret >> (8 - bitPos));
|
||||
ret = static_cast<duint16>(ret | (currByte << (8 + bitPos)));
|
||||
currByte = buffer[1];
|
||||
/* swap bytes for little-endian */
|
||||
ret = (ret << 8) | (ret >> 8);
|
||||
ret = static_cast<duint16>((ret << 8) | (ret >> 8));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
@ -593,10 +601,10 @@ std::string dwgBuffer::get8bitStr(){
|
|||
std::string dwgBuffer::get16bitStr(duint16 textSize, bool nullTerm){
|
||||
if (textSize == 0)
|
||||
return std::string();
|
||||
textSize *=2;
|
||||
textSize = static_cast<duint16>(textSize*2);
|
||||
duint16 ts = textSize;
|
||||
if (nullTerm)
|
||||
ts += 2;
|
||||
ts = static_cast<duint16>(ts+2);
|
||||
duint8 *tmpBuffer = new duint8[textSize + 2];
|
||||
bool good = getBytes(tmpBuffer, ts);
|
||||
if (!good)
|
||||
|
@ -664,7 +672,7 @@ duint16 dwgBuffer::getObjType(DRW::Version v){//OT
|
|||
if (b == 0)
|
||||
return getRawChar8();
|
||||
else if (b== 1){
|
||||
return (getRawChar8() + 0x01F0);
|
||||
return static_cast<duint16>((getRawChar8() + 0x01F0));
|
||||
} else //b == 2
|
||||
return getRawShort16();
|
||||
}
|
||||
|
@ -757,7 +765,7 @@ duint32 dwgBuffer::getCmColor(DRW::Version v) {
|
|||
duint16 idx = getBitShort();
|
||||
duint32 rgb = getBitLong();
|
||||
duint8 cb = getRawChar8();
|
||||
duint8 type = rgb >> 24;
|
||||
duint8 type = static_cast<duint8>(rgb >> 24);
|
||||
DRW_DBG("\ntype COLOR: "); DRW_DBGH(type);
|
||||
DRW_DBG("\nindex COLOR: "); DRW_DBGH(idx);
|
||||
DRW_DBG("\nRGB COLOR: "); DRW_DBGH(rgb);
|
||||
|
@ -802,7 +810,7 @@ duint32 dwgBuffer::getEnColor(DRW::Version v) {
|
|||
duint32 cb = 0;
|
||||
duint16 idx = getBitShort();
|
||||
DRW_DBG("idx reads COLOR: "); DRW_DBGH(idx);
|
||||
duint16 flags = idx>>8;
|
||||
duint16 flags = static_cast<duint16>(idx>>8);
|
||||
idx = idx & 0x1FF; //RLZ: warning this is correct?
|
||||
DRW_DBG("\nflag COLOR: "); DRW_DBGH(flags);
|
||||
DRW_DBG(", index COLOR: "); DRW_DBGH(idx);
|
||||
|
@ -835,7 +843,7 @@ duint16 dwgBuffer::getBERawShort16(){
|
|||
char buffer[2];
|
||||
buffer[0] = getRawChar8();
|
||||
buffer[1] = getRawChar8();
|
||||
duint16 size = (buffer[0] << 8) | (buffer[1] & 0xFF);
|
||||
duint16 size = static_cast<duint16>((buffer[0] << 8) | (buffer[1] & 0xFF));
|
||||
return size;
|
||||
}
|
||||
|
||||
|
@ -849,15 +857,15 @@ bool dwgBuffer::getBytes(unsigned char *buf, int size){
|
|||
if (bitPos != 0){
|
||||
for (int i=0; i<size;i++){
|
||||
tmp = buf[i];
|
||||
buf[i] = (currByte << bitPos) | (tmp >> (8 - bitPos));
|
||||
buf[i] = static_cast<unsigned char>((currByte << bitPos) | (tmp >> (8 - bitPos)));
|
||||
currByte = tmp;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
duint16 dwgBuffer::crc8(duint16 dx,dint32 start,dint32 end){
|
||||
int pos = filestr->getPos();
|
||||
duint16 dwgBuffer::crc8(duint16 dx, dint32 start, dint32 end){
|
||||
int pos = static_cast<int>(filestr->getPos());
|
||||
filestr->setPos(start);
|
||||
int n = end-start;
|
||||
duint8 *tmpBuf = new duint8[n];
|
||||
|
@ -870,9 +878,9 @@ duint16 dwgBuffer::crc8(duint16 dx,dint32 start,dint32 end){
|
|||
duint8 al;
|
||||
|
||||
while (n-- > 0) {
|
||||
al = (duint8)((*p) ^ ((dint8)(dx & 0xFF)));
|
||||
al = static_cast<duint8>((*p) ^ (static_cast<duint8>(dx & 0xFF)));
|
||||
dx = (dx>>8) & 0xFF;
|
||||
dx = dx ^ crctable[al & 0xFF];
|
||||
dx = static_cast<duint16>(dx ^ crctable[al & 0xFF]);
|
||||
p++;
|
||||
}
|
||||
delete[]tmpBuf;
|
||||
|
@ -880,7 +888,7 @@ duint16 dwgBuffer::crc8(duint16 dx,dint32 start,dint32 end){
|
|||
}
|
||||
|
||||
duint32 dwgBuffer::crc32(duint32 seed,dint32 start,dint32 end){
|
||||
int pos = filestr->getPos();
|
||||
int pos = static_cast<int>(filestr->getPos());
|
||||
filestr->setPos(start);
|
||||
int n = end-start;
|
||||
duint8 *tmpBuf = new duint8[n];
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
#include <QtGlobal>
|
||||
#include "../drw_base.h"
|
||||
|
||||
class DRW_Coord;
|
||||
|
@ -35,13 +36,16 @@ public:
|
|||
|
||||
class dwgFileStream: public dwgBasicStream{
|
||||
public:
|
||||
dwgFileStream(std::istream *s){
|
||||
stream =s;
|
||||
dwgFileStream(std::istream *s)
|
||||
: stream(nullptr),
|
||||
sz(0)
|
||||
{
|
||||
stream = s;
|
||||
stream->seekg (0, std::ios::end);
|
||||
sz = stream->tellg();
|
||||
stream->seekg(0, std::ios_base::beg);
|
||||
}
|
||||
virtual ~dwgFileStream(){}
|
||||
virtual ~dwgFileStream() = default;
|
||||
virtual bool read(duint8* s, duint64 n);
|
||||
virtual duint64 size(){return sz;}
|
||||
virtual duint64 getPos(){return stream->tellg();}
|
||||
|
@ -49,19 +53,21 @@ public:
|
|||
virtual bool good(){return stream->good();}
|
||||
virtual dwgBasicStream* clone(){return new dwgFileStream(stream);}
|
||||
private:
|
||||
Q_DISABLE_COPY(dwgFileStream)
|
||||
std::istream *stream;
|
||||
duint64 sz;
|
||||
};
|
||||
|
||||
class dwgCharStream: public dwgBasicStream{
|
||||
public:
|
||||
dwgCharStream(duint8 *buf, int s){
|
||||
stream =buf;
|
||||
sz = s;
|
||||
pos = 0;
|
||||
isOk = true;
|
||||
}
|
||||
virtual ~dwgCharStream(){}
|
||||
dwgCharStream(duint8 *buf, duint64 s)
|
||||
: stream(buf),
|
||||
sz(s),
|
||||
pos(0),
|
||||
isOk(true)
|
||||
{}
|
||||
virtual ~dwgCharStream() = default;
|
||||
|
||||
virtual bool read(duint8* s, duint64 n);
|
||||
virtual duint64 size(){return sz;}
|
||||
virtual duint64 getPos(){return pos;}
|
||||
|
@ -69,6 +75,7 @@ public:
|
|||
virtual bool good(){return isOk;}
|
||||
virtual dwgBasicStream* clone(){return new dwgCharStream(stream, sz);}
|
||||
private:
|
||||
Q_DISABLE_COPY(dwgCharStream)
|
||||
duint8 *stream;
|
||||
duint64 sz;
|
||||
duint64 pos;
|
||||
|
@ -134,7 +141,7 @@ public:
|
|||
|
||||
bool isGood(){return filestr->good();}
|
||||
bool getBytes(duint8 *buf, int size);
|
||||
int numRemainingBytes(){return (maxSize- filestr->getPos());}
|
||||
int numRemainingBytes(){return (maxSize- static_cast<int>(filestr->getPos()));}
|
||||
|
||||
duint16 crc8(duint16 dx,dint32 start,dint32 end);
|
||||
duint32 crc32(duint32 seed,dint32 start,dint32 end);
|
||||
|
|
|
@ -160,7 +160,7 @@ bool dwgReader::readDwgHandles(dwgBuffer *dbuf, duint32 offset, duint32 size) {
|
|||
DRW_DBG("object map section crc8 read= "); DRW_DBG(crcRead);
|
||||
DRW_DBG("\nobject map section crc8 calculated= "); DRW_DBG(crcCalc);
|
||||
DRW_DBG("\nobject section buf->curPosition()= "); DRW_DBG(dbuf->getPosition()); DRW_DBG("\n");
|
||||
startPos = dbuf->getPosition();
|
||||
startPos = static_cast<int>(dbuf->getPosition());
|
||||
}
|
||||
|
||||
bool ret = dbuf->isGood();
|
||||
|
@ -994,7 +994,7 @@ bool dwgReader::readDwgEntity(dwgBuffer *dbuf, objHandle& obj, DRW_Interface& in
|
|||
} else {
|
||||
DRW_Class *cl = it->second;
|
||||
if (cl->dwgType != 0)
|
||||
oType = cl->dwgType;
|
||||
oType = static_cast<dint16>(cl->dwgType);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1221,7 +1221,7 @@ bool dwgReader::readDwgObject(dwgBuffer *dbuf, objHandle& obj, DRW_Interface& in
|
|||
}
|
||||
dwgBuffer buff(tmpByteStr, size, &decoder);
|
||||
//oType are set parsing entities
|
||||
dint16 oType = obj.type;
|
||||
dint16 oType = static_cast<dint16>(obj.type);
|
||||
|
||||
switch (oType){
|
||||
case 102: {
|
||||
|
@ -1235,7 +1235,11 @@ bool dwgReader::readDwgObject(dwgBuffer *dbuf, objHandle& obj, DRW_Interface& in
|
|||
break;
|
||||
}
|
||||
if (!ret){
|
||||
DRW_DBG("Warning: Object type "); DRW_DBG(oType);DRW_DBG("has failed, handle: "); DRW_DBG(obj.handle); DRW_DBG("\n");
|
||||
DRW_DBG("Warning: Object type ");
|
||||
DRW_DBG(oType);
|
||||
DRW_DBG("has failed, handle: ");
|
||||
DRW_DBG(obj.handle);
|
||||
DRW_DBG("\n");
|
||||
}
|
||||
delete[]tmpByteStr;
|
||||
return ret;
|
||||
|
@ -1245,8 +1249,8 @@ bool dwgReader::readDwgObject(dwgBuffer *dbuf, objHandle& obj, DRW_Interface& in
|
|||
|
||||
bool DRW_ObjControl::parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs){
|
||||
int unkData=0;
|
||||
bool ret = DRW_TableEntry::parseDwg(version, buf, NULL, bs);
|
||||
DRW_DBG("\n***************************** parsing object control entry *********************************************\n");
|
||||
bool ret = DRW_TableEntry::parseDwg(version, buf, nullptr, bs);
|
||||
DRW_DBG("\n***************************** parsing object control entry *****************************************\n");
|
||||
if (!ret)
|
||||
return ret;
|
||||
//last parsed is: XDic Missing Flag 2004+
|
||||
|
|
|
@ -22,12 +22,18 @@
|
|||
|
||||
class objHandle{
|
||||
public:
|
||||
objHandle(){ handle = type = loc = 0; }
|
||||
objHandle(duint32 t, duint32 h, duint32 l){
|
||||
type = t;
|
||||
handle = h;
|
||||
loc = l;
|
||||
}
|
||||
objHandle()
|
||||
: type(0),
|
||||
handle(0),
|
||||
loc(0)
|
||||
{}
|
||||
|
||||
objHandle(duint32 t, duint32 h, duint32 l)
|
||||
: type(t),
|
||||
handle(h),
|
||||
loc(l)
|
||||
{}
|
||||
|
||||
duint32 type;
|
||||
duint32 handle;
|
||||
duint32 loc;
|
||||
|
@ -55,11 +61,27 @@ public:
|
|||
* */
|
||||
class dwgPageInfo {
|
||||
public:
|
||||
dwgPageInfo(){}
|
||||
dwgPageInfo(duint64 i, duint64 ad, duint32 sz){
|
||||
Id=i; address=ad; size=sz;
|
||||
}
|
||||
~dwgPageInfo(){}
|
||||
dwgPageInfo()
|
||||
: Id(),
|
||||
address(),
|
||||
size(),
|
||||
dataSize(),
|
||||
startOffset(),
|
||||
cSize(),
|
||||
uSize()
|
||||
{}
|
||||
|
||||
dwgPageInfo(duint64 i, duint64 ad, duint32 sz)
|
||||
: Id(i),
|
||||
address(ad),
|
||||
size(sz),
|
||||
dataSize(),
|
||||
startOffset(),
|
||||
cSize(),
|
||||
uSize()
|
||||
{}
|
||||
|
||||
~dwgPageInfo() = default;
|
||||
duint64 Id;
|
||||
duint64 address; //in file stream, for rd18, rd21
|
||||
duint64 size; //in file stream, for rd18, rd21
|
||||
|
@ -82,13 +104,19 @@ public:
|
|||
* */
|
||||
class dwgSectionInfo {
|
||||
public:
|
||||
dwgSectionInfo(){
|
||||
compresed = 1;//1=no, 2=yes
|
||||
encrypted = 0;//???
|
||||
pageCount = 0;
|
||||
Id=-1;
|
||||
}
|
||||
~dwgSectionInfo(){}
|
||||
dwgSectionInfo()
|
||||
: Id(-1),
|
||||
name(),
|
||||
compresed(1),//1=no, 2=yes
|
||||
encrypted(0),//???
|
||||
pages(),
|
||||
size(),
|
||||
pageCount(0),
|
||||
maxSize(),
|
||||
address()
|
||||
{}
|
||||
|
||||
~dwgSectionInfo() = default;
|
||||
dint32 Id; //section Id, 2000- rd15 rd18
|
||||
std::string name; //section name rd18
|
||||
duint32 compresed;//is compresed? 1=no, 2=yes rd18, rd21(encoding)
|
||||
|
@ -108,10 +136,11 @@ public:
|
|||
*/
|
||||
class DRW_ObjControl : public DRW_TableEntry {
|
||||
public:
|
||||
DRW_ObjControl() { reset();}
|
||||
DRW_ObjControl()
|
||||
: hadlesList()
|
||||
{ reset();}
|
||||
|
||||
void reset(){
|
||||
}
|
||||
void reset(){}
|
||||
bool parseDwg(DRW::Version version, dwgBuffer *buf, duint32 bs=0);
|
||||
std::list<duint32>hadlesList;
|
||||
};
|
||||
|
@ -120,16 +149,31 @@ public:
|
|||
class dwgReader {
|
||||
friend class dwgR;
|
||||
public:
|
||||
dwgReader(std::istream *stream, dwgR *p){
|
||||
fileBuf = new dwgBuffer(stream);
|
||||
parent = p;
|
||||
dwgReader(std::istream *stream, dwgR *p)
|
||||
: ObjectMap(),
|
||||
objObjectMap(),
|
||||
remainingMap(),
|
||||
ltypemap(),
|
||||
layermap(),
|
||||
blockmap(),
|
||||
stylemap(),
|
||||
dimstylemap(),
|
||||
vportmap(),
|
||||
blockRecordmap(),
|
||||
appIdmap(),
|
||||
maintenanceVersion(0),
|
||||
fileBuf(new dwgBuffer(stream)),
|
||||
parent(p),
|
||||
version(),
|
||||
previewImagePos(),
|
||||
sections(),
|
||||
classesmap(),
|
||||
decoder(),
|
||||
nextEntLink(0),
|
||||
prevEntLink(0)
|
||||
{
|
||||
decoder.setVersion(DRW::AC1021, false);//default 2007 in utf8(no convert)
|
||||
decoder.setCodePage("UTF-16", false);
|
||||
// blockCtrl=0; //RLZ: temporary
|
||||
// blockCtrl=layerCtrl=styleCtrl=linetypeCtrl=viewCtrl=0;
|
||||
// ucsCtrl=vportCtrl=appidCtrl=dimstyleCtrl=vpEntHeaderCtrl=0;
|
||||
nextEntLink = prevEntLink = 0;
|
||||
maintenanceVersion=0;
|
||||
}
|
||||
virtual ~dwgReader();
|
||||
|
||||
|
@ -196,6 +240,8 @@ protected:
|
|||
// duint32 blockCtrl;
|
||||
duint32 nextEntLink;
|
||||
duint32 prevEntLink;
|
||||
private:
|
||||
Q_DISABLE_COPY(dwgReader)
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -88,8 +88,12 @@ bool dwgReader15::readFileHeader() {
|
|||
return false;
|
||||
DRW_DBG("\nposition after read section locator records= "); DRW_DBG(fileBuf->getPosition());
|
||||
DRW_DBG(", bit are= "); DRW_DBG(fileBuf->getBitPos());
|
||||
duint32 ckcrc = fileBuf->crc8(0,0,fileBuf->getPosition());
|
||||
duint32 ckcrc = static_cast<duint32>(fileBuf->crc8(0, 0, static_cast<dint32>(fileBuf->getPosition())));
|
||||
DRW_DBG("\nfile header crc8 0 result= "); DRW_DBG(ckcrc);
|
||||
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||
|
||||
switch (count){
|
||||
case 3:
|
||||
ckcrc = ckcrc ^ 0xA598;
|
||||
|
@ -103,6 +107,9 @@ bool dwgReader15::readFileHeader() {
|
|||
case 6:
|
||||
ckcrc = ckcrc ^ 0x8461;
|
||||
}
|
||||
|
||||
QT_WARNING_POP
|
||||
|
||||
DRW_DBG("\nfile header crc8 xor result= "); DRW_DBG(ckcrc);
|
||||
DRW_DBG("\nfile header CRC= "); DRW_DBG(fileBuf->getRawShort16());
|
||||
DRW_DBG("\nfile header sentinel= ");
|
||||
|
@ -123,8 +130,8 @@ bool dwgReader15::readDwgHeader(DRW_Header& hdr){
|
|||
if (!fileBuf->setPosition(si.address))
|
||||
return false;
|
||||
duint8 *tmpByteStr = new duint8[si.size];
|
||||
fileBuf->getBytes(tmpByteStr, si.size);
|
||||
dwgBuffer buff(tmpByteStr, si.size, &decoder);
|
||||
fileBuf->getBytes(tmpByteStr, static_cast<int>(si.size));
|
||||
dwgBuffer buff(tmpByteStr, static_cast<int>(si.size), &decoder);
|
||||
DRW_DBG("Header section sentinel= ");
|
||||
checkSentinel(&buff, secEnum::HEADER, true);
|
||||
bool ret = dwgReader::readDwgHeader(hdr, &buff, &buff);
|
||||
|
@ -172,7 +179,7 @@ bool dwgReader15::readDwgHandles() {
|
|||
if (si.Id<0)//not found, ends
|
||||
return false;
|
||||
|
||||
bool ret = dwgReader::readDwgHandles(fileBuf, si.address, si.size);
|
||||
bool ret = dwgReader::readDwgHandles(fileBuf, static_cast<duint32>(si.address), static_cast<duint32>(si.size));
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -116,10 +116,10 @@ bool dwgReader18::parseDataPage(dwgSectionInfo si/*, duint8 *dData*/){
|
|||
//decript section header
|
||||
duint8 hdrData[32];
|
||||
fileBuf->getBytes(hdrData, 32);
|
||||
dwgCompressor::decrypt18Hdr(hdrData, 32, pi.address);
|
||||
dwgCompressor::decrypt18Hdr(hdrData, 32, static_cast<duint32>(pi.address));
|
||||
DRW_DBG("Section "); DRW_DBG(si.name); DRW_DBG(" page header=\n");
|
||||
for (unsigned int i=0, j=0; i< 32;i++) {
|
||||
DRW_DBGH( (unsigned char)hdrData[i]);
|
||||
DRW_DBGH( static_cast<unsigned char>(hdrData[i]));
|
||||
if (j == 7) {
|
||||
DRW_DBG("\n");
|
||||
j = 0;
|
||||
|
@ -150,10 +150,10 @@ bool dwgReader18::parseDataPage(dwgSectionInfo si/*, duint8 *dData*/){
|
|||
duint8 *cData = new duint8[pi.cSize];
|
||||
if (!fileBuf->setPosition(pi.address+32))
|
||||
return false;
|
||||
fileBuf->getBytes(cData, pi.cSize);
|
||||
fileBuf->getBytes(cData, static_cast<int>(pi.cSize));
|
||||
|
||||
//calculate checksum
|
||||
duint32 calcsD = checksum(0, cData, pi.cSize);
|
||||
duint32 calcsD = checksum(0, cData, static_cast<duint32>(pi.cSize));
|
||||
for (duint8 i= 24; i<28; ++i)
|
||||
hdrData[i]=0;
|
||||
duint32 calcsH = checksum(calcsD, hdrData, 32);
|
||||
|
@ -164,7 +164,7 @@ bool dwgReader18::parseDataPage(dwgSectionInfo si/*, duint8 *dData*/){
|
|||
pi.uSize = si.maxSize;
|
||||
DRW_DBG("decompresing "); DRW_DBG(pi.cSize); DRW_DBG(" bytes in "); DRW_DBG(pi.uSize); DRW_DBG(" bytes\n");
|
||||
dwgCompressor comp;
|
||||
comp.decompress18(cData, oData, pi.cSize, pi.uSize);
|
||||
comp.decompress18(cData, oData, static_cast<duint32>(pi.cSize), static_cast<duint32>(pi.uSize));
|
||||
delete[]cData;
|
||||
}
|
||||
return true;
|
||||
|
@ -222,14 +222,14 @@ bool dwgReader18::readFileHeader() {
|
|||
DRW_DBG(", ");
|
||||
j++;
|
||||
}
|
||||
byteStr[i] = DRW_magicNum18[i] ^ ch;
|
||||
byteStr[i] = static_cast<duint8>(DRW_magicNum18[i] ^ ch);
|
||||
}
|
||||
DRW_DBG("\n");
|
||||
|
||||
// size =0x6C;
|
||||
DRW_DBG("Decripted Header Data=\n");
|
||||
for (int i=0, j = 0; i< size;i++) {
|
||||
DRW_DBGH( (unsigned char)byteStr[i]);
|
||||
DRW_DBGH( static_cast<unsigned char>(byteStr[i]));
|
||||
if (j == 15) {
|
||||
DRW_DBG("\n");
|
||||
j = 0;
|
||||
|
@ -277,8 +277,8 @@ bool dwgReader18::readFileHeader() {
|
|||
|
||||
DRW_DBG("\nEnd Encrypted Data. Reads 0x14 bytes, equal to magic number:\n");
|
||||
for (int i=0, j=0; i< 0x14;i++) {
|
||||
DRW_DBG("magic num: "); DRW_DBGH( (unsigned char)DRW_magicNumEnd18[i]);
|
||||
DRW_DBG(",read "); DRW_DBGH( (unsigned char)fileBuf->getRawChar8());
|
||||
DRW_DBG("magic num: "); DRW_DBGH( static_cast<unsigned char>(DRW_magicNumEnd18[i]));
|
||||
DRW_DBG(",read "); DRW_DBGH( static_cast<unsigned char>(fileBuf->getRawChar8()));
|
||||
if (j == 3) {
|
||||
DRW_DBG("\n");
|
||||
j = 0;
|
||||
|
@ -382,7 +382,7 @@ bool dwgReader18::readFileHeader() {
|
|||
dwgPageInfo pi = sectionPageMapTmp[pn]; //get a copy
|
||||
DRW_DBG(" reading pag num = "); DRW_DBGH(pn);
|
||||
pi.dataSize = buff3.getRawLong32();
|
||||
pi.startOffset = buff3.getRawLong64();
|
||||
pi.startOffset = static_cast<duint32>(buff3.getRawLong64());
|
||||
secInfo.pages[pn]= pi;//complete copy in secInfo
|
||||
DRW_DBG("\n Page number= "); DRW_DBGH(secInfo.pages[pn].Id);
|
||||
DRW_DBG("\n size in file= "); DRW_DBGH(secInfo.pages[pn].size);
|
||||
|
@ -413,20 +413,20 @@ bool dwgReader18::readDwgHeader(DRW_Header& hdr){
|
|||
//global store for uncompressed data of all pages
|
||||
uncompSize=si.size;
|
||||
if (ret) {
|
||||
dwgBuffer dataBuf(objData, si.size, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(si.size), &decoder);
|
||||
DRW_DBG("Header section sentinel= ");
|
||||
checkSentinel(&dataBuf, secEnum::HEADER, true);
|
||||
if (version == DRW::AC1018){
|
||||
ret = dwgReader::readDwgHeader(hdr, &dataBuf, &dataBuf);
|
||||
} else {
|
||||
dwgBuffer handleBuf(objData, si.size, &decoder);
|
||||
dwgBuffer handleBuf(objData, static_cast<int>(si.size), &decoder);
|
||||
ret = dwgReader::readDwgHeader(hdr, &dataBuf, &handleBuf);
|
||||
}
|
||||
}
|
||||
//Cleanup: global store for uncompressed data of all pages
|
||||
if (objData != NULL){
|
||||
if (objData != nullptr){
|
||||
delete[] objData;
|
||||
objData = NULL;
|
||||
objData = nullptr;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
@ -442,7 +442,7 @@ bool dwgReader18::readDwgClasses(){
|
|||
uncompSize=si.size;
|
||||
if (ret) {
|
||||
|
||||
dwgBuffer dataBuf(objData, uncompSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||
|
||||
DRW_DBG("classes section sentinel= ");
|
||||
checkSentinel(&dataBuf, secEnum::CLASSES, true);
|
||||
|
@ -466,7 +466,7 @@ bool dwgReader18::readDwgClasses(){
|
|||
|
||||
/*******************************/
|
||||
dwgBuffer *strBuf = &dataBuf;
|
||||
dwgBuffer strBuff(objData, uncompSize, &decoder);
|
||||
dwgBuffer strBuff(objData, static_cast<int>(uncompSize), &decoder);
|
||||
//prepare string stream for 2007+
|
||||
if (version > DRW::AC1021) {//2007+
|
||||
strBuf = &strBuff;
|
||||
|
@ -529,9 +529,9 @@ bool dwgReader18::readDwgClasses(){
|
|||
ret = strBuf->isGood();
|
||||
}
|
||||
//Cleanup: global store for uncompressed data of all pages
|
||||
if (objData != NULL){
|
||||
if (objData != nullptr){
|
||||
delete[] objData;
|
||||
objData = NULL;
|
||||
objData = nullptr;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
@ -554,14 +554,14 @@ bool dwgReader18::readDwgHandles() {
|
|||
uncompSize=si.size;
|
||||
if (ret) {
|
||||
|
||||
dwgBuffer dataBuf(objData, uncompSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||
|
||||
ret = dwgReader::readDwgHandles(&dataBuf, 0, si.size);
|
||||
ret = dwgReader::readDwgHandles(&dataBuf, 0, static_cast<duint32>(si.size));
|
||||
}
|
||||
//Cleanup: global store for uncompressed data of all pages
|
||||
if (objData != NULL){
|
||||
if (objData != nullptr){
|
||||
delete[] objData;
|
||||
objData = NULL;
|
||||
objData = nullptr;
|
||||
uncompSize = 0;
|
||||
}
|
||||
return ret;
|
||||
|
@ -584,7 +584,7 @@ bool dwgReader18::readDwgTables(DRW_Header& hdr) {
|
|||
uncompSize=si.size;
|
||||
if (ret) {
|
||||
|
||||
dwgBuffer dataBuf(objData, uncompSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||
|
||||
ret = dwgReader::readDwgTables(hdr, &dataBuf);
|
||||
|
||||
|
|
|
@ -43,11 +43,15 @@ static const int DRW_magicNumEnd18[] = {
|
|||
|
||||
class dwgReader18 : public dwgReader {
|
||||
public:
|
||||
dwgReader18(std::istream *stream, dwgR *p):dwgReader(stream, p){
|
||||
objData = NULL;
|
||||
}
|
||||
dwgReader18(std::istream *stream, dwgR *p)
|
||||
: dwgReader(stream, p),
|
||||
objData(nullptr),
|
||||
uncompSize(),
|
||||
securityFlags()
|
||||
{}
|
||||
|
||||
virtual ~dwgReader18(){
|
||||
if (objData != NULL)
|
||||
if (objData != nullptr)
|
||||
delete[] objData;
|
||||
}
|
||||
bool readMetaData();
|
||||
|
@ -58,20 +62,20 @@ public:
|
|||
bool readDwgTables(DRW_Header& hdr);
|
||||
bool readDwgBlocks(DRW_Interface& intfa){
|
||||
bool ret = true;
|
||||
dwgBuffer dataBuf(objData, uncompSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||
ret = dwgReader::readDwgBlocks(intfa, &dataBuf);
|
||||
return ret;
|
||||
}
|
||||
|
||||
virtual bool readDwgEntities(DRW_Interface& intfa){
|
||||
bool ret = true;
|
||||
dwgBuffer dataBuf(objData, uncompSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||
ret = dwgReader::readDwgEntities(intfa, &dataBuf);
|
||||
return ret;
|
||||
}
|
||||
virtual bool readDwgObjects(DRW_Interface& intfa){
|
||||
bool ret = true;
|
||||
dwgBuffer dataBuf(objData, uncompSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||
ret = dwgReader::readDwgObjects(intfa, &dataBuf);
|
||||
return ret;
|
||||
}
|
||||
|
@ -86,6 +90,7 @@ protected:
|
|||
duint64 uncompSize;
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(dwgReader18)
|
||||
void genMagicNumber();
|
||||
// dwgBuffer* bufObj;
|
||||
void parseSysPage(duint8 *decompSec, duint32 decompSize); //called: Section page map: 0x41630e3b
|
||||
|
|
|
@ -59,16 +59,17 @@ bool dwgReader21::parseSysPage(duint64 sizeCompressed, duint64 sizeUncompressed,
|
|||
//round to 8
|
||||
duint64 alsize = (sizeCompressed + 7) &(-8);
|
||||
//minimum RS chunk:
|
||||
duint32 chunks = (((alsize * correctionFactor)+238)/239);
|
||||
duint32 chunks = static_cast<duint32>(((alsize * correctionFactor)+238)/239);
|
||||
duint64 fpsize = chunks * 255;
|
||||
|
||||
if (! fileBuf->setPosition(offset))
|
||||
return false;
|
||||
duint8 *tmpDataRaw = new duint8[fpsize];
|
||||
fileBuf->getBytes(tmpDataRaw, fpsize);
|
||||
fileBuf->getBytes(tmpDataRaw, static_cast<int>(fpsize));
|
||||
duint8 *tmpDataRS = new duint8[fpsize];
|
||||
dwgRSCodec::decode239I(tmpDataRaw, tmpDataRS, fpsize/255);
|
||||
dwgCompressor::decompress21(tmpDataRS, decompData, sizeCompressed, sizeUncompressed);
|
||||
dwgRSCodec::decode239I(tmpDataRaw, tmpDataRS, static_cast<duint32>(fpsize/255));
|
||||
dwgCompressor::decompress21(tmpDataRS, decompData, static_cast<duint32>(sizeCompressed),
|
||||
static_cast<duint32>(sizeUncompressed));
|
||||
delete[]tmpDataRaw;
|
||||
delete[]tmpDataRS;
|
||||
return true;
|
||||
|
@ -82,7 +83,7 @@ bool dwgReader21::parseDataPage(dwgSectionInfo si, duint8 *dData){
|
|||
return false;
|
||||
|
||||
duint8 *tmpPageRaw = new duint8[pi.size];
|
||||
fileBuf->getBytes(tmpPageRaw, pi.size);
|
||||
fileBuf->getBytes(tmpPageRaw, static_cast<int>(pi.size));
|
||||
#ifdef DRW_DBG_DUMP
|
||||
DRW_DBG("\nSection OBJECTS raw data=\n");
|
||||
for (unsigned int i=0, j=0; i< pi.size;i++) {
|
||||
|
@ -93,7 +94,7 @@ bool dwgReader21::parseDataPage(dwgSectionInfo si, duint8 *dData){
|
|||
#endif
|
||||
|
||||
duint8 *tmpPageRS = new duint8[pi.size];
|
||||
duint8 chunks =pi.size / 255;
|
||||
duint8 chunks = static_cast<duint8>(pi.size / 255);
|
||||
dwgRSCodec::decode251I(tmpPageRaw, tmpPageRS, chunks);
|
||||
#ifdef DRW_DBG_DUMP
|
||||
DRW_DBG("\nSection OBJECTS RS data=\n");
|
||||
|
@ -107,7 +108,8 @@ bool dwgReader21::parseDataPage(dwgSectionInfo si, duint8 *dData){
|
|||
DRW_DBG("\npage uncomp size: "); DRW_DBG(pi.uSize); DRW_DBG(" comp size: "); DRW_DBG(pi.cSize);
|
||||
DRW_DBG("\noffset: "); DRW_DBG(pi.startOffset);
|
||||
duint8 *pageData = dData + pi.startOffset;
|
||||
dwgCompressor::decompress21(tmpPageRS, pageData, pi.cSize, pi.uSize);
|
||||
dwgCompressor::decompress21(tmpPageRS, pageData, static_cast<duint32>(pi.cSize),
|
||||
static_cast<duint32>(pi.uSize));
|
||||
|
||||
#ifdef DRW_DBG_DUMP
|
||||
DRW_DBG("\n\nSection OBJECTS decompresed data=\n");
|
||||
|
@ -236,7 +238,7 @@ bool dwgReader21::readFileHeader() {
|
|||
|
||||
duint64 address = 0x480;
|
||||
duint64 i = 0;
|
||||
dwgBuffer PagesMapBuf(PagesMapData, PagesMapSizeUncompressed, &decoder);
|
||||
dwgBuffer PagesMapBuf(PagesMapData, static_cast<int>(PagesMapSizeUncompressed), &decoder);
|
||||
//stores temporaly info of all pages:
|
||||
std::map<duint32, dwgPageInfo >sectionPageMapTmp;
|
||||
|
||||
|
@ -249,7 +251,7 @@ bool dwgReader21::readFileHeader() {
|
|||
|
||||
DRW_DBG("Page gap= "); DRW_DBG(id); DRW_DBG(" Page num= "); DRW_DBG(ind); DRW_DBG(" size= "); DRW_DBGH(size);
|
||||
DRW_DBG(" address= "); DRW_DBGH(address); DRW_DBG("\n");
|
||||
sectionPageMapTmp[ind] = dwgPageInfo(ind, address,size);
|
||||
sectionPageMapTmp[static_cast<duint32>(ind)] = dwgPageInfo(ind, address, static_cast<duint32>(size));
|
||||
address += size;
|
||||
//TODO num can be negative indicating gap
|
||||
// seek += offset;
|
||||
|
@ -258,15 +260,16 @@ bool dwgReader21::readFileHeader() {
|
|||
|
||||
DRW_DBG("\n*** dwgReader21: Processing Section Map ***\n");
|
||||
duint8 *SectionsMapData = new duint8[SectionsMapSizeUncompressed];
|
||||
dwgPageInfo sectionMap = sectionPageMapTmp[SectionsMapId];
|
||||
ret = parseSysPage(SectionsMapSizeCompressed, SectionsMapSizeUncompressed, SectionsMapCorrectionFactor, sectionMap.address, SectionsMapData);
|
||||
dwgPageInfo sectionMap = sectionPageMapTmp[static_cast<duint32>(SectionsMapId)];
|
||||
ret = parseSysPage(SectionsMapSizeCompressed, SectionsMapSizeUncompressed, SectionsMapCorrectionFactor,
|
||||
sectionMap.address, SectionsMapData);
|
||||
if (!ret)
|
||||
return false;
|
||||
|
||||
//reads sections:
|
||||
//Note: compressed value are not stored in file then, commpresed field are use to store
|
||||
// encoding value
|
||||
dwgBuffer SectionsMapBuf(SectionsMapData, SectionsMapSizeUncompressed, &decoder);
|
||||
dwgBuffer SectionsMapBuf(SectionsMapData, static_cast<int>(SectionsMapSizeUncompressed), &decoder);
|
||||
duint8 nextId =1;
|
||||
while(SectionsMapBuf.getPosition() < SectionsMapBuf.size()){
|
||||
dwgSectionInfo secInfo;
|
||||
|
@ -274,28 +277,28 @@ bool dwgReader21::readFileHeader() {
|
|||
DRW_DBG("\nSize of section (data size)= "); DRW_DBGH(secInfo.size);
|
||||
secInfo.maxSize = SectionsMapBuf.getRawLong64();
|
||||
DRW_DBG("\nMax Decompressed Size= "); DRW_DBGH(secInfo.maxSize);
|
||||
secInfo.encrypted = SectionsMapBuf.getRawLong64();
|
||||
secInfo.encrypted = static_cast<duint32>(SectionsMapBuf.getRawLong64());
|
||||
//encrypted (doc: 0 no, 1 yes, 2 unkn) on read: objects 0 and encrypted yes
|
||||
DRW_DBG("\nencription= "); DRW_DBGH(secInfo.encrypted);
|
||||
DRW_DBG("\nHashCode = "); DRW_DBGH(SectionsMapBuf.getRawLong64());
|
||||
duint64 SectionNameLength = SectionsMapBuf.getRawLong64();
|
||||
DRW_DBG("\nSectionNameLength = "); DRW_DBG(SectionNameLength);
|
||||
DRW_DBG("\nUnknown = "); DRW_DBGH(SectionsMapBuf.getRawLong64());
|
||||
secInfo.compresed = SectionsMapBuf.getRawLong64();
|
||||
secInfo.compresed = static_cast<duint32>(SectionsMapBuf.getRawLong64());
|
||||
DRW_DBG("\nEncoding (compresed) = "); DRW_DBGH(secInfo.compresed);
|
||||
secInfo.pageCount = SectionsMapBuf.getRawLong64();
|
||||
DRW_DBG("\nPage count= "); DRW_DBGH(secInfo.pageCount);
|
||||
secInfo.name = SectionsMapBuf.getUCSStr(SectionNameLength);
|
||||
secInfo.name = SectionsMapBuf.getUCSStr(static_cast<duint16>(SectionNameLength));
|
||||
DRW_DBG("\nSection name = "); DRW_DBG(secInfo.name); DRW_DBG("\n");
|
||||
|
||||
for (unsigned int i=0; i< secInfo.pageCount; i++){
|
||||
duint64 po = SectionsMapBuf.getRawLong64();
|
||||
duint32 ds = SectionsMapBuf.getRawLong64();
|
||||
duint32 pn = SectionsMapBuf.getRawLong64();
|
||||
duint32 ds = static_cast<duint32>(SectionsMapBuf.getRawLong64());
|
||||
duint32 pn = static_cast<duint32>(SectionsMapBuf.getRawLong64());
|
||||
DRW_DBG(" pag Id = "); DRW_DBGH(pn); DRW_DBG(" data size = "); DRW_DBGH(ds);
|
||||
dwgPageInfo pi = sectionPageMapTmp[pn]; //get a copy
|
||||
pi.dataSize = ds;
|
||||
pi.startOffset = po;
|
||||
pi.startOffset = static_cast<duint32>(po);
|
||||
pi.uSize = SectionsMapBuf.getRawLong64();
|
||||
pi.cSize = SectionsMapBuf.getRawLong64();
|
||||
secInfo.pages[pn]= pi;//complete copy in secInfo
|
||||
|
@ -339,8 +342,8 @@ bool dwgReader21::readDwgHeader(DRW_Header& hdr){
|
|||
return ret;
|
||||
}
|
||||
|
||||
dwgBuffer dataBuf(tmpHeaderData, si.size, &decoder);
|
||||
dwgBuffer handleBuf(tmpHeaderData, si.size, &decoder);
|
||||
dwgBuffer dataBuf(tmpHeaderData, static_cast<int>(si.size), &decoder);
|
||||
dwgBuffer handleBuf(tmpHeaderData, static_cast<int>(si.size), &decoder);
|
||||
DRW_DBG("Header section sentinel= ");
|
||||
checkSentinel(&dataBuf, secEnum::HEADER, true);
|
||||
ret = dwgReader::readDwgHeader(hdr, &dataBuf, &handleBuf);
|
||||
|
@ -360,7 +363,7 @@ bool dwgReader21::readDwgClasses(){
|
|||
if (!ret)
|
||||
return ret;
|
||||
|
||||
dwgBuffer buff(tmpClassesData, si.size, &decoder);
|
||||
dwgBuffer buff(tmpClassesData, static_cast<int>(si.size), &decoder);
|
||||
DRW_DBG("classes section sentinel= ");
|
||||
checkSentinel(&buff, secEnum::CLASSES, true);
|
||||
|
||||
|
@ -378,7 +381,7 @@ bool dwgReader21::readDwgClasses(){
|
|||
|
||||
/*******************************/
|
||||
//prepare string stream
|
||||
dwgBuffer strBuff(tmpClassesData, si.size, &decoder);
|
||||
dwgBuffer strBuff(tmpClassesData, static_cast<int>(si.size), &decoder);
|
||||
duint32 strStartPos = bitSize + 159;//size in bits + 20 bytes (sn+size) - 1 bit (endbit)
|
||||
DRW_DBG("\nstrStartPos: "); DRW_DBG(strStartPos);
|
||||
strBuff.setPosition(strStartPos >> 3);
|
||||
|
@ -444,9 +447,9 @@ bool dwgReader21::readDwgHandles(){
|
|||
if (!ret)
|
||||
return ret;
|
||||
|
||||
dwgBuffer dataBuf(tmpHandlesData, si.size, &decoder);
|
||||
dwgBuffer dataBuf(tmpHandlesData, static_cast<int>(si.size), &decoder);
|
||||
|
||||
ret = dwgReader::readDwgHandles(&dataBuf, 0, si.size);
|
||||
ret = dwgReader::readDwgHandles(&dataBuf, 0, static_cast<duint32>(si.size));
|
||||
delete[]tmpHandlesData;
|
||||
return ret;
|
||||
}
|
||||
|
@ -470,7 +473,7 @@ bool dwgReader21::readDwgTables(DRW_Header& hdr) {
|
|||
return ret;
|
||||
|
||||
DRW_DBG("readDwgTables total data size= "); DRW_DBG(dataSize); DRW_DBG("\n");
|
||||
dwgBuffer dataBuf(objData, dataSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(dataSize), &decoder);
|
||||
ret = dwgReader::readDwgTables(hdr, &dataBuf);
|
||||
|
||||
return ret;
|
||||
|
@ -479,7 +482,7 @@ bool dwgReader21::readDwgTables(DRW_Header& hdr) {
|
|||
|
||||
bool dwgReader21::readDwgBlocks(DRW_Interface& intfa){
|
||||
bool ret = true;
|
||||
dwgBuffer dataBuf(objData, dataSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(dataSize), &decoder);
|
||||
ret = dwgReader::readDwgBlocks(intfa, &dataBuf);
|
||||
return ret;
|
||||
|
||||
|
|
|
@ -22,12 +22,14 @@
|
|||
//reader for AC1021 aka v2007, chapter 5
|
||||
class dwgReader21 : public dwgReader {
|
||||
public:
|
||||
dwgReader21(std::istream *stream, dwgR *p):dwgReader(stream, p){
|
||||
objData = NULL;
|
||||
dataSize = 0;
|
||||
}
|
||||
dwgReader21(std::istream *stream, dwgR *p)
|
||||
: dwgReader(stream, p),
|
||||
objData(nullptr),
|
||||
dataSize(0)
|
||||
{}
|
||||
|
||||
virtual ~dwgReader21(){
|
||||
if (objData != NULL)
|
||||
if (objData != nullptr)
|
||||
delete[] objData;
|
||||
}
|
||||
bool readMetaData();
|
||||
|
@ -39,13 +41,13 @@ public:
|
|||
bool readDwgBlocks(DRW_Interface& intfa);
|
||||
virtual bool readDwgEntities(DRW_Interface& intfa){
|
||||
bool ret = true;
|
||||
dwgBuffer dataBuf(objData, dataSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(dataSize), &decoder);
|
||||
ret = dwgReader::readDwgEntities(intfa, &dataBuf);
|
||||
return ret;
|
||||
}
|
||||
virtual bool readDwgObjects(DRW_Interface& intfa){
|
||||
bool ret = true;
|
||||
dwgBuffer dataBuf(objData, dataSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(dataSize), &decoder);
|
||||
ret = dwgReader::readDwgObjects(intfa, &dataBuf);
|
||||
return ret;
|
||||
}
|
||||
|
@ -54,7 +56,9 @@ public:
|
|||
//}
|
||||
|
||||
private:
|
||||
bool parseSysPage(duint64 sizeCompressed, duint64 sizeUncompressed, duint64 correctionFactor, duint64 offset, duint8 *decompData);
|
||||
Q_DISABLE_COPY(dwgReader21)
|
||||
bool parseSysPage(duint64 sizeCompressed, duint64 sizeUncompressed, duint64 correctionFactor, duint64 offset,
|
||||
duint8 *decompData);
|
||||
bool parseDataPage(dwgSectionInfo si, duint8 *dData);
|
||||
|
||||
duint8 *objData;
|
||||
|
|
|
@ -30,19 +30,19 @@ public:
|
|||
// bool readDwgTables(){return false;}
|
||||
bool readDwgBlocks(DRW_Interface& intfa){
|
||||
bool ret = true;
|
||||
dwgBuffer dataBuf(objData, uncompSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||
ret = dwgReader::readDwgBlocks(intfa, &dataBuf);
|
||||
return ret;
|
||||
}
|
||||
virtual bool readDwgEntities(DRW_Interface& intfa){
|
||||
bool ret = true;
|
||||
dwgBuffer dataBuf(objData, uncompSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||
ret = dwgReader::readDwgEntities(intfa, &dataBuf);
|
||||
return ret;
|
||||
}
|
||||
virtual bool readDwgObjects(DRW_Interface& intfa){
|
||||
bool ret = true;
|
||||
dwgBuffer dataBuf(objData, uncompSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||
ret = dwgReader::readDwgObjects(intfa, &dataBuf);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -30,19 +30,19 @@ public:
|
|||
// bool readDwgTables(){return false;}
|
||||
bool readDwgBlocks(DRW_Interface& intfa){
|
||||
bool ret = true;
|
||||
dwgBuffer dataBuf(objData, uncompSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||
ret = dwgReader::readDwgBlocks(intfa, &dataBuf);
|
||||
return ret;
|
||||
}
|
||||
virtual bool readDwgEntities(DRW_Interface& intfa){
|
||||
bool ret = true;
|
||||
dwgBuffer dataBuf(objData, uncompSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||
ret = dwgReader::readDwgEntities(intfa, &dataBuf);
|
||||
return ret;
|
||||
}
|
||||
virtual bool readDwgObjects(DRW_Interface& intfa){
|
||||
bool ret = true;
|
||||
dwgBuffer dataBuf(objData, uncompSize, &decoder);
|
||||
dwgBuffer dataBuf(objData, static_cast<int>(uncompSize), &decoder);
|
||||
ret = dwgReader::readDwgObjects(intfa, &dataBuf);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -219,9 +219,9 @@ void dwgCompressor::decompress18(duint8 *cbuf, duint8 *dbuf, duint32 csize, duin
|
|||
|
||||
|
||||
void dwgCompressor::decrypt18Hdr(duint8 *buf, duint32 size, duint32 offset){
|
||||
duint8 max = size / 4;
|
||||
duint8 max = static_cast<duint8>(size / 4);
|
||||
duint32 secMask = 0x4164536b ^ offset;
|
||||
duint32* pHdr = (duint32*)buf;
|
||||
duint32* pHdr = reinterpret_cast<duint32*>(buf);
|
||||
for (duint8 j = 0; j < max; j++)
|
||||
*pHdr++ ^= secMask;
|
||||
}
|
||||
|
@ -245,7 +245,7 @@ duint32 dwgCompressor::litLength21(duint8 *cbuf, duint8 oc, duint32 *si){
|
|||
if (n == 0xff) {
|
||||
do {
|
||||
n = cbuf[srcIndex++];
|
||||
n |= (duint32)(cbuf[srcIndex++] << 8);
|
||||
n |= static_cast<duint32>(cbuf[srcIndex++] << 8);
|
||||
length += n;
|
||||
} while (n == 0xffff);
|
||||
}
|
||||
|
|
|
@ -29,8 +29,16 @@ public:
|
|||
|
||||
class dwgCompressor {
|
||||
public:
|
||||
dwgCompressor(){}
|
||||
~dwgCompressor(){}
|
||||
dwgCompressor()
|
||||
: bufC(),
|
||||
bufD(),
|
||||
sizeC(),
|
||||
sizeD(),
|
||||
pos(),
|
||||
rpos()
|
||||
{}
|
||||
|
||||
~dwgCompressor() = default;
|
||||
|
||||
void decompress18(duint8 *cbuf, duint8 *dbuf, duint32 csize, duint32 dsize);
|
||||
static void decrypt18Hdr(duint8 *buf, duint32 size, duint32 offset);
|
||||
|
|
|
@ -105,13 +105,13 @@ bool dxfReaderBinary::readCode(int *code) {
|
|||
unsigned short *int16p;
|
||||
char buffer[2];
|
||||
filestr->read(buffer,2);
|
||||
int16p = (unsigned short *) buffer;
|
||||
int16p = reinterpret_cast<unsigned short *>(buffer);
|
||||
//exist a 32bits int (code 90) with 2 bytes???
|
||||
if ((*code == 90) && (*int16p>2000)){
|
||||
DRW_DBG(*code); DRW_DBG(" de 16bits\n");
|
||||
filestr->seekg(-4, std::ios_base::cur);
|
||||
filestr->read(buffer,2);
|
||||
int16p = (unsigned short *) buffer;
|
||||
int16p = reinterpret_cast<unsigned short *>(buffer);
|
||||
}
|
||||
*code = *int16p;
|
||||
DRW_DBG(*code); DRW_DBG("\n");
|
||||
|
@ -137,7 +137,7 @@ bool dxfReaderBinary::readInt16() {
|
|||
type = INT32;
|
||||
char buffer[2];
|
||||
filestr->read(buffer,2);
|
||||
intData = (int)((buffer[1] << 8) | buffer[0]);
|
||||
intData = static_cast<int>((buffer[1] << 8) | buffer[0]);
|
||||
DRW_DBG(intData); DRW_DBG("\n");
|
||||
return (filestr->good());
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ bool dxfReaderBinary::readInt32() {
|
|||
unsigned int *int32p;
|
||||
char buffer[4];
|
||||
filestr->read(buffer,4);
|
||||
int32p = (unsigned int *) buffer;
|
||||
int32p = reinterpret_cast<unsigned int *>(buffer);
|
||||
intData = *int32p;
|
||||
DRW_DBG(intData); DRW_DBG("\n");
|
||||
return (filestr->good());
|
||||
|
@ -158,7 +158,7 @@ bool dxfReaderBinary::readInt64() {
|
|||
unsigned long long int *int64p; //64 bits integer pointer
|
||||
char buffer[8];
|
||||
filestr->read(buffer,8);
|
||||
int64p = (unsigned long long int *) buffer;
|
||||
int64p = reinterpret_cast<unsigned long long int *>(buffer);
|
||||
int64 = *int64p;
|
||||
DRW_DBG(int64); DRW_DBG(" int64\n");
|
||||
return (filestr->good());
|
||||
|
@ -169,7 +169,7 @@ bool dxfReaderBinary::readDouble() {
|
|||
double *result;
|
||||
char buffer[8];
|
||||
filestr->read(buffer,8);
|
||||
result = (double *) buffer;
|
||||
result = reinterpret_cast<double *>(buffer);
|
||||
doubleData = *result;
|
||||
DRW_DBG(doubleData); DRW_DBG("\n");
|
||||
return (filestr->good());
|
||||
|
@ -179,7 +179,7 @@ bool dxfReaderBinary::readDouble() {
|
|||
bool dxfReaderBinary::readBool() {
|
||||
char buffer[1];
|
||||
filestr->read(buffer,1);
|
||||
intData = (int)(buffer[0]);
|
||||
intData = static_cast<int>(buffer[0]);
|
||||
DRW_DBG(intData); DRW_DBG("\n");
|
||||
return (filestr->good());
|
||||
}
|
||||
|
|
|
@ -27,11 +27,18 @@ public:
|
|||
};
|
||||
enum TYPE type;
|
||||
public:
|
||||
dxfReader(std::istream *stream){
|
||||
filestr = stream;
|
||||
type = INVALID;
|
||||
}
|
||||
virtual ~dxfReader(){}
|
||||
dxfReader(std::istream *stream)
|
||||
: type(INVALID),
|
||||
filestr(stream),
|
||||
strData(),
|
||||
doubleData(),
|
||||
intData(),
|
||||
int64(),
|
||||
skip(),
|
||||
decoder()
|
||||
{}
|
||||
|
||||
virtual ~dxfReader() = default;
|
||||
bool readRec(int *code);
|
||||
|
||||
std::string getString() {return strData;}
|
||||
|
@ -65,6 +72,7 @@ protected:
|
|||
unsigned long long int int64; //64 bits integer
|
||||
bool skip; //set to true for ascii dxf, false for binary
|
||||
private:
|
||||
Q_DISABLE_COPY(dxfReader)
|
||||
DRW_TextCodec decoder;
|
||||
};
|
||||
|
||||
|
|
|
@ -105,8 +105,8 @@ bool dxfWriter::writeUtf8Caps(int code, std::string text) {
|
|||
|
||||
bool dxfWriterBinary::writeString(int code, std::string text) {
|
||||
char bufcode[2];
|
||||
bufcode[0] =code & 0xFF;
|
||||
bufcode[1] =code >> 8;
|
||||
bufcode[0] = static_cast<char>(code & 0xFF);
|
||||
bufcode[1] = static_cast<char>(code >> 8);
|
||||
filestr->write(bufcode, 2);
|
||||
*filestr << text << '\0';
|
||||
return (filestr->good());
|
||||
|
@ -145,10 +145,10 @@ bool dxfWriterBinary::writeString(int code, std::string text) {
|
|||
bool dxfWriterBinary::writeInt16(int code, int data) {
|
||||
char bufcode[2];
|
||||
char buffer[2];
|
||||
bufcode[0] =code & 0xFF;
|
||||
bufcode[1] =code >> 8;
|
||||
buffer[0] =data & 0xFF;
|
||||
buffer[1] =data >> 8;
|
||||
bufcode[0] = static_cast<char>(code & 0xFF);
|
||||
bufcode[1] = static_cast<char>(code >> 8);
|
||||
buffer[0] = static_cast<char>(data & 0xFF);
|
||||
buffer[1] = static_cast<char>(data >> 8);
|
||||
filestr->write(bufcode, 2);
|
||||
filestr->write(buffer, 2);
|
||||
return (filestr->good());
|
||||
|
@ -156,32 +156,32 @@ bool dxfWriterBinary::writeInt16(int code, int data) {
|
|||
|
||||
bool dxfWriterBinary::writeInt32(int code, int data) {
|
||||
char buffer[4];
|
||||
buffer[0] =code & 0xFF;
|
||||
buffer[1] =code >> 8;
|
||||
buffer[0] = static_cast<char>(code & 0xFF);
|
||||
buffer[1] = static_cast<char>(code >> 8);
|
||||
filestr->write(buffer, 2);
|
||||
|
||||
buffer[0] =data & 0xFF;
|
||||
buffer[1] =data >> 8;
|
||||
buffer[2] =data >> 16;
|
||||
buffer[3] =data >> 24;
|
||||
buffer[0] = static_cast<char>(data & 0xFF);
|
||||
buffer[1] = static_cast<char>(data >> 8);
|
||||
buffer[2] = static_cast<char>(data >> 16);
|
||||
buffer[3] = static_cast<char>(data >> 24);
|
||||
filestr->write(buffer, 4);
|
||||
return (filestr->good());
|
||||
}
|
||||
|
||||
bool dxfWriterBinary::writeInt64(int code, unsigned long long int data) {
|
||||
char buffer[8];
|
||||
buffer[0] =code & 0xFF;
|
||||
buffer[1] =code >> 8;
|
||||
buffer[0] = static_cast<char>(code & 0xFF);
|
||||
buffer[1] = static_cast<char>(code >> 8);
|
||||
filestr->write(buffer, 2);
|
||||
|
||||
buffer[0] =data & 0xFF;
|
||||
buffer[1] =data >> 8;
|
||||
buffer[2] =data >> 16;
|
||||
buffer[3] =data >> 24;
|
||||
buffer[4] =data >> 32;
|
||||
buffer[5] =data >> 40;
|
||||
buffer[6] =data >> 48;
|
||||
buffer[7] =data >> 56;
|
||||
buffer[0] = static_cast<char>(data & 0xFF);
|
||||
buffer[1] = static_cast<char>(data >> 8);
|
||||
buffer[2] = static_cast<char>(data >> 16);
|
||||
buffer[3] = static_cast<char>(data >> 24);
|
||||
buffer[4] = static_cast<char>(data >> 32);
|
||||
buffer[5] = static_cast<char>(data >> 40);
|
||||
buffer[6] = static_cast<char>(data >> 48);
|
||||
buffer[7] = static_cast<char>(data >> 56);
|
||||
filestr->write(buffer, 8);
|
||||
return (filestr->good());
|
||||
}
|
||||
|
@ -189,12 +189,12 @@ bool dxfWriterBinary::writeInt64(int code, unsigned long long int data) {
|
|||
bool dxfWriterBinary::writeDouble(int code, double data) {
|
||||
char bufcode[2];
|
||||
char buffer[8];
|
||||
bufcode[0] =code & 0xFF;
|
||||
bufcode[1] =code >> 8;
|
||||
bufcode[0] = static_cast<char>(code & 0xFF);
|
||||
bufcode[1] = static_cast<char>(code >> 8);
|
||||
filestr->write(bufcode, 2);
|
||||
|
||||
unsigned char *val;
|
||||
val = (unsigned char *) &data;
|
||||
val = reinterpret_cast<unsigned char *>(&data);
|
||||
for (int i=0; i<8; i++) {
|
||||
buffer[i] =val[i];
|
||||
}
|
||||
|
@ -206,8 +206,8 @@ bool dxfWriterBinary::writeDouble(int code, double data) {
|
|||
bool dxfWriterBinary::writeBool(int code, bool data) {
|
||||
char buffer[1];
|
||||
char bufcode[2];
|
||||
bufcode[0] =code & 0xFF;
|
||||
bufcode[1] =code >> 8;
|
||||
bufcode[0] = static_cast<char>(code & 0xFF);
|
||||
bufcode[1] = static_cast<char>(code >> 8);
|
||||
filestr->write(bufcode, 2);
|
||||
buffer[0] = data;
|
||||
filestr->write(buffer, 1);
|
||||
|
|
|
@ -17,8 +17,12 @@
|
|||
|
||||
class dxfWriter {
|
||||
public:
|
||||
dxfWriter(std::ofstream *stream){filestr = stream; /*count =0;*/}
|
||||
virtual ~dxfWriter(){}
|
||||
dxfWriter(std::ofstream *stream)
|
||||
: filestr(stream),
|
||||
encoder()
|
||||
{}
|
||||
|
||||
virtual ~dxfWriter() = default;
|
||||
virtual bool writeString(int code, std::string text) = 0;
|
||||
bool writeUtf8String(int code, std::string text);
|
||||
bool writeUtf8Caps(int code, std::string text);
|
||||
|
@ -34,6 +38,7 @@ public:
|
|||
protected:
|
||||
std::ofstream *filestr;
|
||||
private:
|
||||
Q_DISABLE_COPY(dxfWriter)
|
||||
DRW_TextCodec encoder;
|
||||
};
|
||||
|
||||
|
|
|
@ -29,20 +29,19 @@
|
|||
#include <new> // std::nothrow
|
||||
#include <fstream>
|
||||
|
||||
RScodec::RScodec(unsigned int pp, int mm, int tt) {
|
||||
this->mm = mm;
|
||||
this->tt = tt;
|
||||
nn = (1<<mm) -1; //mm==8 nn=255
|
||||
kk = nn -(tt*2);
|
||||
isOk = true;
|
||||
|
||||
alpha_to = new (std::nothrow) int[nn+1];
|
||||
index_of = new (std::nothrow) unsigned int[nn+1];
|
||||
gg = new (std::nothrow) int[nn-kk+1];
|
||||
|
||||
RSgenerate_gf(pp) ;
|
||||
RScodec::RScodec(unsigned int pp, int mm, int tt)
|
||||
: mm(mm),
|
||||
tt(tt),
|
||||
nn((1<<mm) -1), //mm==8 nn=255
|
||||
kk(nn -(tt*2)),
|
||||
gg(new (std::nothrow) int[nn-kk+1]),
|
||||
isOk(true),
|
||||
index_of(new (std::nothrow) unsigned int[nn+1]),
|
||||
alpha_to(new (std::nothrow) int[nn+1])
|
||||
{
|
||||
RSgenerate_gf(pp);
|
||||
/* compute the generator polynomial for this RS code */
|
||||
RSgen_poly() ;
|
||||
RSgen_poly();
|
||||
}
|
||||
|
||||
RScodec::~RScodec() {
|
||||
|
@ -304,7 +303,7 @@ int RScodec::calcDecode(unsigned char* data, int* recd, int** elp, int* d, int*
|
|||
}
|
||||
q = q % nn;
|
||||
err[loc[i]] = alpha_to[(err[loc[i]] - q + nn) % nn];
|
||||
data[loc[i]] ^= err[loc[i]]; /*change errors by correct data, in polynomial form */
|
||||
data[loc[i]] ^= static_cast<unsigned char>(err[loc[i]]);/*change errors by correct data, in polynomial form */
|
||||
}
|
||||
}
|
||||
return count;
|
||||
|
@ -330,10 +329,10 @@ bool RScodec::encode(unsigned char *data, unsigned char *parity) {
|
|||
if (feedback != -1) {
|
||||
for (j=bb-1; j>0; j--)
|
||||
if (gg[j] != -1)
|
||||
bd[j] = bd[j-1]^alpha_to[(gg[j]+feedback)%nn] ;
|
||||
bd[j] = static_cast<unsigned char>(bd[j-1]^alpha_to[(gg[j]+feedback)%nn]);
|
||||
else
|
||||
bd[j] = bd[j-1] ;
|
||||
bd[0] = alpha_to[(gg[0]+feedback)%nn] ;
|
||||
bd[0] = static_cast<unsigned char>(alpha_to[(gg[0]+feedback)%nn]);
|
||||
} else {
|
||||
for (j=bb-1; j>0; j--)
|
||||
bd[j] = bd[j-1] ;
|
||||
|
|
|
@ -28,6 +28,9 @@
|
|||
|
||||
#ifndef RSCODEC_H
|
||||
#define RSCODEC_H
|
||||
|
||||
#include <QtGlobal>
|
||||
|
||||
/**
|
||||
mm: RS code over GF(2^4)
|
||||
nn: nn= (2^mm) - 1 length of codeword
|
||||
|
@ -55,6 +58,7 @@ private:
|
|||
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(RScodec)
|
||||
int mm; //RS code over GF(2^4)
|
||||
int tt; //number of errors that can be corrected
|
||||
int nn; //(2^mm) - 1 length of codeword
|
||||
|
|
|
@ -35,17 +35,20 @@
|
|||
secObjects
|
||||
};*/
|
||||
|
||||
dwgR::dwgR(){
|
||||
dwgR::dwgR()
|
||||
: version(DRW::UNKNOWNV),
|
||||
error(DRW::BAD_NONE),
|
||||
fileName(),
|
||||
applyExt(false),
|
||||
codePage(),
|
||||
iface(),
|
||||
reader(nullptr)
|
||||
{
|
||||
DRW_DBGSL(DRW_dbg::NONE);
|
||||
reader = NULL;
|
||||
// writer = NULL;
|
||||
applyExt = false;
|
||||
version = DRW::UNKNOWNV;
|
||||
error = DRW::BAD_NONE;
|
||||
}
|
||||
|
||||
dwgR::~dwgR(){
|
||||
if (reader != NULL)
|
||||
if (reader != nullptr)
|
||||
delete reader;
|
||||
|
||||
}
|
||||
|
@ -74,9 +77,9 @@ bool dwgR::getPreview(std::istream &stream){
|
|||
} else
|
||||
error = DRW::BAD_READ_METADATA;
|
||||
|
||||
if (reader != NULL) {
|
||||
if (reader != nullptr) {
|
||||
delete reader;
|
||||
reader = NULL;
|
||||
reader = nullptr;
|
||||
}
|
||||
return isOk;
|
||||
}
|
||||
|
@ -101,9 +104,9 @@ bool dwgR::read(std::istream &stream, DRW_Interface *interface_, bool ext){
|
|||
} else
|
||||
error = DRW::BAD_READ_METADATA;
|
||||
|
||||
if (reader != NULL) {
|
||||
if (reader != nullptr) {
|
||||
delete reader;
|
||||
reader = NULL;
|
||||
reader = nullptr;
|
||||
}
|
||||
|
||||
return isOk;
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#define LIBDWGR_H
|
||||
|
||||
#include <string>
|
||||
//#include <deque>
|
||||
#include <QtGlobal>
|
||||
#include "drw_entities.h"
|
||||
#include "drw_objects.h"
|
||||
#include "drw_classes.h"
|
||||
|
@ -37,6 +37,7 @@ private:
|
|||
bool open(std::istream *stream);
|
||||
bool processDwg();
|
||||
private:
|
||||
Q_DISABLE_COPY(dwgR)
|
||||
DRW::Version version;
|
||||
DRW::error error;
|
||||
std::string fileName;
|
||||
|
|
|
@ -32,18 +32,33 @@
|
|||
secObjects
|
||||
};*/
|
||||
|
||||
dxfRW::dxfRW(const char* name){
|
||||
dxfRW::dxfRW(const char* name)
|
||||
: version(),
|
||||
fileName(name),
|
||||
codePage(),
|
||||
binFile(),
|
||||
reader(nullptr),
|
||||
writer(nullptr),
|
||||
iface(),
|
||||
header(),
|
||||
nextentity(),
|
||||
entCount(),
|
||||
wlayer0(),
|
||||
dimstyleStd(),
|
||||
applyExt(false),
|
||||
writingBlock(),
|
||||
elParts(128), //parts munber when convert ellipse to polyline
|
||||
blockMap(),
|
||||
imageDef(),
|
||||
currHandle()
|
||||
{
|
||||
DRW_DBGSL(DRW_dbg::NONE);
|
||||
fileName = name;
|
||||
reader = NULL;
|
||||
writer = NULL;
|
||||
applyExt = false;
|
||||
elParts = 128; //parts munber when convert ellipse to polyline
|
||||
}
|
||||
|
||||
dxfRW::~dxfRW(){
|
||||
if (reader != NULL)
|
||||
if (reader != nullptr)
|
||||
delete reader;
|
||||
if (writer != NULL)
|
||||
if (writer != nullptr)
|
||||
delete writer;
|
||||
for (std::vector<DRW_ImageDef*>::iterator it=imageDef.begin(); it!=imageDef.end(); ++it)
|
||||
delete *it;
|
||||
|
@ -66,7 +81,7 @@ bool dxfRW::read(DRW_Interface *interface_, bool ext){
|
|||
bool isOk = false;
|
||||
applyExt = ext;
|
||||
std::ifstream filestr;
|
||||
if ( interface_ == NULL )
|
||||
if ( interface_ == nullptr )
|
||||
return isOk;
|
||||
DRW_DBG("dxfRW::read 1def\n");
|
||||
filestr.open (fileName.c_str(), std::ios_base::in | std::ios::binary);
|
||||
|
@ -77,7 +92,7 @@ bool dxfRW::read(DRW_Interface *interface_, bool ext){
|
|||
|
||||
char line[22];
|
||||
char line2[22] = "AutoCAD Binary DXF\r\n";
|
||||
line2[20] = (char)26;
|
||||
line2[20] = static_cast<char>(26);
|
||||
line2[21] = '\0';
|
||||
filestr.read (line, 22);
|
||||
filestr.close();
|
||||
|
@ -99,7 +114,7 @@ bool dxfRW::read(DRW_Interface *interface_, bool ext){
|
|||
isOk = processDxf();
|
||||
filestr.close();
|
||||
delete reader;
|
||||
reader = NULL;
|
||||
reader = nullptr;
|
||||
return isOk;
|
||||
}
|
||||
|
||||
|
@ -112,7 +127,7 @@ bool dxfRW::write(DRW_Interface *interface_, DRW::Version ver, bool bin){
|
|||
if (binFile) {
|
||||
filestr.open (fileName.c_str(), std::ios_base::out | std::ios::binary | std::ios::trunc);
|
||||
//write sentinel
|
||||
filestr << "AutoCAD Binary DXF\r\n" << (char)26 << '\0';
|
||||
filestr << "AutoCAD Binary DXF\r\n" << static_cast<char>(26) << '\0';
|
||||
writer = new dxfWriterBinary(&filestr);
|
||||
DRW_DBG("dxfRW::read binary file\n");
|
||||
} else {
|
||||
|
@ -157,7 +172,7 @@ bool dxfRW::write(DRW_Interface *interface_, DRW::Version ver, bool bin){
|
|||
filestr.close();
|
||||
isOk = true;
|
||||
delete writer;
|
||||
writer = NULL;
|
||||
writer = nullptr;
|
||||
return isOk;
|
||||
}
|
||||
|
||||
|
@ -530,7 +545,7 @@ bool dxfRW::writePoint(DRW_Point *ent) {
|
|||
}
|
||||
writer->writeDouble(10, ent->basePoint.x);
|
||||
writer->writeDouble(20, ent->basePoint.y);
|
||||
if (ent->basePoint.z != 0.0) {
|
||||
if (not qFuzzyIsNull(ent->basePoint.z)) {
|
||||
writer->writeDouble(30, ent->basePoint.z);
|
||||
}
|
||||
return true;
|
||||
|
@ -544,7 +559,7 @@ bool dxfRW::writeLine(DRW_Line *ent) {
|
|||
}
|
||||
writer->writeDouble(10, ent->basePoint.x);
|
||||
writer->writeDouble(20, ent->basePoint.y);
|
||||
if (ent->basePoint.z != 0.0 || ent->secPoint.z != 0.0) {
|
||||
if (not qFuzzyIsNull(ent->basePoint.z) || not qFuzzyIsNull(ent->secPoint.z)) {
|
||||
writer->writeDouble(30, ent->basePoint.z);
|
||||
writer->writeDouble(11, ent->secPoint.x);
|
||||
writer->writeDouble(21, ent->secPoint.y);
|
||||
|
@ -566,7 +581,7 @@ bool dxfRW::writeRay(DRW_Ray *ent) {
|
|||
crd.unitize();
|
||||
writer->writeDouble(10, ent->basePoint.x);
|
||||
writer->writeDouble(20, ent->basePoint.y);
|
||||
if (ent->basePoint.z != 0.0 || ent->secPoint.z != 0.0) {
|
||||
if (not qFuzzyIsNull(ent->basePoint.z) || not qFuzzyIsNull(ent->secPoint.z)) {
|
||||
writer->writeDouble(30, ent->basePoint.z);
|
||||
writer->writeDouble(11, crd.x);
|
||||
writer->writeDouble(21, crd.y);
|
||||
|
@ -588,7 +603,7 @@ bool dxfRW::writeXline(DRW_Xline *ent) {
|
|||
crd.unitize();
|
||||
writer->writeDouble(10, ent->basePoint.x);
|
||||
writer->writeDouble(20, ent->basePoint.y);
|
||||
if (ent->basePoint.z != 0.0 || ent->secPoint.z != 0.0) {
|
||||
if (not qFuzzyIsNull(ent->basePoint.z) || not qFuzzyIsNull(ent->secPoint.z)) {
|
||||
writer->writeDouble(30, ent->basePoint.z);
|
||||
writer->writeDouble(11, crd.x);
|
||||
writer->writeDouble(21, crd.y);
|
||||
|
@ -608,7 +623,7 @@ bool dxfRW::writeCircle(DRW_Circle *ent) {
|
|||
}
|
||||
writer->writeDouble(10, ent->basePoint.x);
|
||||
writer->writeDouble(20, ent->basePoint.y);
|
||||
if (ent->basePoint.z != 0.0) {
|
||||
if (not qFuzzyIsNull(ent->basePoint.z)) {
|
||||
writer->writeDouble(30, ent->basePoint.z);
|
||||
}
|
||||
writer->writeDouble(40, ent->radious);
|
||||
|
@ -623,7 +638,7 @@ bool dxfRW::writeArc(DRW_Arc *ent) {
|
|||
}
|
||||
writer->writeDouble(10, ent->basePoint.x);
|
||||
writer->writeDouble(20, ent->basePoint.y);
|
||||
if (ent->basePoint.z != 0.0) {
|
||||
if (not qFuzzyIsNull(ent->basePoint.z)) {
|
||||
writer->writeDouble(30, ent->basePoint.z);
|
||||
}
|
||||
writer->writeDouble(40, ent->radious);
|
||||
|
@ -733,23 +748,23 @@ bool dxfRW::writeLWPolyline(DRW_LWPolyline *ent){
|
|||
if (version > DRW::AC1009) {
|
||||
writer->writeString(100, "AcDbPolyline");
|
||||
}
|
||||
ent->vertexnum = (int)ent->vertlist.size();
|
||||
ent->vertexnum = static_cast<int>(ent->vertlist.size());
|
||||
writer->writeInt32(90, ent->vertexnum);
|
||||
writer->writeInt16(70, ent->flags);
|
||||
writer->writeDouble(43, ent->width);
|
||||
if (ent->elevation != 0)
|
||||
if (not qFuzzyIsNull(ent->elevation))
|
||||
writer->writeDouble(38, ent->elevation);
|
||||
if (ent->thickness != 0)
|
||||
if (not qFuzzyIsNull(ent->thickness))
|
||||
writer->writeDouble(39, ent->thickness);
|
||||
for (int i = 0; i< ent->vertexnum; i++){
|
||||
DRW_Vertex2D *v = ent->vertlist.at(i);
|
||||
writer->writeDouble(10, v->x);
|
||||
writer->writeDouble(20, v->y);
|
||||
if (v->stawidth != 0)
|
||||
if (not qFuzzyIsNull(v->stawidth))
|
||||
writer->writeDouble(40, v->stawidth);
|
||||
if (v->endwidth != 0)
|
||||
if (not qFuzzyIsNull(v->endwidth))
|
||||
writer->writeDouble(41, v->endwidth);
|
||||
if (v->bulge != 0)
|
||||
if (not qFuzzyIsNull(v->bulge))
|
||||
writer->writeDouble(42, v->bulge);
|
||||
}
|
||||
} else {
|
||||
|
@ -774,14 +789,14 @@ bool dxfRW::writePolyline(DRW_Polyline *ent) {
|
|||
writer->writeDouble(10, 0.0);
|
||||
writer->writeDouble(20, 0.0);
|
||||
writer->writeDouble(30, ent->basePoint.z);
|
||||
if (ent->thickness != 0) {
|
||||
if (not qFuzzyIsNull(ent->thickness)) {
|
||||
writer->writeDouble(39, ent->thickness);
|
||||
}
|
||||
writer->writeInt16(70, ent->flags);
|
||||
if (ent->defstawidth != 0) {
|
||||
if (not qFuzzyIsNull(ent->defstawidth)) {
|
||||
writer->writeDouble(40, ent->defstawidth);
|
||||
}
|
||||
if (ent->defendwidth != 0) {
|
||||
if (not qFuzzyIsNull(ent->defendwidth)) {
|
||||
writer->writeDouble(41, ent->defendwidth);
|
||||
}
|
||||
if (ent->flags & 16 || ent->flags & 32) {
|
||||
|
@ -798,7 +813,7 @@ bool dxfRW::writePolyline(DRW_Polyline *ent) {
|
|||
writer->writeInt16(75, ent->curvetype);
|
||||
}
|
||||
DRW_Coord crd = ent->extPoint;
|
||||
if (crd.x != 0 || crd.y != 0 || crd.z != 1) {
|
||||
if (not qFuzzyIsNull(crd.x) || not qFuzzyIsNull(crd.y) || not DRW_FuzzyComparePossibleNulls(crd.z, 1)) {
|
||||
writer->writeDouble(210, crd.x);
|
||||
writer->writeDouble(220, crd.y);
|
||||
writer->writeDouble(230, crd.z);
|
||||
|
@ -827,11 +842,11 @@ bool dxfRW::writePolyline(DRW_Polyline *ent) {
|
|||
writer->writeDouble(20, v->basePoint.y);
|
||||
writer->writeDouble(30, v->basePoint.z);
|
||||
}
|
||||
if (v->stawidth != 0)
|
||||
if (not qFuzzyIsNull(v->stawidth))
|
||||
writer->writeDouble(40, v->stawidth);
|
||||
if (v->endwidth != 0)
|
||||
if (not qFuzzyIsNull(v->endwidth))
|
||||
writer->writeDouble(41, v->endwidth);
|
||||
if (v->bulge != 0)
|
||||
if (not qFuzzyIsNull(v->bulge))
|
||||
writer->writeDouble(42, v->bulge);
|
||||
if (v->flags != 0) {
|
||||
writer->writeInt16(70, ent->flags);
|
||||
|
@ -883,7 +898,7 @@ bool dxfRW::writeSpline(DRW_Spline *ent){
|
|||
for (int i = 0; i< ent->nknots; i++){
|
||||
writer->writeDouble(40, ent->knotslist.at(i));
|
||||
}
|
||||
for (int i = 0; i< (int)ent->weightlist.size(); i++) {
|
||||
for (int i = 0; i< static_cast<int>(ent->weightlist.size()); i++) {
|
||||
writer->writeDouble(41, ent->weightlist.at(i));
|
||||
}
|
||||
for (int i = 0; i< ent->ncontrol; i++){
|
||||
|
@ -912,7 +927,7 @@ bool dxfRW::writeHatch(DRW_Hatch *ent){
|
|||
writer->writeString(2, ent->name);
|
||||
writer->writeInt16(70, ent->solid);
|
||||
writer->writeInt16(71, ent->associative);
|
||||
ent->loopsnum = (int)ent->looplist.size();
|
||||
ent->loopsnum = static_cast<int>(ent->looplist.size());
|
||||
writer->writeInt16(91, ent->loopsnum);
|
||||
//write paths data
|
||||
for (int i = 0; i< ent->loopsnum; i++){
|
||||
|
@ -928,7 +943,7 @@ bool dxfRW::writeHatch(DRW_Hatch *ent){
|
|||
switch ( (loop->objlist.at(j))->eType) {
|
||||
case DRW::LINE: {
|
||||
writer->writeInt16(72, 1);
|
||||
DRW_Line* l = (DRW_Line*)loop->objlist.at(j);
|
||||
DRW_Line* l = static_cast<DRW_Line*>(loop->objlist.at(j));
|
||||
writer->writeDouble(10, l->basePoint.x);
|
||||
writer->writeDouble(20, l->basePoint.y);
|
||||
writer->writeDouble(11, l->secPoint.x);
|
||||
|
@ -936,7 +951,7 @@ bool dxfRW::writeHatch(DRW_Hatch *ent){
|
|||
break; }
|
||||
case DRW::ARC: {
|
||||
writer->writeInt16(72, 2);
|
||||
DRW_Arc* a = (DRW_Arc*)loop->objlist.at(j);
|
||||
DRW_Arc* a = static_cast<DRW_Arc*>(loop->objlist.at(j));
|
||||
writer->writeDouble(10, a->basePoint.x);
|
||||
writer->writeDouble(20, a->basePoint.y);
|
||||
writer->writeDouble(40, a->radious);
|
||||
|
@ -946,7 +961,7 @@ bool dxfRW::writeHatch(DRW_Hatch *ent){
|
|||
break; }
|
||||
case DRW::ELLIPSE: {
|
||||
writer->writeInt16(72, 3);
|
||||
DRW_Ellipse* a = (DRW_Ellipse*)loop->objlist.at(j);
|
||||
DRW_Ellipse* a = static_cast<DRW_Ellipse*>(loop->objlist.at(j));
|
||||
a->correctAxis();
|
||||
writer->writeDouble(10, a->basePoint.x);
|
||||
writer->writeDouble(20, a->basePoint.y);
|
||||
|
@ -1000,7 +1015,7 @@ bool dxfRW::writeLeader(DRW_Leader *ent){
|
|||
writer->writeDouble(40, ent->textheight);
|
||||
writer->writeDouble(41, ent->textwidth);
|
||||
writer->writeDouble(76, ent->vertnum);
|
||||
writer->writeDouble(76, ent->vertexlist.size());
|
||||
writer->writeDouble(76, static_cast<double>(ent->vertexlist.size()));
|
||||
for (unsigned int i=0; i<ent->vertexlist.size(); i++) {
|
||||
DRW_Coord *vert = ent->vertexlist.at(i);
|
||||
writer->writeDouble(10, vert->x);
|
||||
|
@ -1034,10 +1049,10 @@ bool dxfRW::writeDimension(DRW_Dimension *ent) {
|
|||
writer->writeInt16(71, ent->getAlign());
|
||||
if ( ent->getTextLineStyle() != 1)
|
||||
writer->writeInt16(72, ent->getTextLineStyle());
|
||||
if ( ent->getTextLineFactor() != 1)
|
||||
if ( not DRW_FuzzyComparePossibleNulls(ent->getTextLineFactor(), 1))
|
||||
writer->writeDouble(41, ent->getTextLineFactor());
|
||||
writer->writeUtf8String(3, ent->getStyle());
|
||||
if ( ent->getTextLineFactor() != 0)
|
||||
if ( not qFuzzyIsNull(ent->getTextLineFactor()))
|
||||
writer->writeDouble(53, ent->getDir());
|
||||
writer->writeDouble(210, ent->getExtrusion().x);
|
||||
writer->writeDouble(220, ent->getExtrusion().y);
|
||||
|
@ -1048,10 +1063,10 @@ bool dxfRW::writeDimension(DRW_Dimension *ent) {
|
|||
switch (ent->eType) {
|
||||
case DRW::DIMALIGNED:
|
||||
case DRW::DIMLINEAR: {
|
||||
DRW_DimAligned * dd = (DRW_DimAligned*)ent;
|
||||
DRW_DimAligned * dd = static_cast<DRW_DimAligned*>(ent);
|
||||
writer->writeString(100, "AcDbAlignedDimension");
|
||||
DRW_Coord crd = dd->getClonepoint();
|
||||
if (crd.x != 0 || crd.y != 0 || crd.z != 0) {
|
||||
if (not qFuzzyIsNull(crd.x) || not qFuzzyIsNull(crd.y) || not qFuzzyIsNull(crd.z)) {
|
||||
writer->writeDouble(12, crd.x);
|
||||
writer->writeDouble(22, crd.y);
|
||||
writer->writeDouble(32, crd.z);
|
||||
|
@ -1063,16 +1078,16 @@ bool dxfRW::writeDimension(DRW_Dimension *ent) {
|
|||
writer->writeDouble(24, dd->getDef2Point().y);
|
||||
writer->writeDouble(34, dd->getDef2Point().z);
|
||||
if (ent->eType == DRW::DIMLINEAR) {
|
||||
DRW_DimLinear * dl = (DRW_DimLinear*)ent;
|
||||
if (dl->getAngle() != 0)
|
||||
DRW_DimLinear * dl = static_cast<DRW_DimLinear*>(ent);
|
||||
if (not qFuzzyIsNull(dl->getAngle()))
|
||||
writer->writeDouble(50, dl->getAngle());
|
||||
if (dl->getOblique() != 0)
|
||||
if (not qFuzzyIsNull(dl->getOblique()))
|
||||
writer->writeDouble(52, dl->getOblique());
|
||||
writer->writeString(100, "AcDbRotatedDimension");
|
||||
}
|
||||
break; }
|
||||
case DRW::DIMRADIAL: {
|
||||
DRW_DimRadial * dd = (DRW_DimRadial*)ent;
|
||||
DRW_DimRadial * dd = static_cast<DRW_DimRadial*>(ent);
|
||||
writer->writeString(100, "AcDbRadialDimension");
|
||||
writer->writeDouble(15, dd->getDiameterPoint().x);
|
||||
writer->writeDouble(25, dd->getDiameterPoint().y);
|
||||
|
@ -1080,7 +1095,7 @@ bool dxfRW::writeDimension(DRW_Dimension *ent) {
|
|||
writer->writeDouble(40, dd->getLeaderLength());
|
||||
break; }
|
||||
case DRW::DIMDIAMETRIC: {
|
||||
DRW_DimDiametric * dd = (DRW_DimDiametric*)ent;
|
||||
DRW_DimDiametric * dd = static_cast<DRW_DimDiametric*>(ent);
|
||||
writer->writeString(100, "AcDbDiametricDimension");
|
||||
writer->writeDouble(15, dd->getDiameter1Point().x);
|
||||
writer->writeDouble(25, dd->getDiameter1Point().y);
|
||||
|
@ -1088,7 +1103,7 @@ bool dxfRW::writeDimension(DRW_Dimension *ent) {
|
|||
writer->writeDouble(40, dd->getLeaderLength());
|
||||
break; }
|
||||
case DRW::DIMANGULAR: {
|
||||
DRW_DimAngular * dd = (DRW_DimAngular*)ent;
|
||||
DRW_DimAngular * dd = static_cast<DRW_DimAngular*>(ent);
|
||||
writer->writeString(100, "AcDb2LineAngularDimension");
|
||||
writer->writeDouble(13, dd->getFirstLine1().x);
|
||||
writer->writeDouble(23, dd->getFirstLine1().y);
|
||||
|
@ -1104,7 +1119,7 @@ bool dxfRW::writeDimension(DRW_Dimension *ent) {
|
|||
writer->writeDouble(36, dd->getDimPoint().z);
|
||||
break; }
|
||||
case DRW::DIMANGULAR3P: {
|
||||
DRW_DimAngular3p * dd = (DRW_DimAngular3p*)ent;
|
||||
DRW_DimAngular3p * dd = static_cast<DRW_DimAngular3p*>(ent);
|
||||
writer->writeDouble(13, dd->getFirstLine().x);
|
||||
writer->writeDouble(23, dd->getFirstLine().y);
|
||||
writer->writeDouble(33, dd->getFirstLine().z);
|
||||
|
@ -1116,7 +1131,7 @@ bool dxfRW::writeDimension(DRW_Dimension *ent) {
|
|||
writer->writeDouble(35, dd->getVertexPoint().z);
|
||||
break; }
|
||||
case DRW::DIMORDINATE: {
|
||||
DRW_DimOrdinate * dd = (DRW_DimOrdinate*)ent;
|
||||
DRW_DimOrdinate * dd = static_cast<DRW_DimOrdinate*>(ent);
|
||||
writer->writeString(100, "AcDbOrdinateDimension");
|
||||
writer->writeDouble(13, dd->getFirstLine().x);
|
||||
writer->writeDouble(23, dd->getFirstLine().y);
|
||||
|
@ -1238,7 +1253,7 @@ bool dxfRW::writeViewport(DRW_Viewport *ent) {
|
|||
}
|
||||
writer->writeDouble(10, ent->basePoint.x);
|
||||
writer->writeDouble(20, ent->basePoint.y);
|
||||
if (ent->basePoint.z != 0.0)
|
||||
if (not qFuzzyIsNull(ent->basePoint.z))
|
||||
writer->writeDouble(30, ent->basePoint.z);
|
||||
writer->writeDouble(40, ent->pswidth);
|
||||
writer->writeDouble(41, ent->psheight);
|
||||
|
@ -1352,7 +1367,7 @@ bool dxfRW::writeBlock(DRW_Block *bk){
|
|||
writer->writeInt16(70, bk->flags);
|
||||
writer->writeDouble(10, bk->basePoint.x);
|
||||
writer->writeDouble(20, bk->basePoint.y);
|
||||
if (bk->basePoint.z != 0.0) {
|
||||
if (not qFuzzyIsNull(bk->basePoint.z)) {
|
||||
writer->writeDouble(30, bk->basePoint.z);
|
||||
}
|
||||
if (version > DRW::AC1009)
|
||||
|
@ -2667,6 +2682,10 @@ bool dxfRW::processDimension() {
|
|||
nextentity = reader->getString();
|
||||
DRW_DBG(nextentity); DRW_DBG("\n");
|
||||
int type = dim.type & 0x0F;
|
||||
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||
|
||||
switch (type) {
|
||||
case 0: {
|
||||
DRW_DimLinear d(dim);
|
||||
|
@ -2697,6 +2716,9 @@ bool dxfRW::processDimension() {
|
|||
iface->addDimOrdinate(&d);
|
||||
break; }
|
||||
}
|
||||
|
||||
QT_WARNING_POP
|
||||
|
||||
return true; //found new entity or ENDSEC, terminate
|
||||
}
|
||||
default:
|
||||
|
|
|
@ -72,6 +72,7 @@ public:
|
|||
void setEllipseParts(int parts){elParts = parts;} /*!< set parts munber when convert ellipse to polyline */
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(dxfRW)
|
||||
/// used by read() to parse the content of the file
|
||||
bool processDxf();
|
||||
bool processHeader();
|
||||
|
|
|
@ -264,10 +264,10 @@ void VTextManager::Update(const QString& qsName, const VPieceLabelData& data)
|
|||
}
|
||||
// MCP
|
||||
QStringList qslMaterials;
|
||||
qslMaterials << QApplication::translate("Detail", "Fabric", 0)
|
||||
<< QApplication::translate("Detail", "Lining", 0)
|
||||
<< QApplication::translate("Detail", "Interfacing", 0)
|
||||
<< QApplication::translate("Detail", "Interlining", 0);
|
||||
qslMaterials << QApplication::translate("Detail", "Fabric", nullptr)
|
||||
<< QApplication::translate("Detail", "Lining", nullptr)
|
||||
<< QApplication::translate("Detail", "Interfacing", nullptr)
|
||||
<< QApplication::translate("Detail", "Interlining", nullptr);
|
||||
QString qsText = QLatin1String("%1, ") + tr("cut") + QLatin1String(" %2%3");
|
||||
QStringList qslPlace;
|
||||
qslPlace << "" << QLatin1String(" ") + tr("on fold");
|
||||
|
|
|
@ -155,7 +155,7 @@ void SetOverrideCursor(Qt::CursorShape shape)
|
|||
#ifndef QT_NO_CURSOR
|
||||
QPixmap oldPixmap;
|
||||
QCursor* pOldCursor = QGuiApplication::overrideCursor();
|
||||
if (pOldCursor != 0)
|
||||
if (pOldCursor != nullptr)
|
||||
{
|
||||
oldPixmap = pOldCursor->pixmap();
|
||||
}
|
||||
|
@ -200,7 +200,7 @@ void RestoreOverrideCursor(Qt::CursorShape shape)
|
|||
#ifndef QT_NO_CURSOR
|
||||
QPixmap oldPixmap;
|
||||
QCursor* pOldCursor = QGuiApplication::overrideCursor();
|
||||
if (pOldCursor != 0)
|
||||
if (pOldCursor != nullptr)
|
||||
{
|
||||
oldPixmap = pOldCursor->pixmap();
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ class VSettings : public VCommonSettings
|
|||
Q_OBJECT
|
||||
public:
|
||||
VSettings(Format format, Scope scope, const QString &organization, const QString &application = QString(),
|
||||
QObject *parent = 0);
|
||||
QObject *parent = nullptr);
|
||||
|
||||
QString GetLabelLanguage() const;
|
||||
void SetLabelLanguage(const QString &value);
|
||||
|
|
|
@ -44,7 +44,7 @@ class VTapeSettings : public VCommonSettings
|
|||
Q_OBJECT
|
||||
public:
|
||||
VTapeSettings(Format format, Scope scope, const QString &organization, const QString &application = QString(),
|
||||
QObject *parent = 0);
|
||||
QObject *parent = nullptr);
|
||||
|
||||
QByteArray GetDataBaseGeometry() const;
|
||||
void SetDataBaseGeometry(const QByteArray &value);
|
||||
|
|
|
@ -132,7 +132,7 @@ static point2d_t* point_alloc()
|
|||
point2d_t* p;
|
||||
|
||||
p = (point2d_t*)malloc(sizeof(point2d_t));
|
||||
assert( p != NULL );
|
||||
assert( p != nullptr );
|
||||
// cppcheck-suppress memsetClassFloat
|
||||
memset(p, 0, sizeof(point2d_t));
|
||||
|
||||
|
@ -144,7 +144,7 @@ static point2d_t* point_alloc()
|
|||
*/
|
||||
static void point_free( point2d_t* p )
|
||||
{
|
||||
assert( p != NULL );
|
||||
assert( p != nullptr );
|
||||
free(p);
|
||||
}
|
||||
|
||||
|
@ -156,7 +156,7 @@ static halfedge_t* halfedge_alloc()
|
|||
halfedge_t* d;
|
||||
|
||||
d = (halfedge_t*)malloc(sizeof(halfedge_t));
|
||||
assert( d != NULL );
|
||||
assert( d != nullptr );
|
||||
memset(d, 0, sizeof(halfedge_t));
|
||||
|
||||
return d;
|
||||
|
@ -167,7 +167,7 @@ static halfedge_t* halfedge_alloc()
|
|||
*/
|
||||
static void halfedge_free( halfedge_t* d )
|
||||
{
|
||||
assert( d != NULL );
|
||||
assert( d != nullptr );
|
||||
memset(d, 0, sizeof(halfedge_t));
|
||||
free(d);
|
||||
}
|
||||
|
@ -182,21 +182,21 @@ void del_free_halfedges( delaunay_t *del )
|
|||
halfedge_t *d, *sig;
|
||||
|
||||
/* if there is nothing to do */
|
||||
if( del->points == NULL )
|
||||
if( del->points == nullptr )
|
||||
return;
|
||||
|
||||
for( i = 0; i <= (del->end_point - del->start_point); i++ )
|
||||
{
|
||||
/* free all the halfedges around the point */
|
||||
d = del->points[i]->he;
|
||||
if( d != NULL )
|
||||
if( d != nullptr )
|
||||
{
|
||||
do {
|
||||
sig = d->next;
|
||||
halfedge_free( d );
|
||||
d = sig;
|
||||
} while( d != del->points[i]->he );
|
||||
del->points[i]->he = NULL;
|
||||
del->points[i]->he = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -207,7 +207,7 @@ void del_free_halfedges( delaunay_t *del )
|
|||
//static face_t* face_alloc()
|
||||
//{
|
||||
// face_t *f = (face_t*)malloc(sizeof(face_t));
|
||||
// assert( f != NULL );
|
||||
// assert( f != nullptr );
|
||||
// memset(f, 0, sizeof(face_t));
|
||||
// return f;
|
||||
//}
|
||||
|
@ -217,7 +217,7 @@ void del_free_halfedges( delaunay_t *del )
|
|||
*/
|
||||
//static void face_free(face_t *f)
|
||||
//{
|
||||
// assert( f != NULL );
|
||||
// assert( f != nullptr );
|
||||
// free(f);
|
||||
//}
|
||||
|
||||
|
@ -622,8 +622,8 @@ static void del_remove_edge( halfedge_t *d )
|
|||
prev = d->prev;
|
||||
pair = d->pair;
|
||||
|
||||
assert(next != NULL);
|
||||
assert(prev != NULL);
|
||||
assert(next != nullptr);
|
||||
assert(prev != nullptr);
|
||||
|
||||
next->prev = prev;
|
||||
prev->next = next;
|
||||
|
@ -631,23 +631,23 @@ static void del_remove_edge( halfedge_t *d )
|
|||
|
||||
/* check to see if we have already removed pair */
|
||||
if( pair )
|
||||
pair->pair = NULL;
|
||||
pair->pair = nullptr;
|
||||
|
||||
/* check to see if the vertex points to this halfedge */
|
||||
if( d->vertex->he == d )
|
||||
d->vertex->he = next;
|
||||
|
||||
d->vertex = NULL;
|
||||
d->next = NULL;
|
||||
d->prev = NULL;
|
||||
d->pair = NULL;
|
||||
d->vertex = nullptr;
|
||||
d->next = nullptr;
|
||||
d->prev = nullptr;
|
||||
d->pair = nullptr;
|
||||
|
||||
next = orig_pair->next;
|
||||
prev = orig_pair->prev;
|
||||
pair = orig_pair->pair;
|
||||
|
||||
assert(next != NULL);
|
||||
assert(prev != NULL);
|
||||
assert(next != nullptr);
|
||||
assert(prev != nullptr);
|
||||
|
||||
next->prev = prev;
|
||||
prev->next = next;
|
||||
|
@ -655,16 +655,16 @@ static void del_remove_edge( halfedge_t *d )
|
|||
|
||||
/* check to see if we have already removed pair */
|
||||
if( pair )
|
||||
pair->pair = NULL;
|
||||
pair->pair = nullptr;
|
||||
|
||||
/* check to see if the vertex points to this halfedge */
|
||||
if( orig_pair->vertex->he == orig_pair )
|
||||
orig_pair->vertex->he = next;
|
||||
|
||||
orig_pair->vertex = NULL;
|
||||
orig_pair->next = NULL;
|
||||
orig_pair->prev = NULL;
|
||||
orig_pair->pair = NULL;
|
||||
orig_pair->vertex = nullptr;
|
||||
orig_pair->next = nullptr;
|
||||
orig_pair->prev = nullptr;
|
||||
orig_pair->pair = nullptr;
|
||||
|
||||
|
||||
/* finally free the halfedges */
|
||||
|
@ -946,7 +946,7 @@ static void build_halfedge_face( delaunay_t *del, halfedge_t *d )
|
|||
halfedge_t *curr;
|
||||
|
||||
/* test if the halfedge has already a pointing face */
|
||||
if( d->face != NULL )
|
||||
if( d->face != nullptr )
|
||||
return;
|
||||
|
||||
del->faces = (face_t*)realloc(del->faces, (del->num_faces + 1) * sizeof(face_t));
|
||||
|
@ -987,7 +987,7 @@ void del_build_faces( delaunay_t *del )
|
|||
halfedge_t *curr;
|
||||
|
||||
del->num_faces = 0;
|
||||
del->faces = NULL;
|
||||
del->faces = nullptr;
|
||||
|
||||
/* build external face first */
|
||||
build_halfedge_face(del, del->rightmost_he->pair);
|
||||
|
@ -1006,10 +1006,10 @@ void del_build_faces( delaunay_t *del )
|
|||
/*
|
||||
*/
|
||||
delaunay2d_t* delaunay2d_from(del_point2d_t *points, quint32 num_points) {
|
||||
delaunay2d_t* res = NULL;
|
||||
delaunay2d_t* res = nullptr;
|
||||
delaunay_t del;
|
||||
quint32 i;
|
||||
quint32* faces = NULL;
|
||||
quint32* faces = nullptr;
|
||||
|
||||
del.num_faces = 0; //Warning using uninitialized value
|
||||
|
||||
|
@ -1019,7 +1019,7 @@ delaunay2d_t* delaunay2d_from(del_point2d_t *points, quint32 num_points) {
|
|||
|
||||
/* allocate the points */
|
||||
del.points = (point2d_t**)malloc(num_points * sizeof(point2d_t*));
|
||||
assert( del.points != NULL );
|
||||
assert( del.points != nullptr );
|
||||
memset(del.points, 0, num_points * sizeof(point2d_t*));
|
||||
|
||||
/* copy the points */
|
||||
|
|
|
@ -111,10 +111,10 @@ QString VPE::VFileEditWidget::getFile() const
|
|||
|
||||
void VPE::VFileEditWidget::onToolButtonClicked()
|
||||
{
|
||||
QString filepath = (Directory ? QFileDialog::getExistingDirectory(0, tr("Directory"), CurrentFilePath,
|
||||
QString filepath = (Directory ? QFileDialog::getExistingDirectory(nullptr, tr("Directory"), CurrentFilePath,
|
||||
QFileDialog::ShowDirsOnly
|
||||
| QFileDialog::DontUseNativeDialog)
|
||||
: QFileDialog::getOpenFileName(0, tr("Open File"), CurrentFilePath,
|
||||
: QFileDialog::getOpenFileName(nullptr, tr("Open File"), CurrentFilePath,
|
||||
FileDialogFilter, nullptr,
|
||||
QFileDialog::DontUseNativeDialog));
|
||||
if (filepath.isNull() == false)
|
||||
|
|
|
@ -38,7 +38,7 @@ class VPROPERTYEXPLORERSHARED_EXPORT VPropertyDelegate : public QStyledItemDeleg
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit VPropertyDelegate(QObject *parent = 0);
|
||||
explicit VPropertyDelegate(QObject *parent = nullptr);
|
||||
virtual ~VPropertyDelegate() Q_DECL_OVERRIDE;
|
||||
|
||||
//! Creates the editor widget
|
||||
|
|
|
@ -53,7 +53,7 @@ VPE::VPropertyFactoryManager::~VPropertyFactoryManager()
|
|||
delete d_ptr;
|
||||
if (this == DefaultManager)
|
||||
{
|
||||
DefaultManager = NULL;
|
||||
DefaultManager = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -94,7 +94,7 @@ void VPE::VPropertyFactoryManager::unregisterFactory(VAbstractPropertyFactory* f
|
|||
else
|
||||
{
|
||||
// Only remove one type
|
||||
if (d_ptr->Factories.value(type, NULL) == factory)
|
||||
if (d_ptr->Factories.value(type, nullptr) == factory)
|
||||
{
|
||||
d_ptr->Factories.remove(type);
|
||||
}
|
||||
|
@ -113,7 +113,7 @@ bool VPE::VPropertyFactoryManager::isRegistered(VAbstractPropertyFactory* factor
|
|||
|
||||
VPE::VAbstractPropertyFactory* VPE::VPropertyFactoryManager::getFactory(const QString& type)
|
||||
{
|
||||
return d_ptr->Factories.value(type, NULL);
|
||||
return d_ptr->Factories.value(type, nullptr);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -192,7 +192,7 @@ void VPE::VPropertyFormView::removeModelAndSet()
|
|||
{
|
||||
if (static_cast<VPropertyFormViewPrivate*>(d_ptr)->Model)
|
||||
{
|
||||
disconnect(static_cast<VPropertyFormViewPrivate*>(d_ptr)->Model, 0, this, 0);
|
||||
disconnect(static_cast<VPropertyFormViewPrivate*>(d_ptr)->Model, nullptr, this, nullptr);
|
||||
static_cast<VPropertyFormViewPrivate*>(d_ptr)->Model = nullptr;
|
||||
}
|
||||
|
||||
|
|
|
@ -42,13 +42,13 @@ class VPROPERTYEXPLORERSHARED_EXPORT VPropertyFormView : public VPropertyFormWid
|
|||
Q_OBJECT
|
||||
public:
|
||||
//! Constructor
|
||||
explicit VPropertyFormView(QWidget *parent = 0);
|
||||
explicit VPropertyFormView(QWidget *parent = nullptr);
|
||||
|
||||
//! Constructor
|
||||
explicit VPropertyFormView(VPropertyModel* model, QWidget *parent = 0);
|
||||
explicit VPropertyFormView(VPropertyModel* model, QWidget *parent = nullptr);
|
||||
|
||||
//! Constructor
|
||||
explicit VPropertyFormView(VPropertySet* property_set, QWidget *parent = 0);
|
||||
explicit VPropertyFormView(VPropertySet* property_set, QWidget *parent = nullptr);
|
||||
|
||||
//! Destructor
|
||||
virtual ~VPropertyFormView() Q_DECL_OVERRIDE;
|
||||
|
|
|
@ -48,17 +48,17 @@ public:
|
|||
bool IgnoreDataChangedSignal;
|
||||
|
||||
VPropertyFormViewPrivate()
|
||||
: VPropertyFormWidgetPrivate(), Model(NULL), PropertySet(NULL), NeedsRebuild(false),
|
||||
: VPropertyFormWidgetPrivate(), Model(nullptr), PropertySet(nullptr), NeedsRebuild(false),
|
||||
IgnoreDataChangedSignal(false)
|
||||
{}
|
||||
|
||||
explicit VPropertyFormViewPrivate(VPropertyModel* prop_model)
|
||||
: VPropertyFormWidgetPrivate(), Model(prop_model), PropertySet(NULL), NeedsRebuild(false),
|
||||
: VPropertyFormWidgetPrivate(), Model(prop_model), PropertySet(nullptr), NeedsRebuild(false),
|
||||
IgnoreDataChangedSignal(false)
|
||||
{}
|
||||
|
||||
explicit VPropertyFormViewPrivate(VPropertySet* prop_set)
|
||||
: VPropertyFormWidgetPrivate(), Model(NULL), PropertySet(prop_set), NeedsRebuild(false),
|
||||
: VPropertyFormWidgetPrivate(), Model(nullptr), PropertySet(prop_set), NeedsRebuild(false),
|
||||
IgnoreDataChangedSignal(false)
|
||||
{}
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@ void VPE::VPropertyFormWidget::build()
|
|||
if (layout())
|
||||
{
|
||||
QLayoutItem *child;
|
||||
while (layout()->count() > 0 && (child = layout()->takeAt(0)) != 0)
|
||||
while (layout()->count() > 0 && (child = layout()->takeAt(0)) != nullptr)
|
||||
{
|
||||
if (child->widget())
|
||||
{
|
||||
|
|
|
@ -160,7 +160,7 @@ protected:
|
|||
virtual QModelIndex getIndexFromProperty(VProperty* property, int column = 0) const;
|
||||
|
||||
//! Protected constructor passing the private object
|
||||
explicit VPropertyModel(VPropertyModelPrivate* d, QObject* parent = 0);
|
||||
explicit VPropertyModel(VPropertyModelPrivate* d, QObject* parent = nullptr);
|
||||
|
||||
//! The model data
|
||||
VPropertyModelPrivate* d_ptr;
|
||||
|
|
|
@ -50,7 +50,7 @@ bool VPE::VPropertySet::addProperty(VProperty *property, const QString &id, cons
|
|||
return false;
|
||||
}
|
||||
|
||||
VProperty* tmpParent = parentid.isEmpty() ? NULL : getProperty(parentid);
|
||||
VProperty* tmpParent = parentid.isEmpty() ? nullptr : getProperty(parentid);
|
||||
return addProperty(property, id, tmpParent);
|
||||
}
|
||||
|
||||
|
@ -96,12 +96,12 @@ bool VPE::VPropertySet::hasProperty(VProperty *property) const
|
|||
return false;
|
||||
}
|
||||
|
||||
return hasProperty(property, NULL);
|
||||
return hasProperty(property, nullptr);
|
||||
}
|
||||
|
||||
VPE::VProperty *VPE::VPropertySet::getProperty(const QString &id) const
|
||||
{
|
||||
return d_ptr->Properties.value(id, NULL);
|
||||
return d_ptr->Properties.value(id, nullptr);
|
||||
}
|
||||
|
||||
VPE::VProperty *VPE::VPropertySet::takeProperty(const QString &id)
|
||||
|
@ -125,7 +125,7 @@ void VPE::VPropertySet::removeProperty(VProperty* prop, bool delete_property)
|
|||
removePropertyFromSet(prop);
|
||||
|
||||
// Remove from parent and optionally delete
|
||||
prop->setParent(NULL);
|
||||
prop->setParent(nullptr);
|
||||
|
||||
if (delete_property)
|
||||
{
|
||||
|
@ -191,7 +191,7 @@ const QList<VPE::VProperty *> &VPE::VPropertySet::getRootProperties() const
|
|||
|
||||
VPE::VProperty *VPE::VPropertySet::getRootProperty(int row) const
|
||||
{
|
||||
return d_ptr->RootProperties.value(row, NULL);
|
||||
return d_ptr->RootProperties.value(row, nullptr);
|
||||
}
|
||||
|
||||
int VPE::VPropertySet::getRootPropertyCount() const
|
||||
|
@ -204,7 +204,7 @@ VPE::VPropertySet* VPE::VPropertySet::clone() const
|
|||
VPropertySet* tmpResult = new VPropertySet();
|
||||
|
||||
foreach(VProperty* tmpProperty, d_ptr->RootProperties)
|
||||
cloneProperty(tmpProperty, NULL, tmpResult);
|
||||
cloneProperty(tmpProperty, nullptr, tmpResult);
|
||||
|
||||
|
||||
return tmpResult;
|
||||
|
@ -217,7 +217,7 @@ bool VPE::VPropertySet::hasProperty(VProperty *property, VProperty *parent) cons
|
|||
return false;
|
||||
}
|
||||
|
||||
const QList<VProperty*>& tmpChildrenList = (parent != NULL ? parent->getChildren() : d_ptr->RootProperties);
|
||||
const QList<VProperty*>& tmpChildrenList = (parent != nullptr ? parent->getChildren() : d_ptr->RootProperties);
|
||||
foreach(VProperty* tmpProp, tmpChildrenList)
|
||||
{
|
||||
if (!tmpProp)
|
||||
|
|
|
@ -42,11 +42,11 @@ class VPROPERTYEXPLORERSHARED_EXPORT VPropertyTreeView : public QTreeView
|
|||
Q_OBJECT
|
||||
public:
|
||||
//! Default constructor
|
||||
explicit VPropertyTreeView(QWidget *parent = 0);
|
||||
explicit VPropertyTreeView(QWidget *parent = nullptr);
|
||||
|
||||
//! The destructor, taking a model and setting it to the tree view
|
||||
//! \param model The model to set as model for this tree view
|
||||
explicit VPropertyTreeView(VPropertyModel* model, QWidget *parent = 0);
|
||||
explicit VPropertyTreeView(VPropertyModel* model, QWidget *parent = nullptr);
|
||||
|
||||
//! Destructor
|
||||
virtual ~VPropertyTreeView() Q_DECL_OVERRIDE;
|
||||
|
@ -60,7 +60,7 @@ protected:
|
|||
virtual void init();
|
||||
|
||||
//! protected constructor
|
||||
VPropertyTreeView(VPropertyTreeViewPrivate* d, bool init_, QWidget *parent = 0);
|
||||
VPropertyTreeView(VPropertyTreeViewPrivate* d, bool init_, QWidget *parent = nullptr);
|
||||
|
||||
//! The protected data
|
||||
VPropertyTreeViewPrivate* d_ptr;
|
||||
|
|
|
@ -49,7 +49,7 @@ class DialogPointFromArcAndTangent : public DialogTool
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
DialogPointFromArcAndTangent(const VContainer *data, const quint32 &toolId, QWidget *parent = 0);
|
||||
DialogPointFromArcAndTangent(const VContainer *data, const quint32 &toolId, QWidget *parent = nullptr);
|
||||
~DialogPointFromArcAndTangent();
|
||||
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ class DialogPointFromCircleAndTangent : public DialogTool
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
DialogPointFromCircleAndTangent(const VContainer *data, const quint32 &toolId, QWidget *parent = 0);
|
||||
DialogPointFromCircleAndTangent(const VContainer *data, const quint32 &toolId, QWidget *parent = nullptr);
|
||||
~DialogPointFromCircleAndTangent();
|
||||
|
||||
void SetPointName(const QString &value);
|
||||
|
|
|
@ -49,7 +49,7 @@ class DialogPointOfIntersectionArcs : public DialogTool
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
DialogPointOfIntersectionArcs(const VContainer *data, const quint32 &toolId, QWidget *parent = 0);
|
||||
DialogPointOfIntersectionArcs(const VContainer *data, const quint32 &toolId, QWidget *parent = nullptr);
|
||||
virtual ~DialogPointOfIntersectionArcs() Q_DECL_OVERRIDE;
|
||||
|
||||
void SetPointName(const QString &value);
|
||||
|
|
|
@ -49,7 +49,7 @@ class DialogPointOfIntersectionCircles : public DialogTool
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
DialogPointOfIntersectionCircles(const VContainer *data, const quint32 &toolId, QWidget *parent = 0);
|
||||
DialogPointOfIntersectionCircles(const VContainer *data, const quint32 &toolId, QWidget *parent = nullptr);
|
||||
virtual ~DialogPointOfIntersectionCircles() Q_DECL_OVERRIDE;
|
||||
|
||||
void SetPointName(const QString &value);
|
||||
|
|
|
@ -48,7 +48,7 @@ class DialogPointOfIntersectionCurves : public DialogTool
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit DialogPointOfIntersectionCurves(const VContainer *data, const quint32 &toolId, QWidget *parent = 0);
|
||||
explicit DialogPointOfIntersectionCurves(const VContainer *data, const quint32 &toolId, QWidget *parent = nullptr);
|
||||
virtual ~DialogPointOfIntersectionCurves() Q_DECL_OVERRIDE;
|
||||
|
||||
void SetPointName(const QString &value);
|
||||
|
|
|
@ -2649,10 +2649,10 @@ void DialogSeamAllowance::InitPatternPieceDataTab()
|
|||
|
||||
connect(uiTabLabels->lineEditName, &QLineEdit::textChanged, this, &DialogSeamAllowance::NameDetailChanged);
|
||||
|
||||
m_qslMaterials << QApplication::translate("Detail", "Fabric", 0)
|
||||
<< QApplication::translate("Detail", "Lining", 0)
|
||||
<< QApplication::translate("Detail", "Interfacing", 0)
|
||||
<< QApplication::translate("Detail", "Interlining", 0);
|
||||
m_qslMaterials << QApplication::translate("Detail", "Fabric", nullptr)
|
||||
<< QApplication::translate("Detail", "Lining", nullptr)
|
||||
<< QApplication::translate("Detail", "Interfacing", nullptr)
|
||||
<< QApplication::translate("Detail", "Interlining", nullptr);
|
||||
|
||||
for (int i = 0; i < m_qslMaterials.count(); ++i)
|
||||
{
|
||||
|
|
|
@ -1505,15 +1505,15 @@ void VToolSeamAllowance::DeleteTool(bool ask)
|
|||
// Deleting inside UnionDetails cause crash.
|
||||
// Because this object should be inactive from no one we disconnect all signals that may cause a crash
|
||||
// KEEP THIS LIST ACTUALL!!!
|
||||
disconnect(doc, 0, this, 0);
|
||||
disconnect(doc, nullptr, this, nullptr);
|
||||
if (QGraphicsScene *toolScene = scene())
|
||||
{
|
||||
disconnect(toolScene, 0, this, 0);
|
||||
disconnect(toolScene, nullptr, this, nullptr);
|
||||
}
|
||||
disconnect(m_dataLabel, 0, this, 0);
|
||||
disconnect(m_patternInfo, 0, this, 0);
|
||||
disconnect(m_grainLine, 0, this, 0);
|
||||
disconnect(m_sceneDetails, 0, this, 0);
|
||||
disconnect(m_dataLabel, nullptr, this, nullptr);
|
||||
disconnect(m_patternInfo, nullptr, this, nullptr);
|
||||
disconnect(m_grainLine, nullptr, this, nullptr);
|
||||
disconnect(m_sceneDetails, nullptr, this, nullptr);
|
||||
|
||||
hide();// User shouldn't see this object
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ class AddDetNode : public VUndoCommand
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
AddDetNode(const QDomElement &xml, VAbstractPattern *doc, const QString &drawName, QUndoCommand *parent = 0);
|
||||
AddDetNode(const QDomElement &xml, VAbstractPattern *doc, const QString &drawName, QUndoCommand *parent = nullptr);
|
||||
virtual ~AddDetNode() Q_DECL_OVERRIDE;
|
||||
virtual void undo() Q_DECL_OVERRIDE;
|
||||
virtual void redo() Q_DECL_OVERRIDE;
|
||||
|
|
|
@ -42,7 +42,8 @@ class AddPatternPiece : public VUndoCommand
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
AddPatternPiece(const QDomElement &xml, VAbstractPattern *doc, const QString &namePP, QUndoCommand *parent = 0);
|
||||
AddPatternPiece(const QDomElement &xml, VAbstractPattern *doc, const QString &namePP,
|
||||
QUndoCommand *parent = nullptr);
|
||||
virtual ~AddPatternPiece() Q_DECL_OVERRIDE;
|
||||
virtual void undo() Q_DECL_OVERRIDE;
|
||||
virtual void redo() Q_DECL_OVERRIDE;
|
||||
|
|
|
@ -42,7 +42,7 @@ class AddToCalc : public VUndoCommand
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
AddToCalc(const QDomElement &xml, VAbstractPattern *doc, QUndoCommand *parent = 0);
|
||||
AddToCalc(const QDomElement &xml, VAbstractPattern *doc, QUndoCommand *parent = nullptr);
|
||||
virtual ~AddToCalc() Q_DECL_OVERRIDE;
|
||||
virtual void undo() Q_DECL_OVERRIDE;
|
||||
virtual void redo() Q_DECL_OVERRIDE;
|
||||
|
|
|
@ -42,7 +42,7 @@ class DeletePatternPiece : public VUndoCommand
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DeletePatternPiece(VAbstractPattern *doc, const QString &namePP, QUndoCommand *parent = 0);
|
||||
DeletePatternPiece(VAbstractPattern *doc, const QString &namePP, QUndoCommand *parent = nullptr);
|
||||
virtual ~DeletePatternPiece() Q_DECL_OVERRIDE;
|
||||
virtual void undo() Q_DECL_OVERRIDE;
|
||||
virtual void redo() Q_DECL_OVERRIDE;
|
||||
|
|
|
@ -42,7 +42,7 @@ class DelTool : public VUndoCommand
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DelTool(VAbstractPattern *doc, quint32 id, QUndoCommand *parent = 0);
|
||||
DelTool(VAbstractPattern *doc, quint32 id, QUndoCommand *parent = nullptr);
|
||||
virtual ~DelTool() Q_DECL_OVERRIDE;
|
||||
virtual void undo() Q_DECL_OVERRIDE;
|
||||
virtual void redo() Q_DECL_OVERRIDE;
|
||||
|
|
|
@ -44,7 +44,7 @@ class MoveDoubleLabel : public MoveAbstractLabel
|
|||
Q_OBJECT
|
||||
public:
|
||||
MoveDoubleLabel(VAbstractPattern *doc, const double &x, const double &y, DoublePoint type,
|
||||
quint32 toolId, quint32 pointId, QUndoCommand *parent = 0);
|
||||
quint32 toolId, quint32 pointId, QUndoCommand *parent = nullptr);
|
||||
virtual ~MoveDoubleLabel() Q_DECL_OVERRIDE;
|
||||
|
||||
virtual bool mergeWith(const QUndoCommand *command) Q_DECL_OVERRIDE;
|
||||
|
|
|
@ -41,7 +41,8 @@ class MoveLabel : public MoveAbstractLabel
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MoveLabel(VAbstractPattern *doc, const double &x, const double &y, const quint32 &id, QUndoCommand *parent = 0);
|
||||
MoveLabel(VAbstractPattern *doc, const double &x, const double &y, const quint32 &id,
|
||||
QUndoCommand *parent = nullptr);
|
||||
virtual ~MoveLabel();
|
||||
|
||||
virtual bool mergeWith(const QUndoCommand *command) Q_DECL_OVERRIDE;
|
||||
|
|
|
@ -44,7 +44,7 @@ class MoveSPoint : public VUndoCommand
|
|||
Q_OBJECT
|
||||
public:
|
||||
MoveSPoint(VAbstractPattern *doc, const double &x, const double &y, const quint32 &id, QGraphicsScene *scene,
|
||||
QUndoCommand *parent = 0);
|
||||
QUndoCommand *parent = nullptr);
|
||||
virtual ~MoveSPoint() Q_DECL_OVERRIDE;
|
||||
virtual void undo() Q_DECL_OVERRIDE;
|
||||
virtual void redo() Q_DECL_OVERRIDE;
|
||||
|
|
|
@ -41,7 +41,7 @@ class RenamePP :public VUndoCommand
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
RenamePP(VAbstractPattern *doc, const QString &newPPname, QComboBox *combo, QUndoCommand *parent = 0);
|
||||
RenamePP(VAbstractPattern *doc, const QString &newPPname, QComboBox *combo, QUndoCommand *parent = nullptr);
|
||||
virtual ~RenamePP() Q_DECL_OVERRIDE;
|
||||
|
||||
virtual void undo() Q_DECL_OVERRIDE;
|
||||
|
|
|
@ -43,7 +43,7 @@ class SaveToolOptions : public VUndoCommand
|
|||
Q_OBJECT
|
||||
public:
|
||||
SaveToolOptions(const QDomElement &oldXml, const QDomElement &newXml, VAbstractPattern *doc, const quint32 &id,
|
||||
QUndoCommand *parent = 0);
|
||||
QUndoCommand *parent = nullptr);
|
||||
virtual ~SaveToolOptions() Q_DECL_OVERRIDE;
|
||||
virtual void undo() Q_DECL_OVERRIDE;
|
||||
virtual void redo() Q_DECL_OVERRIDE;
|
||||
|
|
|
@ -68,7 +68,7 @@ class VUndoCommand : public QObject, public QUndoCommand
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
VUndoCommand(const QDomElement &xml, VAbstractPattern *doc, QUndoCommand *parent = 0);
|
||||
VUndoCommand(const QDomElement &xml, VAbstractPattern *doc, QUndoCommand *parent = nullptr);
|
||||
virtual ~VUndoCommand() Q_DECL_OVERRIDE;
|
||||
signals:
|
||||
void ClearScene();
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
class VNoBrushScalePathItem : public QGraphicsPathItem
|
||||
{
|
||||
public:
|
||||
explicit VNoBrushScalePathItem(QGraphicsItem *parent = 0);
|
||||
explicit VNoBrushScalePathItem(QGraphicsItem *parent = nullptr);
|
||||
|
||||
protected:
|
||||
virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option,
|
||||
|
|
|
@ -66,7 +66,7 @@ void VWidgetPopup::SetWidget(QWidget *widget, bool own)
|
|||
|
||||
if (mOwn)
|
||||
{
|
||||
mWidget->setParent(0);
|
||||
mWidget->setParent(nullptr);
|
||||
delete mWidget;
|
||||
}
|
||||
else
|
||||
|
@ -77,7 +77,7 @@ void VWidgetPopup::SetWidget(QWidget *widget, bool own)
|
|||
|
||||
mWidget = widget;
|
||||
mOwn = own;
|
||||
mOldParent = 0;
|
||||
mOldParent = nullptr;
|
||||
|
||||
if (mWidget)
|
||||
{
|
||||
|
|
|
@ -55,7 +55,7 @@ public:
|
|||
If \a parent not specified (default), then popup widget gets
|
||||
attribute Qt::WA_DeleteOnClose and will be deleted after close.
|
||||
*/
|
||||
explicit VWidgetPopup(QWidget *parent = 0);
|
||||
explicit VWidgetPopup(QWidget *parent = nullptr);
|
||||
|
||||
/** Sets widget to be popped up to \a widget.
|
||||
If \a own is true then the widget will be reparented to the popup widget.
|
||||
|
|
Loading…
Reference in New Issue
Block a user