Commit Graph

1894 Commits

Author SHA1 Message Date
Robert Osfield
c2b77aa08e From Jeremy Moles, import of the osgWidget NodeKit, sourced from the original http://osgwidget.googlecode.com/svn/trunk
Notes from Robert Osfield, I've merged osgWidget trunk, and added/changed CMakeLists.txt file to make it suitable for inclusion in the core OSG, and moved imagery/scripts/shaders out into OpenSceneGraph-Data
2008-07-15 17:21:25 +00:00
Robert Osfield
5ab4af80c5 Added missing ac3d supportsExtensions() constructor 2008-07-14 20:11:37 +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
cb98cddc31 Added new ReaderWriter methods for recording what protocols, extensions and options are
support by ReaderWriters
2008-07-13 15:24:45 +00:00
Robert Osfield
6aa604f31a From Paul Martz, removed uneccessary libraries from link line 2008-07-13 12:34:06 +00:00
Robert Osfield
4ca61c38f0 From Doug McCorkle, "Attached is patch that corrects/improves the following issues with the OBJ loader:
1. Added options to control wether the osgUtil::Tessellator or osgUtil::TriStripVisitor are run. By default they still run just as before.
2. Added support for the Emissive material. The data was being read from the mtl file but was never being applied to the model.
3. This is the main bug addressed, when a model is read in with an alpha value specified like:

newmtl Material__8
       Ns 24
       d 0.33
       illum 2
       Kd 0.204 0.204 0.204
       Ks 0 0 0
       Ka 0.153 0.153 0.153

where the alpha value is d. The loader would then overwrite the alpha value when reading the diffuse, specular, and ambient colors. I have changed all the material color readers to only set the values they read and to use the default colors specified in the constructor of the obj class. With these changes, the obj reader now handles opacity correctly if the alpha value is specified before the material colo"
2008-07-12 12:00:58 +00:00
Robert Osfield
360e7629d0 From Christophe Loustaunau, "For our application, we need to write tiff file in floats. I have change a little bit the readerWritterTiff :
It check the data type of the image ( img.getDataType() ) and if it's GL_FLOAT :It save the tiff with float values.
Otherwise it does the same thing as before."
2008-07-11 19:43:01 +00:00
Robert Osfield
0e2dea9a39 From Liang Aibin, " In lastest svn version of OSG, the .ive plugin missing osg::Light, it
does not process I/O for osg::Light. Now I have fixed it as follows:
 
2. In DataInputStream.cpp, I add support code in DataInputStream::readStateAttribute
    for osg::Light.
 
3. In DataOutputStream.cpp, I add support code in DataOutputStream::writeStateAttribute
    for osg::Light.
 "
2008-07-11 19:23:49 +00:00
Robert Osfield
ef1ee63f03 From Joakim Simmonson,
"Opcodes.h:
* Added INVALID_OP as -1 in the Opcodes enum. Note that INVALID_OP is not an actual opcode defined in the OpenFlight format. The purpose of INVALID_OP is to mark an opcode variable as invalid or uninitialized.

ReaderWriterFLT.cpp:
* The header node is returned if it exists, even if the file does not contain a node hierarchy. The old behaviour returned a ERROR_IN_READING_FILE error.
* Changed opcodes initialized to -1 to the new enum value INVALID_OP."
2008-07-11 17:46:30 +00:00
Robert Osfield
1489eeb228 From Joakim Simmonsson, fixed various spelling typos in comments 2008-07-11 17:41:50 +00:00
Robert Osfield
161e01dc5d From Mathias Froehlich, "Due to the recent data variance changes/discussion:
Change the ac3d loader that can as such only deliver static models to set the
data variance to static for the returned model.
"
2008-07-11 17:35:13 +00:00
Robert Osfield
aa593fcd2d From Colin McDonald, "There is a problem reading bmp files containing a colour palette,
due to an incorrect scan line length calculation.  Attached is a fix,
and a little bmp file which demonstrates the problem."
2008-07-01 19:04:29 +00:00
Robert Osfield
dba344feba From Lilin Xiong, "I change ive plugin a little for osgText inout, so the ive plugin supports backdrop setting,
and Text3D, FadeText inout :

1. in DataInputStream.cpp, add 1286--1293 lines;
2. in Text.cpp, add some code for text's Backdrop setting;
3. in IveVersion.h, add line 39,  increase the VERSION to VERSION_028(line 41)
4. in ReadWrite.h,  add line 146,147
5. add file FadeText.h, FadeText.cpp, Text3D.h, Text3D.cpp."
2008-07-01 18:37:13 +00:00
Robert Osfield
275811d02a From Eric Sokolowsky, "I have made a number of changes intended to get a few things working better on OSX. However, since I'm still pretty new at Mac development and cmake I'm not entirely certain that the changes I have made are benign on other platforms. I have tested these changes on Leopard with CMake 2.6 generating Xcode 3.0 projects, compiling on ppc and i386 for 10.5 and 10.4, and on Linux (CentOS) and everything still seems to work ok. Here are the changes I made (against OSG svn as of this afternoon):
- Added osgviewerCocoa example to APPLE builds
- Fixed corrupt Xcode project generation with CMake 2.6 dealing with ADD_DEFINITIONS and CMake Policy CMP0005 on Leopard
- Resolved CMP0006 warning for examples and programs by setting BUNDLE DESTINATION to same as RUNTIME DESTINATION with CMake 2.6
- Fixed freetype plugin on Leopard to avoid OpenGL linking problem
- Figured out how to use a custom Info.plist included in the project (see osgviewerCocoa application CMakeLists.txt)"
2008-06-23 09:57:45 +00:00
Robert Osfield
1e3183a355 Quietened down debug info 2008-06-21 17:56:38 +00:00
Robert Osfield
af271f99ec Added support for X11's overrideRedirect functionality 2008-06-21 17:50:58 +00:00
Robert Osfield
8aa7c330f8 Changed const double* to const Matrix::value_type* to ensure changes in Matrix type don't break the build 2008-06-20 15:28:38 +00:00
Robert Osfield
2ba5f002d2 from Andrew Bettison, LineStipple support for .ive 2008-06-19 14:57:36 +00:00
Robert Osfield
cc9d12f34f From Rudolf Weidemann, "in the OpenFlight format materials can have editable names.
In the OSG OpenFlight plugin these names are ignored when reading, and
empty strings are written.

As we need these names in the OSG scene graph by our application, I
changed the plugin code, so the names are now stored in class
"osg::Material" (derived from "osg::Object") by
 material->setName();
(see "PaletteRecords.cpp, line 195) when reading the file, and written
to file by
 dos.writeString( m.Material->getName(), 12 );
(see MaterialPaletteManager.cpp, line 80).

As these names otherwise get lost when reading an OpenFlight file and
writing it again e.g. by
 osgconv example.flt converted_example.flt
these changes make the plugin more complete.

The changes were made to OSG revision 8425, and were tested by
 osgconv example.flt converted_example.flt
comparing the material palettes of both files inside Multigen Creator."
2008-06-19 14:35:18 +00:00
Robert Osfield
c3c727b822 From Andrew Bettison, "Attached are changes for src/osgPlugins/ive (version 2.4.0) that implement LineStipple read/write support for the ive file format." 2008-06-19 14:14:20 +00:00
Robert Osfield
45fcb25765 From Liang Aibin:
"1. Location: <OSG_SOURCE_ROOT>\src\osgPlugins\osg\Fog.cpp
   Reason: ".osg" writter plugins output incorrected string for osg::Fog's Mode.
   How to Fix:
     Line 138 in Fog.cpp: case(Fog::LINEAR): return "NERVER";
     Change to:           case(Fog::LINEAR): return "LINEAR";
2. Location: <OSG_SOURCE_ROOT>\src\osgPlugins\ive\
   Reason: ".ive" writter plugins missing to process "osg::Fog".
   How to Fix:
   (1). Line 86 in ReadWrite.h:
        Add: #define IVEFOG                          0x00001133
   (2). In CMakeLists.txt
        "SET(TARGET_SRC" section Add: Fog.cpp
        "SET(TARGET_H" section Add: Fog.h
   (3). In DataInputStream.cpp
        Line 54,Add:    #include "Fog.h"
        Line 1185,Add:  else if(attributeID == IVEFOG){
                            attribute = new osg::Fog();
                            ((ive::Fog*)(attribute))->read(this);
                        }
   (4). In DataOutputStream.cpp
        Line 57,Add:    #include "Fog.h"
        Line 832,Add:   // This is a Fog
                        else if(dynamic_cast<const osg::Fog*>(attribute)){
                            ((ive::Fog*)(attribute))->write(this);
                        }
   (5). Add newly created ive::Fog Object in Fog.h and Fog.cpp.
"
2008-06-18 20:17:13 +00:00
Robert Osfield
df87106d4b From Bob Kuehne, "added multi-texture support (alpha/trans images)" 2008-06-18 11:56:50 +00:00
Robert Osfield
bc79df7cd8 From Gino van den Bergen, "Added support for vrml primitive caching" 2008-06-18 10:51:02 +00:00
Robert Osfield
f10cb3c388 Added mutex to serialize access to the trpager 2008-06-16 13:20:51 +00:00
Robert Osfield
239f4e5c42 From Stephane Lamoliatte, "fix to reading of DatabasePath property" 2008-06-06 16:41:24 +00:00
Robert Osfield
c2a4825afa From Mathieu Marache, "I have made the logo plugin work again (a simple copy and paste problem) and added the path of the logo file (if not empty) to the data file path in order to be able to find images relatively." 2008-06-06 14:59:17 +00:00
Robert Osfield
71187a2c56 From Mario Valle, fixed warnings 2008-06-03 13:07:40 +00:00
Robert Osfield
6873d4237c Ran merge to get rid of tabs 2008-06-03 13:06:54 +00:00
Robert Osfield
0a6b4d5709 From Luc Frauciel, Added support for osgTerrain::ValidDataOperator.
From Robert Osfield, added versioning to the above.
2008-05-30 12:59:49 +00:00
Robert Osfield
7a2c403992 Added code to catch erroneous Dof axis settings 2008-05-29 11:45:31 +00:00
Robert Osfield
8e91926ca5 From Thibault Genessay, "The PNG plugin crashes when you try to read a malformed file (attached
is an example). This can happen in circumstances that are not
manageable by the OSG itself (e.g. 3rd party buggy program) but one
would expect the plugin to be able to recover by returning
ReadResult::ERROR_IN_READING_FILE.

libpng provides two callbacks for warnings and errors - those are
currently unused. By default, they point to function that call exit()
or something similar (the default error callback never returns). This
patch registers the callbacks using libpng's mechanisms, makes the
warning callback emit an osg::notify(osg::WARN) message and the error
callback throw an error. The reading process is enclosed in a
try...catch block. Upon error, the memory is freed and
ReadResult::ERROR_IN_READING_FILE is returned.
"
2008-05-28 13:51:56 +00:00
Robert Osfield
20f3e74643 From Brad Anderegg, "This submission fixes two bugs and helps some performance problems we have been having with txp databases.
The first bug is that the terrain tiles will page out to a lower LOD when they are right in front of you.  The issue appears to be with the blacklisting heuristic which forces a tile to LOD 1, commenting out the usage of blacklisting with the LOD Nodes fixes our problem.  This code change was made to line 29 of TXPPageLOD.cpp.

 

The second bug we were experiencing is that the database reader options never make it through to the archive loader.  The use case for us appeared when the FID codes for the terrain were no longer on the materials.  As it turns out the archive was being created twice, once by TXPNode and once by the ReaderWriterTXP on getArchive() so the options never actually got set on the archive that was being loaded.  The fix is to first create the archive by calling getArchive on the ReaderWriterTXP, which stores it in a map for reference later, and then passing that archive into the TXPNode for it to set its internal member.  With this code change we only create one archive (not sure what creating two did) and our options flags get set properly on the database.

 

The changes made are in TXPNode.h line 72 where the TXPArchive is now passed in.  In the TXPNode.cpp the loadArchive(TXPArchive*) was changed to have the default behavior if NULL is passed in, if an archive is passed in then it does not load it since all the loading is done in the ReaderWriterTXP::getArchive().  The only other place that loadArchive is called is in TXPIO.cpp where a modification was made to pass in NULL which will have the same behavior as it used to.  The last change is the little block of code starting on line 57 of ReaderWriterTXP.cpp, this was changed so that it first calls getArchive() which caches the archives in a map does some loading stuff and returns a pointer to it which is then passed in as a parameter to TXPNode::loadArchive().

 

The performance changes were made to TXPParser.cpp line 163 where we use to osgUtil::Optimizer on the node before passing it off, and on line 1456 we changed the geometry to use display lists.  These small changes actually made drastic performance increases for us, as much as 1000% on certain laptops.

 

As far as testing goes, we have tested these changes with at least 5 txp databases on a variety of different computers including Mac OS and Linux.  The base version used is 2.4."
2008-05-27 20:53:43 +00:00
Robert Osfield
169b1a02ad From Gino van den Bergen, "I've refactored the single ReadedWriterVRML2.cpp into multiple files. The reason for doing this was to break up the horribly long function
osg::ref_ptr<osg::Node> ReaderWriterVRML2::convertFromVRML(openvrml::node *obj)
 
The fixes are:
 
* Added the source's parent directory as search directory for image files.
* The material properties are now set in the stateset of the Geode rather than the Geometry. This will allow geometries to be reused with different material properties in future updates.
 
NB: I planned for a caching scheme in which multiple occurences of the same primitive (e.g., Cylinders with radius 0.8 and height 1.2), would use the same Geometry object. Unfortunately, my planning moved me to other areas, but I might still finish the caching scheme in a quiet hour. For the time being I decided it would be a good thing to already submit my current changes.
 "
2008-05-27 12:06:50 +00:00
Robert Osfield
dd6d04e088 From Andrew Bettison, "Problem: the LineStipple pattern when read from an OSG node file is always 0xFFFF, even though specified otherwise in the OSG file.
Cause: possibly a copy/paste typo in src/osgPlugins/osg/LineStipple.cc, line 61:
  if (fr[0].matchWord("functionMask") && fr[1].getUInt(mask))

Solution: change to:
  if (fr[0].matchWord("pattern") && fr[1].getUInt(mask))"
2008-05-27 11:07:52 +00:00
Robert Osfield
66a1996a5a From Wang Rui, "I have just done some changes on the classic osgdb_gif plugin (based on OSG 2.5.0). I wish our developers may use the newly written GIF reading plugin to attach animate GIF files as textures now! In my opinion, a GIF is much smaller than AVI and MOVs, and much more efficient sometimes.
Changes includes:
1. A new GifImageStream class (inherit from osg::ImageStream and OpenThreads::Thread) have already been added to implement different operations of a GIF movie, such like playing, pausing, rewinding, setting time and so on.
2. Some small changes to decode_row() and gif_read_stream(), which make the transparency of GIF images correctly.
3. Just a few changes to the ReaderWriterGIF::readGIFStream() function, which ensure that animate GIFs are loaded by GifImageStream (and the function returns GifImageStream objects) and static GIFs unchanged (still use the old method and returns osg::Image objects!).
 
Attachments are the cpp file and an animate GIF file for further test. Just rebuild the osgdb_gif project and use osgviewer or osgmovie to view it.
The plugin has been tested on Windows and Arch Linux."
2008-05-27 10:50:26 +00:00
Robert Osfield
476cb5373e From Philip Lowman, post 1:
"Here is a collection of changes which should fix issues building the OSG with CMake 2.6.0 (along with some other changes)

CMakeLists.txt:
* Set CMP0003 to supress warning about linking against -lpthread (which is a
  non-absolute library location).  (CMake 2.6.x fix)
* Modified the WIN32_USE_MP and a couple of other Visual Studio specific flags
  to be in an IF(MSVC) block  (minor tweak to reduce exposing this stuff on MinGW builds)
* Includes my second set of glu tesselator autodetection changes that you
seemed to want but haven't committed yet.

src/OpenThreads/pthreads/CMakeLists.txt:
* Eliminates warning when compiling on Linux about spaces in link line (CMake 2.6.x fix)

CMakeModules/OsgMacroUtils.cmake:
* Tweaks to make the macros behave properly under CMake 2.6.0 (doesn't change behavior under CMake 2.4.x)

CMakeModules/Find3rdPartyDependencies.cmake:
* Adds the NO_DEFAULT_PATH option to all of the search options so that things in C:\Program Files\OpenSceneGraph aren't accidently picked up during configure time and instead only things in the "3rdParty" folder are discovered. (general bugfix)
"

post 2:
"Ok, hold the presses.  I just discovered that for some odd reason the osgdb_* plugins under Linux aren't getting put under the osgPlugins-2.5.0 folder.  Not exactly sure why this broke, the folder was there, just empty.  I'll have to look into it this evening."

post 3:

"Fixed, was caused by the switch to CMAKE_LIBRARY_OUTPUT_DIRECTORY and some code in osgPlugins/CMakeLists.txt that effectively overrides LIBRARY_OUTPUT_PATH on non-MSVC compilers to dump the plugins in the plugins folder.  I tweaked it to override CMAKE_LIBRARY_OUTPUT_DIRECTORY as well.  Seems to work fine."
2008-05-26 22:36:58 +00:00
Robert Osfield
51dd9676db From Paul Martz, "When exporting a DrawArrays PrimitiveSet, the DAE plugin computes an incorrect nbVerticesPerPoly if the first index is not zero. The issue can be reproduced easily with:
osgconv cessna.osg cessna.dae
 
Examination of the resulting .dae file reveals several out-of-range tristrip indices; viewing the .dae file in osgviewer causes a crash when OSG tries to lookup those indices.
 
Attached resolves this issue."
2008-05-26 22:34:06 +00:00
Robert Osfield
8f6ca1dc6c From Gino, "According to the 1.4.1 COLLADA spec (2nd ed) the standard behavior for fx_sampler_wrap_common is as follows
CLAMP ->GL_CLAMP_TO_EDGE
NONE->GL_CLAMP_TO_BORDER

The current 2.5.0 daePlugin assumes the following binding

CLAMP ->GL_CLAMP
NONE->GL_REPEAT

Notably the GL_CLAMP binding will result in visible black seams on input files that use otherwise matching textures. Replacing GL_CLAMP by GL_CLAMP_TO_EDGE solves this problem. I've updated both the read and write functions.
"
2008-05-26 21:32:05 +00:00
Robert Osfield
189049f9bd From Colin McDonald, "I had to tighten a declaration in OpenFlight/FltWriteResult.h, as the Solaris SunStudio 11 compiler was being picky and wouldn't compile." 2008-05-26 21:04:47 +00:00
Robert Osfield
58f5ebab19 Checking in missed header 2008-05-22 08:31:56 +00:00
Robert Osfield
7b003b24ea Refactored DatabasePager and related classes to introduce support for
multi-threaded paging, where the Pager manages threads of reading local
and http files via seperate threads.  This makes it possible to smoothly
browse large databases where parts of the data are locally cached while
others are on a remote server.  Previously with this type of dataset 
the pager would stall all paging while http requests were being served,
even when parts of the models are still loadable virtue of being in the 
local cache.

Also as part of the refactoring the DatabaseRequest are now stored in the
ProxyNode/PagedLOD nodes to facilitate quite updating in the cull traversal,
with the new code avoiding mutex locks and searches.  Previous on big 
databases the overhead involved in make database requests could accumulate
to a point where it'd cause the cull traversal to break frame.  The overhead
now is negligable.

Finally OSG_FILE_CACHE support has been moved from the curl plugin into
the DatabasePager.  Eventually this functionality will be moved out into
osgDB for more general usage.
2008-05-21 21:09:45 +00:00
Robert Osfield
646fc43747 Introduced preliminary support for asynchronous file read requests,
ReaderWriter::ReadResult now has a FILE_REQUEST enum.
  ReaderWriter::Options now has a s/getAsynchronousFileReadHint() parameter methods.

  libcurl based plugin now detects enabing of the AsynchronousFileReadHint, but
  as yet does not handle async requests - handling everything syncronously.
  
  DatabasePager now by default will enable AsynchronousFileReadHint for http
  based file requests
2008-05-14 17:03:57 +00:00
Robert Osfield
d7c4e6f26e Moved the cache file writing into StreamObject so that the cache file is only
created once data is being read.
2008-05-14 14:59:50 +00:00
Robert Osfield
6be1928447 Introduced a thread safe map which manages a single EasyCurl object per thread. 2008-05-14 13:16:36 +00:00
Robert Osfield
094dcd9bfd Refactor curl usage so that a new EasyCurl class wraps up the curl handle and
reading from curl.
2008-05-14 12:47:26 +00:00
Robert Osfield
f3d36055ef From Steven Thomas, "Subject: Collada fix
There was a problem converting a file to Collada by using osgconv like this:

osgconv file.osg file.dae

You would get an error message:

I/O error : Permission denied
I/O error : Permission denied
error : xmlNewTextWriterFilename : out of memory!
Error: daeLIBXMLPlugin::write(file://cessna.dae) failed
Warning: Error in writing to "cessna.dae".

This was due to some bad URI processing code in the Collada plugin. The attached file fixes this by using the Collada DOM's URI processing functions. After this change the file will convert successfully in the local directory.
"
2008-05-13 10:56:10 +00:00
Robert Osfield
61cb0833b9 From Bob Kuehne, "* add easy multiple texture targets support for obj by refactoring texture
load into it's own method.

* use new method from step 1 to load 'map_opacity' textures from .mtl files"
2008-05-12 10:18:41 +00:00
Robert Osfield
a7e5972f82 Added CARIO_FOUND into svg plugins checks 2008-05-11 14:26:27 +00:00
Robert Osfield
13acf6420f From Miguel Escriva, Here you will find a SVG Image Reader. It renders a SVG file as an osg::Image using cairo and rsvg. 2008-05-11 14:23:19 +00:00
Robert Osfield
412717c151 From Paul Martz, "This change adds support for osg::Billboards to the OpenFlight exporter.
It might seem odd that the change actually removes the stub apply(Billboard&) method, but it turns out Billboards are easily supported in subordinate routines of the existing apply(Geode&) method with s dynamic_cast, so there's no need for a separate apply(Billboard&)."
2008-05-10 17:25:42 +00:00
Robert Osfield
e9589ebb49 From Paul Martz, "Another round of plugin enhancements.
3DC: Output now uses osg::notify.
JPEG: Now returns correct error code for empty input file.
FreeType: Prevent possible crash if Options is NULL."
2008-05-10 17:23:12 +00:00
Robert Osfield
61e3285ffc From Paul Martz, "Attached are some minor plugin fixes. PNM, RGB, and JPEG would all crash if attempting to read an empty file, and FLT would go into an infinite loop. All are fixed with this change.
I also fixed some return values for a couple of these, changing FILE_NOT_HANDLED to ERROR_IN_READING_FILE where appropriate."
2008-05-09 11:27:03 +00:00
Robert Osfield
59653bcc08 From Eric Sokolowsky, "I found one compilation error in OSG 2.4 in the Inventor plugin, where one node (SoTextureCoordinate3) was assumed to be available in all versions of Inventor but is actually only available in Coin. The use of the node is now protected by #ifdef __COIN__ constructs. The attachment is based on OSG 2.4, not SVN." 2008-05-08 16:48:49 +00:00
Robert Osfield
ebf3804c84 From Sebastien Messerschmidt, "attached you'll find a patch for the shp-plugin.
I've spotted huge memory leaks int ShapeParser and fixed them.
Also, there was a missing destructor (PolygonM) and a missing member initialization (PolygonZ)
Would be nice if someone could test the changes.

To release the memory just if no reading error happened (and therefore the arrays would be valid) I've added an macro to release and reset the pointers at once. I'm not using macros myself very often as I don't like them, but I think it doesn't hurt in this code.

"
2008-05-08 15:17:53 +00:00
Robert Osfield
6d61e554b4 From Paul Martz, "As I discovered prior to the 2.4 release, the FLT export geometry backend was using some old turn-on code, originally written just to enable other development but not intended for actual release. Sadly, my OSG training commitments prevented me from fixing this prior to 2.4.
In essence, the FLT exporter was emitting a full set of Mesh records each time it encountered a PrimitiveSet.
 
Attached is a fix. The code now emits the Mesh set up records, then iterates over all PrimitiveSets and emits a Mesh Primitive record per PrimitiveSet.
 
It also loops over PrimitiveSets twice, first writing Face records according to the mode, the writing Mesh records (again according to the mode).
 
The final change included here is support for GL_POINTS as single-vertex Face records.
 
Billboards are still to come."
2008-05-08 13:56:28 +00:00
Robert Osfield
973f104704 From Garrett Potts and Robert Osfield, changes to build against Collada DOM 2.x 2008-05-08 12:36:07 +00:00
Robert Osfield
5fbb582856 Commented out checking of DISPLAY env var 2008-05-07 17:06:36 +00:00
Robert Osfield
e14574cbb2 From Luigi Calori, Added CURL_IS_STATIC option to help hint to the libcurl's plugin build so that it can be select as static build 2008-04-21 14:51:47 +00:00
Robert Osfield
c4ba16f017 Added support for COLOR_BUFFER entries up to 15 2008-04-18 14:57:43 +00:00
Robert Osfield
a1f1f5114c From Stephan Huber, "attached you'll find a refactored and improved quicktime-plugin. I moved all code related to the image-loading, swizzling etc into an extra class. The quicktime plugin supports now reading and writing images from/to streams and the code is less cluttered than previous versions.
I removed QTtexture.h/.cpp and added QTImportExport.h/.cpp. I updated the CMake-files, I hope they are alright. I used the submitted code in my own apps since two months or so and it seems pretty stable, but as always the migration to the osg-quicktime plugin may have introduced new bugs, so perfect for developer release :)"
2008-04-17 15:30:35 +00:00
Robert Osfield
d0a2bf87f3 From Paul Martz,"Several misc changes, but the major fixes include:
* Support for Vec4ubArray for color data
 * Support for material transparency
 
Thanks to Neil Hughes, Jason Daly, yourself, and others for testing and reporting issues."
2008-04-11 13:43:11 +00:00
Robert Osfield
5893b99122 From Sherman Wilcox, "Modified the cmakelists.txt file for the curl plugin so the proper
linker directories are set in Win32. The old cmakelists.txt would set
the lib release folder for debug builds as well. This should correct
that."
2008-04-11 10:58:28 +00:00
Robert Osfield
462067c5d9 From Benoit Laniel, "I use mingw to cross-compile openscenegraph to win32. However, linux
filesystem is case-sensitive. Here are the modifications needed to make
the compiler happy. These are only some include lines rewritten (Io.h to
io.h, Windows.h to windows.h etc.) for version 2.3.7."
2008-04-11 10:30:00 +00:00
Robert Osfield
2a54ff3e4a Introduced CMake build option for compiling double or float versions of osg::BoundingSphere and osg::BoundingBox.
Introduced code in BoundgingSphere, BoundingBox, ProxyNode and LOD to utilise the above settings.

Added Matrix::value_type, Plane::value_type, BoundingSphere::value_type and BoundingBox::value_type command line 
options that report where the types of floats or doubles.
2008-04-03 18:36:50 +00:00
Robert Osfield
d0b5a42c5c From Mattias Helsing, "While using the dds plugin (via osgdem) it was able to write 24bit
images with BGR order but not read them. My 2-liner fixed it for me
but it may be that someone with more knowledge of the plugin want to
insert more pixel formats in the reading part of the plugin."
2008-04-03 10:26:18 +00:00
Robert Osfield
0ab29e1502 From Mattias Helsing, "Subject: osga reading slash mismatch
requests for files in a archive are made with unix style paths. So to
be able to match an entry in map(_indexMap) it's keys needs to be
stored in unix style even on Win32"

Note from Robert Osfied, simplified this submission so that the added conversion to
unix slahes is done on all platforms as this should be safe and simpler to maintain.
2008-04-02 13:57:26 +00:00
Robert Osfield
3e94d93a66 Changed the Camera::BufferComponent::COLOR_BUFFER0 from being equal to COLOR_BUFFER
to being COLOR_BUFFER+1 to enable differentation between non MRT and MRT paths.
2008-04-02 13:47:45 +00:00
Robert Osfield
e482e718f5 From Paul Martz, "Two changes:
- Handle DrawArrays first/count correctly (fixes problem reported by Jason Daly)
 - Display warning if non-Geometry Drawable is encountered."
2008-04-01 10:11:22 +00:00
Robert Osfield
5887dc87b1 From Andy Skinner, build fix for Solaris 2008-03-31 14:00:42 +00:00
Robert Osfield
2c1d440444 From Paul Martz, "Some small changes and code cleanup. Biggest change is an improvement to the WriteResult return." 2008-03-28 19:56:25 +00:00
Robert Osfield
f42497bc2b Improved the error capture and reporting 2008-03-28 17:53:58 +00:00
Robert Osfield
497854cb2f Removed old lower case versions 2008-03-28 13:22:30 +00:00
Robert Osfield
28f9b71dd4 From Paul Martz, "Here's the mods to the OpenFlight plugin to support FLT export. The ZIP file contains the new .cpp/h files as well as existing files that I modified.
Changes to existing files:
  ReaderWriter.cpp -- to support writeNode() of course.
  ReaderWriterATTR.cpp -- to support writeObject -- we write .attr files for textures, if they don't already exist.
  AttrData.cpp/.h -- Minor fixes.
  CMakeLists.txt -- to include the new files in the build."
  
From Robert Osfield, port to non Windows platforms just required fixing of header capitilization errors
that windows lets through the net due to having a case insensitive file system.
2008-03-28 12:44:33 +00:00
Robert Osfield
35c5bd2c92 Renamed Terrain to TerrainTile 2008-03-27 10:55:39 +00:00
Robert Osfield
a9d283ca73 Introduce TerrainSystem node which decorates a complete terrain model made up of Terrain tiles. 2008-03-26 20:06:54 +00:00
Robert Osfield
c9fc0cd802 From Carlo Camporesi, "I have made some changes in order to allow the using of proxies via env variables and options.
I have modified also the cmakelist. In this way osg is able to find the library in 3rdParty directory."
2008-03-26 20:03:53 +00:00
Robert Osfield
3a1fbcd6f0 Added #include<memory> to fix gcc 4.3 build problem 2008-03-25 13:01:40 +00:00
Robert Osfield
6e7a1608df Added preliminary file cache support. Enabled by setting the OSG_FILE_CACHE variable. 2008-03-21 18:35:29 +00:00
Robert Osfield
c762eeee0c Added missing break; at end of each case entry. 2008-03-21 18:31:56 +00:00
Robert Osfield
b58d59ceb7 Fixed push/popping of filepath, removed verbose debug messages 2008-03-21 15:43:53 +00:00
Robert Osfield
c26b41d125 Added better detection and error reporting of files without proper server address 2008-03-21 13:20:07 +00:00
Robert Osfield
ac63d37f7b Added initial cut of libcurl based plugin 2008-03-21 13:08:02 +00:00
Robert Osfield
1d1dcf2cf3 To osg::AutoTransform added support for MinimumScale, MaximumScale and AutoScaleTransitionWidth parameters
and a new scheme for computing the scaling when using autoscale that introduces smooth
transitions to the scaling of the subgraph so that it looks more natural.
2008-03-18 15:37:38 +00:00
Robert Osfield
7a7c197af3 Added minimum and maximum scale support to osg::AutoTransform 2008-03-17 15:22:03 +00:00
Robert Osfield
00f161ca35 Introduce osgParticle::ParticleSystem::s/getParticleScaleReferenceFrame() to
help manage the scaling of particles, whether they should be relative to the
local coordiante frame of the particle system, or be in world coordinates.
2008-03-17 12:09:05 +00:00
Robert Osfield
a1c0c2a3eb Added better error reporting 2008-03-15 19:27:35 +00:00
Robert Osfield
849d2fdc8f From Gino van den Bergen, "I've added a few fixes to the VRML 2.0 plugin:
1) Full DOS paths are now correctly opened by OpenVRML. A URL containing
a DOS path should be "file:///C:data/blah" rather than "file://C:data/blah".

2)  The last primitive defined in "coordIndex" is now added if the
"coordIndex" is not terminated by -1.

3) Smoothed normals are computed if no normal field is provided.
Currently, there is no support for "creaseAngle", so all edges (even the
ones sharper than the creaseAngle) are smoothed. I might add this in the
future if demand rises.

4) If an IndexedFaceSet contains only triangles or quads then the
primitive type is set to TRIANGLES or QUADS, and the primset becomes
DrawArrays rather than DrawArrayLengths.

Question: I noticed that for DrawArrays you can still provide an index
array. Would the rendering be faster if I'd create DrawElements primsets
rather than DrawArrays? Phrased differently, what is the benefit of
using DrawElements over DrawArrays, as there is clearly not a one-to-one
mapping of these concepts to their OpenGL counterparts?

5) Objects are added to the transparent bin and blend mode is enabled
only if the transparency is nonzero. Rendered transparent objects no
longer write the depth buffer."
2008-03-13 16:40:45 +00:00
Robert Osfield
110c761695 From Melchoir Franz, "ac3d.cpp does currently strip everything but the file name in
"texture" paths. This is to drop absolute paths that some
3d editors export (even AC3D itself!). But this also strips
directories of relative paths, which is wrong and contradicts
the ac3d reference implementation. (The reference implementation
doesn't strip anything, though, and so takes the absolute paths
as they are. Definitely not what we want.)

The attached solution checks absolute paths and only strips
those:

 (1)  A:\\foo\\bar.png   ->   bar.png            (as before)
 (2)  /foo/bar.png       ->   bar.png            (as before)

 (3)  foo/bar.png        ->   foo/bar.png        (new)
 (4)  ../foo/bar.png     ->   ../foo/bar.png     (new)

"
2008-03-13 16:18:03 +00:00
Robert Osfield
a9740118db From Paul Martz, files for adding ObjectRecordData support into OpenFlight 2008-03-13 15:21:34 +00:00
Robert Osfield
e19dbe8daa From Paul Martz, "The attached preserves OpenFlight Object record data as UserData in the osg::Group corresponding to the Object record.
The files are:
    include/osgSim/ObjectRecordData -- The new class. Derives from Object to support .osg IO.
    src/osgPlugins/OpenFlight/PrimaryRecords.cpp -- Reads data into that class.
    src/osgPlugins/osgSim/IO_ObjectRecordData.cpp -- .osg IO support."

From Robert Osfield, made the OpenFlight read object record data optional via the -O readObjectRecordData ReaderWriter option.
2008-03-13 14:09:11 +00:00
Robert Osfield
eb9f7428bc Fixed bug in output of ProxyLayer's MinLevel/MaxLevel 2008-03-12 15:28:26 +00:00
Robert Osfield
af29bccf4f From Andreas Ekstrand and Lars Nilsson, fix for reading Texture Attribute file 2008-03-05 13:54:52 +00:00
Robert Osfield
c4d07194a2 From Art Trevs, add support for saving external shader files.
From Robert Osfield, adding missing member variable initializes and Output::getShaderFileNameForOutput() implementation
2008-03-04 14:04:48 +00:00
Robert Osfield
eb46608be4 From Wojciech Lewandowski and Robert Osfield, Support from LightPointNode::s/getPointSprite parameter. 2008-02-27 12:11:02 +00:00
Robert Osfield
335eed204b Added debug message to track cache usage 2008-02-27 11:43:06 +00:00
Robert Osfield
69d58d6f7c From Paul Martz, "This change adds "GL_NORMALIZE" and "GL_RESCALE_NORMAL" to .osg IO in place of the hex equivalents." 2008-02-25 15:09:56 +00:00
Robert Osfield
75b9a9c809 From Robert Osfield and Carlo Camporesi, took submission from Carlo for adding LoadingExternalReferenceMode to ProxyNode and extended it
to include a wider range of options, also completed implementation
2008-02-25 15:07:35 +00:00
Robert Osfield
adbc15b5a1 From Glenn Waldron, "As you may recall, we discussed adding ReaderWriter::readObject() overrides to all the image plugins in order to facilitate future archive support. Attached are the necessary modifications. I tested JPEG, but not all the others... the code is identical though. Note that the DDS plugin already contained the readObject() implementations." 2008-02-25 13:25:42 +00:00
Robert Osfield
e869200b3d Refactored the mutex usage in osgText and freetype plugin to prevent multi-thread crash 2008-02-25 12:54:54 +00:00
Robert Osfield
67f1503c7d Refactored osgTerrain so that the interface for setting up layer is more straight forward, and added support into GeometryTechnique for handling multiple layers 2008-02-22 11:52:23 +00:00
Robert Osfield
6516bf4910 Added TextureUnit entry to osg::TransferFunction and osgTerrain::Layer 2008-02-20 12:34:13 +00:00
Robert Osfield
49ef41b373 From Bob Kuehne, "Subject: obj material parse fix
this fix strips whitespace off externally referenced material files.
fixes a bug where the obj listed something like:

 mtllib  FR_PARIS_ESPACE_UNESCO_S.MTL

and then that caused failures in the load later:

 FindFileInPath() : trying /Users/rpk/Downloads/
FR_PARIS_ESPACE_UNESCO_S.MTL ...

this fix simply strips whitespace around that filename before passing
it on to the remainder of the loader."

Changes from Robert Osfield, change std::cout to osg::notify(osg::INFO)
2008-02-18 15:17:42 +00:00
Robert Osfield
e7e8d48980 From Thibault Genessay, "On Dec 16 you introduced a fix to remove internal use of ref_ptr<>'s.
It contained a bug that would cause freed memory to be written again.
Specifically, in FreeTypeLibrary::~FreeTypeLibrary(), calling
font->setImplementation(0); deletes the content pointed to by the
fontImplementation pointer, while the line the immediately follows
tries to access it.

My fix is to make the second instruction part of an else clause rather
than always executed. This way, the fontImplementation->_facade = 0
instruction is only executed when the font implementation is not set
to 0 before (although I have no idea what it is here for and if this
code path is ever followed, since I don't know the plugin's internals
very well).

Attached is the modified FreeTypeLibrary.cpp file."
2008-02-18 15:10:30 +00:00
Robert Osfield
8b77cc4dac From Bob Kuehne, build fix for OSX/gcc 4.0.1 2008-02-18 14:14:08 +00:00
Robert Osfield
91e35599dc From Brede Johansen, "Here's a fix to the changes regarding the new dispose() function. The
last primary node inside a push-pop level would not get the dispose()
call.  This would result in information from some ancillary records,
like the matrix (transform), being lost.

Changes are made to the latest version in the repository.

Thanks to Terry for the help to find and fix the bug and test the changes."
2008-02-18 13:52:26 +00:00
Robert Osfield
f0087e821e From Mike Weiblen, "1) best practices suggest that values passed by-reference should be
initialized.
2) explanatory comments are handy when available as notify() messages."
2008-01-28 20:54:14 +00:00
Robert Osfield
6e0bbbbc6a From Roger James, "A small fix for compiling with OSG_USE_FLOAT_MATRIX" 2008-01-28 20:31:48 +00:00
Robert Osfield
ed1e21a9bc From Glen Waldon, "This change patches ReaderWriterOSGA.cpp so that it passes along the ReaderWriter::Options to files loaded from inside the archive. Previously it was discarding them.
example:
osgviewer -O noLoadExternalReferenceFiles archive.osga"
2008-01-28 17:00:19 +00:00
Robert Osfield
6224c99692 From Cedric Pinson, "default white behaviour : osgviewerd -e ogr yourFile
randomize color by feature: osgviewerd -e ogr -O UseRandomColorByFeature
yourFile"
2008-01-28 16:13:42 +00:00
Robert Osfield
54129105a4 Added projectorMatrix parameter support to *SphericalDisplay setup functions and .view, this allows one
to flip, rotate, or turn up side the position of the projector.  Note, projector at base of display is the default.
2008-01-28 15:41:42 +00:00
Robert Osfield
bae83fc69d From Drederic Bouvier, "I noticed the AC3D loader resets database path given as Options,
preventing users to put textures in another directory. This patch adds
the model path to the path list instead of replacing it."
2008-01-21 14:42:52 +00:00
Robert Osfield
a586d63687 From Cedric Pinson, "you can find as attachement a readerwriter for ogr files (.tab, .gml,
.shp ...) ogr is a part of gdal so i added the build of ogr plugin if
gdal is found. 

to test it
osgviewerd -e ogr file.tab
or
osgviewerd -e ogr file.gml
or
osgviewerd -e ogr file.shp
"
2008-01-21 12:01:55 +00:00
Robert Osfield
c855923d93 Added Node to Terrain serialization 2008-01-17 16:41:46 +00:00
Robert Osfield
828851c08a Refactor osgTerrain::ProxyLayer so that it is now a pure Proxy, defering implementations
to an Implementation rather than a subclass of ProxyLayer.  Updating the osgTerrain and GDAL plugins
to comply with this refactor.
2008-01-14 14:53:49 +00:00
Robert Osfield
a46eb79311 Indentation/bracket fixes and change of default size 2008-01-09 21:17:10 +00:00
Robert Osfield
2ea2872cfb Simplified the image reading/writing 2008-01-09 21:00:38 +00:00
Robert Osfield
dfa4060465 Adding missing files 2008-01-09 16:56:31 +00:00
Robert Osfield
803f70c2fb Added support for reading and writing osgTerrain objects 2008-01-09 16:35:55 +00:00
Robert Osfield
11db24e6b3 From Colin McDonald, build fixes for Solaris. 2008-01-08 18:13:06 +00:00
Robert Osfield
6ca573dfd3 From Jean-Sebastien Guay, Warning fixes 2008-01-08 17:18:11 +00:00
Robert Osfield
d7d1b382b7 Added support for reading and writing the Terrain's Locator 2008-01-08 16:09:01 +00:00
Robert Osfield
dc79b6bb4d Added writing and reading of inlined HeightField 2008-01-08 15:20:02 +00:00
Robert Osfield
c37e5eaf18 Added support for MinLevel and MaxLevel for ProxyLayer 2008-01-08 13:56:21 +00:00
Robert Osfield
f3448d3307 Removed debug info 2008-01-08 13:22:55 +00:00
Robert Osfield
74e5d44538 Reorganised the .osg support for osgTerrain NodeKit to make it more extensible 2008-01-08 13:10:59 +00:00
Robert Osfield
4d042581a6 From Paul Martz, "Correction to size of reserved filed in .attr file, Spec says "149*4" bytes, not "149"" 2008-01-04 15:30:49 +00:00
Robert Osfield
8d5d543600 From Brede Johansen, support for contiuation records. 2008-01-04 11:26:21 +00:00
Robert Osfield
6231c3a5a4 From Paul Martz, completion of .ive and .osg support for OcclusionQueryNode 2008-01-04 11:14:11 +00:00
Robert Osfield
5e89958623 Fom Brede Johansen, "I have added the OSGPL license to the OpenFlight source files" 2007-12-24 15:32:15 +00:00
Robert Osfield
93127866a8 From Sid Byce, fixes for compiling with gcc 4.3 2007-12-24 15:19:52 +00:00
Robert Osfield
7f30f0038f From Rafa Gaitan, "I have corrected some includes of the quicktime plugin
from Quicktime/Quicktime.h to QuickTime/QuickTime.h.
MacOsX filesystem is normally case insensitive, but in 
my case I changed that option and the quicktime headers
were not found. Now compiles fine and on case insesitive
file systems should work correctly too. "
2007-12-24 14:47:49 +00:00
Robert Osfield
ce5388a8bc Convert osgText and freetype plugin across to keeping the font size as state that
is passed into the getGlyph and getKerning methods rather than a current state of the font itself.
2007-12-23 18:15:54 +00:00
Robert Osfield
f290b75bc9 Moved Font code across to using FontSizePair internally and on Font methods, but
still using original implemetations.
2007-12-23 13:45:37 +00:00
Robert Osfield
b052e18f6e From Paul Martz, .osg support for OcclusionQueryNode 2007-12-21 14:49:49 +00:00
Robert Osfield
4889342c4a From Paul Martz, Introduced osg::OcclusionQueryNode with support for OpenGL occlusion query extension 2007-12-21 14:45:16 +00:00
Robert Osfield
9a41178439 From John Kelso,"Attached is the ive reader/writer for the 2.x version of the osg::Sequence
node. "
2007-12-21 14:13:40 +00:00
Robert Osfield
2e62206117 From David Callue, added support for reading/writing Vec*dArray to .ive plugin 2007-12-21 12:36:40 +00:00
Robert Osfield
2cab28c3b8 Added support for min to max level ranges for Layers in support of VirtualPlanetBuilder usage of this. 2007-12-20 15:51:13 +00:00
Robert Osfield
3ffe7de6a3 Reorder includes in an attempt to avoid compile problems under Cygwin. 2007-12-20 10:48:23 +00:00
Robert Osfield
9507ee6c7d From Wojiech Leandowski, "I earlier wrote about my hassles with archives under Windows. I implemented
64 bit binary compatible OSGA archive reader/writer using mixed
stdio/iostream calls. But during this work I learned that it can be made in
much simpler way.

Attached is result of this new attempt. I hope its appropriate for inclusion
into OSG codebase. It was compiled and tested with latest SVN OSG, Windows
XP 32 bit and Windows Vista business 64 bit. OSG was built using VS 2005
Express SP1 for 32 bit environment and VS 2005 Std for 64 bit.
---
Solution description (there were two problems involved):
---
Problem 1: implicit conversions beetween file positions and 32 bit int. This
could be considered a MS compiler bug because this 32 bit int was
additionally implicitly converted to/from 64 bit. As far as I know compiler
is allowed to make only one implict conversion (but maybe this rule does not
refer to simple types).

Its actually possible to address OSGA files above 4 GiB range using 32 bit
windows iostreams. MS Iostreams in practice offer the same level of
functionality as stdio functions. There are functions fsetpos and fgetpos in
stdio lib which use 64 bit file pointers (fpos_t). These functions are
internally called by seekp( streampos ), seekg( streampos ), tellp(), and
tellg() methods. So its also possible to change and retrieve file postions
using iostream calls. But the problem lies in implicit handling of streampos
type.

streampos type is actually a template class used as seekp, seekg parameter
and returnd from tellp, tellg. Its capable of storing 64 bit file pointers.
But streampos can be also converted to/from simple type streamoff. It has
proper constructor and cast operator. In Win 32 environment streamoff is
defined as long (~32 bit int). So when seekp, and tellp arent used with
exact streampos objects but OSGA_Archive::pos_type complier makes implicit
casts to 32 bit int types loosing important bits of information.

So above problem could be easily handled by making conversion calls
explicit. My code defines 2 functions used to convert back and forth beetwen
64 bit OSGA_Archive::pos_type and std::streampos objects:

       OSGA_Archive::pos_type ARCHIVE_POS( const std::streampos & pos );
       std::streampos STREAM_POS( OSGA_Archive::pos_type & pos );

Rest of the OSGA implementation code was modified to call these conversions
explicitly with seekp, seekg, tellp, tellg.

---
Problem 2: seekp and seekg have two variants. Only one of these variants is
actually 64 bit proof.

When I solved my first problem and made use of explicit streampos conversion
functions, OSGA archive was able to read my example 11 GiB archive. But
there were still problems with write and append. I found that the reason for
this was pair of seekp( 0, std::ios_base::end ) and tellp() calls. It turned
out that use of seekp, seekg( offset, direction ) function variants was
setting file pos pointer to EOF when file was larger than 4GiB. But I
noticed that one arg seekp, seekg ( streampos ) versions worked correctly.
So the solution was to change OSGA write logic a little, and replace
seekp( offset, direction ) with seekp( absolute_pos ) calls.
I achieved this by modifing IndexBlock write method to record and restore
file pos after IndexBlock was written. This modification has the effect that
put pointer is generally kept at the end of file, so there is no need to
repostion to the end before writing the files. This allowed me to get rid of
those problematic seekp( 0, std::ios_base::end ) calls.

There was one place where I could not easily get rid of seekp( 0,
std::ios_base::end ). It was situation where existing OSGA was opened for
appending. I resolved this by computing file length by finding max position
from index block and file block endings. Then I replaced former seekp( 0,
std::ios_base::end ) with  seekp( STREAM_POS( found_file_length ).
---

Description of these changes may sound bit hacky but in practice these were
fairly simple and straightforward modifications. I hope they pass your
review. There is one complex preprocessor condition which I based on few
lines taken from boost positioning.hpp. Boost licence does allow such
reproduction. In case of problems this condition may be easily simplified to
windows only implementation.
"
2007-12-17 09:58:55 +00:00
Robert Osfield
6eaa273116 Added check to make set up a sequencegroup only happen when required. 2007-12-16 17:53:16 +00:00
Robert Osfield
1e996afe81 From Wojciech Lewandowski, "osgSim::BlinkSequence has sequenceGroup unitialized by default (=NULL ref_ptr). By looking at the code I figured out that unset sequenceGroup is completely correct and thus allowed.
But writing BlinkSequence with empty sequence group caused a crash when IVE was accessing baseTime from NULL address.
 
Atttached is a fix for this situation.
"
2007-12-16 17:46:57 +00:00
Robert Osfield
f1154f99bf Fixed HeightField coordinates set up 2007-12-16 17:33:05 +00:00
Robert Osfield
4a79644810 Added support for automatically setting the coordinate system of a shapefile by reading associate .prj file 2007-12-16 16:18:58 +00:00
Robert Osfield
e29423bba9 Removed used of ref_ptr<>'s internally to avoid ciricular calls on destruction. 2007-12-16 13:20:38 +00:00
Robert Osfield
becf6c22ea Added initilizers of variables to FreeTypeFont3D constructors.
Removed unused FreeTypeFontBase class
2007-12-16 12:36:52 +00:00
Robert Osfield
32e43cb789 Fixed handling of DISPLAY variable, and mapped the rest of Producer config settings 2007-12-15 17:16:11 +00:00
Robert Osfield
9f63b89e6a Refectored the loading of Locator out into its own separate file 2007-12-14 17:40:11 +00:00
Robert Osfield
f7e91fa28e Added Locator::s/getTransformScaledByResolution(bool) to assist with VPB integration 2007-12-13 17:51:43 +00:00
Robert Osfield
3bfa74222b Warning fixes 2007-12-13 16:06:02 +00:00
Robert Osfield
831dc38166 From Andy Skinner, build fixes for Solaris 2007-12-13 15:24:42 +00:00
Robert Osfield
492e01d244 Convert tabs to four spaces 2007-12-13 15:23:21 +00:00
Robert Osfield
0dc71306e7 Fixed memory leak 2007-12-13 14:26:03 +00:00
Robert Osfield
1fbb0a8674 Updated the shapefile attribute IO so that its more streamlined. 2007-12-13 14:16:51 +00:00
Robert Osfield
33e3054fca From Serge Lages, "Here is a new modification to CMake adding an option (OSG_MSVC_GENERATE_PLUGINS_AND_WRAPPERS_MANIFESTS) to specify if we want to generate or not the manifest files under VS8 for the plugins and the wrappers. It seems that the manifests are needed if we try to load dynamically a core OSG dll." 2007-12-12 09:48:39 +00:00
Robert Osfield
a0d70bbf03 From Cyril Brulebois, removed redundent typedef. 2007-12-11 17:19:40 +00:00
Robert Osfield
32e520d5a1 From Brede Johnansen, support for continuation records. 2007-12-11 16:42:10 +00:00
Robert Osfield
669e86145c Added missing copyright notices 2007-12-11 14:48:51 +00:00
Robert Osfield
8062406d54 From Roger James, "The changes are as follows:-
1. DAE object no longer held onto by plugin.
2. Filename to URI conversion now handled internally by plugin.
2. User can supply an external DAE object for use by the plugin.
3. User can supply a std:string object for the plugin to return the URI of
the document just processed.
4. User can supply a std::string to receive the unit name information from
the document just read in. (e.g. meters, inches, etc.)
5. User can supply a float to receive the metric conversion factor from the
document just read in.
6. User can supply an enum to receive the up axis orientation information
from the document just read in.
7. Material transparency can be both read and written.
8. User can supply an experimental GoogleMode option on output. The plugin
will try to emulate the way Sketchup specifies transparency (i.e. the
inverse of what it should be!). I am still struggling to get GE to
understand transparency, anyone know what it expects?
9. Rudimentary support for Collada effect parameters (newparam, setparam,
param) on input. Basic nVidia FX Composer dae documents can now be read.

"
2007-12-11 14:06:45 +00:00
Robert Osfield
62bba8e52b From Sherman Wilcox, "In ESRIShapeParser.cpp, wasn't closing the file handle. Added:
if(fd)
   {
     close(fd);
     fd = 0;
   }


to the constructor."
2007-12-10 20:56:26 +00:00
Robert Osfield
9d260213f7 From Ulrich Hertlein, "attached are some fixes and tweaks I made to the .obj loader:
- Material class contained both 'shininess' and 'Ns' member variables
- 'Ns' and 'Ni' are initialized to 0 ('Ni' is unused at the moment)
- only 'Ns' was read from .mtl file but 'shininess' was used for osg::Material
- 'illum' was read from .mtl file but never used; it is now used as follows
-- illum==0 -> no osg::Material created/attached therefore no lighting
-- illum==1 -> osg::Material specular is set to black
-- illum==2 (default) -> specular read from .mtl file is used
- 'map_Kd' and 'map_Ks' may contain additional arguments (e.g. '-s 1 1 1'),
these are now skipped over and the texture filename is properly extracted
"
2007-12-10 20:27:06 +00:00
Robert Osfield
d0cc647986 From David Callu, IO support for Text3D 2007-12-10 19:51:33 +00:00
Robert Osfield
f4afa427a7 From Roland Smeenk, "Attached you will find a large set of small typo fixes (mainly in the comments)." 2007-12-10 17:30:18 +00:00
Robert Osfield
f69a48e552 From David Callu, added support of 3D text to osgText and associated plugins. 2007-12-10 15:15:56 +00:00
Robert Osfield
9b56dbe83a From David Callu, added support for automatically reading associate dbase files 2007-12-10 12:45:16 +00:00
Robert Osfield
13ff9f28d5 Char char[] to char* with new allocation. 2007-12-10 12:00:09 +00:00
Robert Osfield
695df58bc9 Refactored record allocation to fix build errors under Windows. 2007-12-10 11:34:00 +00:00
Robert Osfield
8648cd12ea From Gustavo Wagner, fixed bugs in reading M records from shapefile 2007-12-09 16:38:33 +00:00
Robert Osfield
e2ad20a887 From Gino van den Bergen, "I've added the following features to the OSG VRML plugin:
* Support for Box, Sphere, Cone, and Cylinder. These nodes are converted
to osg::Geometry conform the VRML97 spec.
* Backface culling is enabled/disabled according to the "solid" flag for
geometries that are converted from IndexFaceSets.
* PROTO instances can now be used for "appearance" and "geometry" fields
in a Shape node.

The file ReaderWriterVRML2.cpp is adapted for the latest stable public
release:

http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-2.2.0

The changes where needed for being able to read VRML file which are
output by VMD (http://www.ks.uiuc.edu/Research/vmd/). A sample VRML file
is enclosed in this submission.

The plugin has been tested against a number of VRML samples that include
texturing. The texturing is found to be VRML97 compliant for all added
geometry nodes.
"
2007-12-09 16:29:18 +00:00
Robert Osfield
78c1fd4844 From David Callu, added DBase attribute support for shapefiles 2007-12-09 15:43:49 +00:00
Robert Osfield
fb65fc5e0a From Serge Lages, "Hi Robert,
You were right about the CMAKE_MODULE_LINKER_FLAGS option for CMake, so here is a modification allowing to not generate the manifest files for the plugins making them a lot more easy to redistribute. I have also made the same modification to the wrappers as they are also put into the osgPlugin folder when generated.
"
2007-12-08 17:04:52 +00:00
Robert Osfield
f2d59416aa From Jeremy Moles, Anders Backman and Robert Osfield,
both Jeremy and Anders added static build support as an option, but one was
for Unix and one for Windowsm, but the two mods were also inconsitent in naming
and implementation.  I have had a bash at merging them both, but don't know yet
if these changes will work yet on either configuration... user testing will tell...
2007-12-08 16:52:27 +00:00
Robert Osfield
e7fbacc3b6 From Daniel Larimer, "There was a error with QTUtils.h when compiling on HFS case-sensitive
file system.  The #include<Quicktime/Quicktime.h> line needs to be
replaced with #include<QuickTime/QuickTime.h"
2007-12-08 15:32:16 +00:00
Robert Osfield
5fe9da12c9 From Neil Hughes, "Please find attached a replacement for the 3DS pluggin's ReaderWriter3DS.cpp file. This contains a minor fix (one line added) to ensure that the OSG Material structure is given the name of the material definition within a loaded 3DS file.
"
2007-12-08 15:27:29 +00:00
Robert Osfield
ede9b4ff6b From David Callu, added IO_FluidProgram implementation. 2007-12-08 12:12:05 +00:00
Robert Osfield
71f71f18b6 Added an #include<assert.h> to avoid compile problems on some systems. 2007-12-07 13:42:14 +00:00
Robert Osfield
ab7043ea45 From Tony Horrobin, "Attached is a small fix for the openflight loader with regard to road
segment and construction records.

It just uses the id field to set the name of the osg node as with other
types."
2007-12-07 13:28:02 +00:00
Robert Osfield
5906e0861c From Farshid Lashkari, "The bmp writer crashes in certain cases. It happens when the computed
size of the image data is greater than the actual image size. This
causes the memcpy call to go out of the array bounds. I modified the
code so that it copies the data during the iteration, instead of
memcpy'ing. This fixes the problems i was having.

If you are curious, the writer was crashing when trying to write an
RGB image that was 2050 x 1280. You might be able to reproduce it by
allocating an empty image of that size and writing it to a file."
2007-12-06 17:44:56 +00:00
Robert Osfield
49db32ca3f From Mathias Froehlich, "Add missing includes. Fails on hp-ux." 2007-12-06 17:03:47 +00:00
Robert Osfield
8954309c07 Fixed crash in cfg by rearranging the code blocks so the codes that use the graphics context are only called when a graphics context is successfully aquired. 2007-12-06 10:04:25 +00:00
Robert Osfield
abe647fdaa From Ulrich Hertlein, added osgViewer dependency for OSX build 2007-12-06 09:22:41 +00:00
Robert Osfield
9fbec36508 Changed WIN32 guard to _WIN32_IMPLEMENTATION to attempt to avoid Win32 build error 2007-12-05 18:32:15 +00:00
Robert Osfield
0bfdc78f52 Removed debugging line. 2007-12-05 11:29:58 +00:00
Robert Osfield
b164c5e7a6 From Cedric Pinson, first cut at Producer .cfg camera configuration file support. 2007-12-05 11:23:27 +00:00
Robert Osfield
1b1c5bbdd1 Added support for new double Vec*Array classes in various functors. 2007-12-04 14:46:46 +00:00
Robert Osfield
8a4caa0a59 Added optional double support via new Vec3dArray support in osg::Geometry.
To enable double usage set the option string "double" i.e.

  osgviewer myshapefile.shf -O "double"
2007-12-04 14:46:08 +00:00
Robert Osfield
2e821b77a2 Added support for double Vec*Array objects 2007-12-04 14:44:49 +00:00
Robert Osfield
592d0dfc5b Added support for filename only setup of CompositeLayer on reading/writing. 2007-11-13 17:03:36 +00:00
Robert Osfield
94c57ecff5 From Colin Dunlop, added missing header (note from Robert Osfield, this submission was extracted from an inline submission so may be prone to errors). 2007-11-08 10:30:23 +00:00
Robert Osfield
043ed14ba9 From Colin Dunlop, add live video stream support 2007-11-06 12:07:23 +00:00
Robert Osfield
2e2ddba49e Added support for setting volume in xine plugin, manual adjustment of volume
in osgmove example, and clamping to 0 to 1.0 range in quicktime plugin
2007-11-04 16:08:05 +00:00
Robert Osfield
6f47d924d6 Changed the include definition so that it works under Cygwin. 2007-11-04 15:21:48 +00:00
Robert Osfield
072cd1df8f Changed debug message from NOTICE to INFO. 2007-10-30 14:17:34 +00:00
Robert Osfield
3dced3445f Fixed the capitilization of the osgdb_osgfx plugin 2007-10-25 09:00:25 +00:00
Robert Osfield
ef4198dff5 Added flv to accepted list of formats 2007-10-16 19:03:43 +00:00
Robert Osfield
57f961ff2e Added flv to the list of accepted movie types 2007-10-16 19:01:25 +00:00
Robert Osfield
a5f37a23e2 From Andy Skinner, build fixes for Solaris. 2007-10-05 09:10:04 +00:00
Robert Osfield
a7c67fe287 From Trajce Nikolov, added support for extract a region for geospatial imagery 2007-10-04 08:54:41 +00:00
Robert Osfield
e928efc7a4 From Alberto Luaces, build fix for Cygwin. 2007-10-03 10:36:59 +00:00
Robert Osfield
55d5a4d28a Introduced a OSG_PLUGIN_PREFIX variable into CMake build system with it set to
"" for all platforms except Cygwin where its set to "cygwin_" and Mingw where
it is set to "mingw_".  Updated osgDB::Registry to look for these for the plugins.
Updated the osgintrospection example to search for these names as well.
2007-10-02 21:26:22 +00:00