Commit Graph

30 Commits

Author SHA1 Message Date
Robert Osfield
e1b7de4b3d Martin Beckett, "Here's a first attempt at a DXF writer plugin
At the moment it outputs DXF for whatever geometry is contained in the node it would be nice to draw the model as it is rendered (points/lines/surface)

If people could also test against other apps that need to read DXF, the format is a bit of a black art and not all importers support all features so it might need some options to tweak the output.

It has some rather clever colour lookup stuff to match real colours against the limited DXF palette. I cracked the code of the Autocad indexed colours!"
2009-06-08 14:06:58 +00:00
Robert Osfield
009409695d Fixed warning 2009-04-22 16:50:50 +00:00
Robert Osfield
fa27223fcd From Mike Connell, "Here are some small fixes that allow you to specify the allowable deviation when creating polylines from arcs and circles in DXF files. Changes are against 2.8.0
It adds two options:

Accuracy(x) - ensures the polyline will be within x units from the ideal arc/curve
ImproveAccuracyOnly - do not use the given accuracy 'x', if it would result in a worse curve than with the previous (2.8.0) implementation for a particular arc/curve.

As an added bonus there was a small bug in the existing implementation whereby the primitives were line strips but the vertices generated were actually suitable for GL_LINES, so the improved accuracy doesn't even have to come at a performance cost :-)"
2009-04-08 13:21:59 +00:00
Robert Osfield
ddddec2b2f From Martin Beckett, "I have added support for DXF POINTS to the dxf reader plugin
It's really just a cut-paste job from the existing LINE support.

The current dxf plugin architecture isn't very efficient, especially if you
are loading large point clouds (LIDAR)
eg. it makes multiple lookups of the layer name for each vertex.
I don't know if I can improve this for the general case or if I have to add a
special large point cloud dxf reader."
2009-02-20 11:51:47 +00:00
Robert Osfield
4a50d54d3e From Himar Carmona, "When reading a DXF file, the reader breaks at a debug assertion at vector (it breaks on release version). Inspecting the code show that the cause could be in dxfEntity.cpp.
It seems that the problem is an offending "short" used in a for loop, where it should be "int" or "long". It causes an index out of range error. "
2009-02-20 11:30:33 +00:00
Robert Osfield
6055dee411 Fixed warnings 2008-12-18 15:49:44 +00:00
Robert Osfield
720551d549 From Michael Platings, Converted std::fstream/ifstream/ofstream to osgDB::fstream/ifstream/ofstream and
fopen to osgDB::fopen to facilitate support for wide character filenames using UT8 encoding.
2008-11-07 15:08:08 +00:00
Robert Osfield
8ea9fad93a Added osgText to link line 2008-10-07 15:21:12 +00:00
Robert Osfield
af30f0769a From Colin McDonald, "Attached is an update to the dxf plugin which adds rudimentary support for
text entities.
"
2008-10-07 13:06:53 +00:00
Robert Osfield
02b456bcfa Converted plugins to use the new supportsExtension()/supportsOptions/supportsProtocl() methods
to help enable better querying of supported features
2008-07-13 22:18:59 +00:00
Robert Osfield
9e2fe92ef1 From Rudolf Wiedemann, "I need to link OpenSceneGraph statically to my application, so I
completed the new registration of the plugin-readerwriters
("REGISTER_OSGPLUGIN") according to your osgstaticviewer-example (see
attachment, based on today's svn)."
2007-07-06 13:54:26 +00:00
Robert Osfield
2e6ee4bb39 Removed old gmake and VisualStudio build files 2007-04-10 13:10:25 +00:00
Robert Osfield
282f4ce0b9 Moved the TARGET_NAME setting into the OsgMacroUtils.cmake. 2007-03-19 17:24:19 +00:00
Robert Osfield
da64127539 Ran dos2unix on CMakeLists.txt files. 2007-03-19 13:26:34 +00:00
Robert Osfield
be3f61c49f From Luigi Calori, move to using local CMakeLists.txt files and explicit file lists.
From Robert Osfield, small ammendments of the above to seperate example and application installs, and fix the osgPlugins install directory.
2007-03-19 12:30:26 +00:00
Robert Osfield
905857acd7 Added use of typedef to help clean up the readability a little and replaced a copy list with a reference. 2006-12-05 15:41:03 +00:00
Robert Osfield
d70cf68ae6 From Sylvain Marie, "changed raw pointers to smart pointers in the dxfBlock, dxfTables and
dxfSection classes, so their members data are correctly deleted.
- changed some methods signatures to pass arguments by reference instead of
by value. The performance and memory usage are enhanced (the reader was
clogging the heap when reading some large DXF files)

The updated files have been compiled and tested with a variety of DXF files
on XP with VS2003, but the changes should not disturb any other compiler."
2006-12-05 15:31:07 +00:00
Robert Osfield
9c66cb4127 From Sylvan Marie, "I attached my revised dxfEntity.cpp file from the DXF plugin with the 2
following improvements:

- When all unsupported entities (SOLIDS, TEXT, ...) have been filtered out
from a block, dxfInsert::drawScene() was crashing because it assumed that
the block was not empty. It now returns silently so the other blocks can
still be imported.

- The DXF reader assumed all vertices were read first, then the face
indices. But, from the DXF "documentation" (www.autodesk.com/dxf) :
"Polyface meshes created with the PFACE command are always generated with
all the vertex coordinate entities first, followed by the face definition
entities. The code within AutoCAD that processes polyface meshes requires
this ordering. Programs that generate polyface meshes in DXF should generate
all the vertices then all the faces. However, programs that read polyface
meshes from DXF should be tolerant of odd vertex and face ordering."
So now the importer ignores the posted number of vertices and face indices,
and uses the size of the lists instead."
2006-11-22 20:47:53 +00:00
Robert Osfield
3b499341ed From Philipp Siemoleit,
There are some group codes (i.e. "62") which are interpreted as
    dxfDataType::SHORT. That's right because the dxf-specification defines
    "16 bit integer" as the type for the corresponding value.
    But readerBase::readGroup() calls readValue(std::ifstream&, unsigned
    short). I changed readValue(std::ifstream&, unsigned short) to
    readValue(std::ifstream&, short). I found no group code at the dxf-specs
    which needs a "16 bit unsigned integer" value. So the
    readValue(std::ifstream&, unsigned short) function is obsolete - right?
2006-06-26 09:30:16 +00:00
Robert Osfield
cc78197fb3 From Paul de Repentigny, ciyple fo fixes for the DXF reader. 2005-12-15 15:36:55 +00:00
Robert Osfield
a44f0cf25a From Eric Wing, warning fixes for gcc4.0/OSX. 2005-11-22 09:51:02 +00:00
Robert Osfield
d3541b96ed Replaced tabs with spaces. 2005-11-17 15:03:51 +00:00
Robert Osfield
9415f669e8 Converted remaining osg::Matrix usage to osg::Matrixd. 2005-11-16 16:30:51 +00:00
Robert Osfield
91f5b9b04e Fixes for VS6.0 build. 2005-11-11 12:45:59 +00:00
Robert Osfield
435e4b828c Fixes for dumb VS6.0 compiler 2005-11-10 19:32:37 +00:00
Robert Osfield
20d9c3c3c4 Compile fixes for VS7.1 2005-11-10 09:42:34 +00:00
Robert Osfield
3a4b09940b Refinement of includes to help IRIX build 2005-05-13 12:06:58 +00:00
Robert Osfield
ec2adb2477 Added #include "dxfBlock.h" 2005-05-13 09:52:17 +00:00
Robert Osfield
6a22af590a Fixed warnings. 2005-04-17 19:10:32 +00:00
Robert Osfield
47a2b3aa23 From Paul de Repentinguy, DXF loader plugin. Ported to Linux by Robert Osfield. 2005-04-15 20:39:06 +00:00