2015-09-07 16:39:04 +02:00
|
|
|
/****************************************************************************
|
|
|
|
** Copyright (C) 2001-2013 RibbonSoft, GmbH. All rights reserved.
|
|
|
|
** Copyright (C) 2001 Robert J. Campbell Jr.
|
|
|
|
**
|
|
|
|
** This file is part of the dxflib project.
|
|
|
|
**
|
|
|
|
** This file is free software; you can redistribute it and/or modify
|
|
|
|
** it under the terms of the GNU General Public License as published by
|
|
|
|
** the Free Software Foundation; either version 2 of the License, or
|
|
|
|
** (at your option) any later version.
|
|
|
|
**
|
|
|
|
** Licensees holding valid dxflib Professional Edition licenses may use
|
|
|
|
** this file in accordance with the dxflib Commercial License
|
|
|
|
** Agreement provided with the Software.
|
|
|
|
**
|
|
|
|
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
|
|
|
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
**
|
|
|
|
** See http://www.ribbonsoft.com for further details.
|
|
|
|
**
|
|
|
|
** Contact info@ribbonsoft.com if any conditions of this licensing are
|
|
|
|
** not clear to you.
|
|
|
|
**
|
|
|
|
**********************************************************************/
|
|
|
|
|
|
|
|
#ifndef DL_WRITER_ASCII_H
|
|
|
|
#define DL_WRITER_ASCII_H
|
|
|
|
|
|
|
|
#include "dl_global.h"
|
2016-08-13 10:56:59 +02:00
|
|
|
#include "dl_codes.h"
|
2015-09-07 16:39:04 +02:00
|
|
|
|
2015-09-30 17:10:42 +02:00
|
|
|
#if defined(Q_CC_MSVC)
|
|
|
|
#if (_MSC_VER > 1000)
|
|
|
|
#pragma once
|
|
|
|
#endif // _MSC_VER > 1000
|
2016-12-20 21:55:40 +01:00
|
|
|
|
|
|
|
#if _MSC_VER < 1900
|
|
|
|
#define snprintf _snprintf
|
|
|
|
#endif
|
2015-09-30 17:10:42 +02:00
|
|
|
#endif // Q_CC_MSVC
|
2015-09-07 16:39:04 +02:00
|
|
|
|
|
|
|
#include <fstream>
|
|
|
|
#include <string>
|
|
|
|
|
2016-08-08 13:44:49 +02:00
|
|
|
#include "dl_writer.h"
|
|
|
|
|
2015-09-07 16:39:04 +02:00
|
|
|
/**
|
|
|
|
* Implements functions defined in DL_Writer for writing low
|
|
|
|
* level DXF constructs to an ASCII format DXF file.
|
2016-08-13 10:56:59 +02:00
|
|
|
*
|
2016-02-09 16:19:07 +01:00
|
|
|
* @para fname File name of the file to be created.
|
|
|
|
* @para version DXF version. Defaults to DL_VERSION_2002.
|
|
|
|
*
|
|
|
|
* @todo What if \c fname is NULL? Or \c fname can't be opened for
|
|
|
|
* another reason?
|
2015-09-07 16:39:04 +02:00
|
|
|
*/
|
|
|
|
class DXFLIB_EXPORT DL_WriterA : public DL_Writer
|
|
|
|
{
|
|
|
|
public:
|
2015-10-20 16:32:01 +02:00
|
|
|
explicit DL_WriterA(const char* fname, DL_Codes::version version=DL_VERSION_2000)
|
2015-09-07 16:39:04 +02:00
|
|
|
: DL_Writer(version), m_ofile(fname) {}
|
|
|
|
virtual ~DL_WriterA() {}
|
|
|
|
|
|
|
|
bool openFailed() const;
|
|
|
|
void close() const;
|
|
|
|
void dxfReal(int gc, double value) const;
|
|
|
|
void dxfInt(int gc, int value) const;
|
|
|
|
void dxfHex(int gc, int value) const;
|
|
|
|
void dxfString(int gc, const char* value) const;
|
|
|
|
void dxfString(int gc, const std::string& value) const;
|
|
|
|
|
|
|
|
static void strReplace(char* str, char src, char dest);
|
|
|
|
|
|
|
|
private:
|
|
|
|
/**
|
|
|
|
* DXF file to be created.
|
|
|
|
*/
|
|
|
|
mutable std::ofstream m_ofile;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|