Commit Graph

56 Commits

Author SHA1 Message Date
Robert Osfield
6b75603ace From Charles Cole, "Attached are mods to the OpenFlight plug-in to help further implement
the specification.  With these mods, blink sequences are now created for
flashing light point nodes, either palletized (v.15.8 and later) or
non-palletized (15.7 and earlier).  Thanks to Brede for his
implementation of the palletized light point nodes.

There is still work to do on adding the capability to properly handle
light point system nodes, but this does add some capability that did not
previously exist.  So, I wanted to at least submit this and I will
hopefully provide the additional capability in the near future.

I've tested the code modifications with Visual Studio 2005.  I don't
have the means to test any other operating system, but I would suspect
that there shouldn't be any issue (famous last words).  I used the test
files that I uploaded to the users forum to test the changes.

In addition to the added capability, I changed the light point node
radius to the "actualPixelSize" value in the file.  Previously, the
radius was set to half the actual pixel size (see
LightPointRecords.cpp).  Not sure why this was the case.  But, it was
brought to my attention by a co-worker who created the OpenFlight files
and was testing them with different viewers.  If there's some history
for setting the radius to half the size, then this change can be
omitted."
2007-05-26 15:42:30 +00:00
Robert Osfield
6583b5b370 From Charles Cole, "he attached code
implements the LightPointSystem class to allow for the OpenFlight
plug-in to read and handle light point system nodes.  The behavior is
very similar to the old plug-in in that a MultiSwitch node is created to
handle the "enabled" flag bit set in the node record.  The code also
reverts the changes for the actualPixelSize as mentioned above.  And
lastly, the code requires the previously submitted changes for the
plug-in.

As for the other changes, I've tested the code with Visual Studio 2005
and the files that I posted in the users forum.

With all of the submitted changes, the OpenFlight plug-in should now be
capable of loading files with light point system nodes and the use of
palletized light points and non-palletized light points.
"
2007-05-25 19:35:19 +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
ad3cac84e9 Moved Block, ReentrantMutex and ReadWriteMutex into OpenThreads. 2007-02-23 16:31:34 +00:00
Robert Osfield
b14fc636e7 Added STATIC_OBJECT_DETECTION optimizer pass to OpenFlight plugin 2007-02-22 09:16:54 +00:00
Robert Osfield
8dc84d0a8f From Brede Johansen, Thanks for the model it helped to understand the problem. In Creator the "Last Frame Duration" is performed on the last frame of the last loop iteration, I tried to use it for the last frame of every loop iteration. As you already have explained we need a custom Sequence node. In the osgSim nodekit we already have a couple of specialized nodes for the OpenFlight format. We need an osgSim::GroupAnimation but I don't have the time right now to take this challenge. Until then I have modified my last attempt to work with the current osg::Sequence node by ignoring the "Last Frame Duration". 2007-02-21 21:20:33 +00:00
Robert Osfield
36b8ccacdd Fixed warnings 2007-02-15 09:31:00 +00:00
Robert Osfield
927dfc0a52 From Brede Johansen,
"Geometry.cpp
Make sure number of normals match number of vertices when lit or
vertex-normal pairs are separated when geometries are merged by the
optimizer.

Ancillary.cpp
Improved support for multitexture effect field and use texture
environment from .attr file.

PaletteRecords.cpp
Use search path when looking for shader files.

PrimaryRecords.cpp
Added preset uniforms "TextureUnit0", "TextureUnit1", "TextureUnit2"
and "TextureUnit3" for GLSL shaders."
2007-02-13 14:19:39 +00:00
Robert Osfield
4f441771f0 Fixed Suse9.3 build problem due to different handling Quat copy constuctor 2007-02-06 13:44:20 +00:00
Robert Osfield
3c5c4ae242 From Brede Johansen, "I have made some changes to support light sources in the new
OpenFlight loader."
2007-02-05 11:14:23 +00:00
Robert Osfield
3cb9af0dd6 From Brede Johansen, "The OpenFlight loader already have a caching mechanism for externals.
The cache works for nested externals but is cleared before the master
flight file is returned.  I implemented texture caching using the same
mechanism."
2007-01-15 10:11:23 +00:00
Robert Osfield
462803fd57 From Paul Martz, speeling fixes for Tessellator/Tessellation. 2007-01-08 21:29:49 +00:00
Robert Osfield
778fbc78e5 Fixed compile warning 2007-01-04 20:49:39 +00:00
Robert Osfield
d88b996df1 From Brede Johansen, "New option "cloneExternalReferences" for OpenFlight plugin" 2006-12-14 21:15:40 +00:00
Robert Osfield
3cab169b0d Checked in remaining element from Brede Johansen changes for clmapToEdge reader option. 2006-12-05 20:30:46 +00:00
Robert Osfield
289331569d From Brede Johansen, "added a new reader option to replace the texture
wrap mode CLAMP with CLAMP_TO_EDGE."
2006-12-05 14:28:07 +00:00
Robert Osfield
ac9a28051f Fixed the writeNode function so it was properly return FILE_NOT_HANDLED, fixing
a big with it writing out an empty .flt file.
2006-11-07 17:00:29 +00:00
Robert Osfield
d445995432 From Brede Johansen, "Here's a patch discussed in the thread "OpenFlight Loader Discarding
Material" on the osg-user mailing list."
2006-10-06 13:04:48 +00:00
Robert Osfield
392232ec06 From Brede Johansen, "This submission adds multitexture support for detecting translucent
images used to enable alpha blending.

Mesh was syncronized with featureset from Face record."
2006-10-03 09:55:28 +00:00
Robert Osfield
e686a9a4a5 From Brede Johansen, "I think some nitpicking is required. The loop duration was added in
OpenFlight version 15.8.  With the attached changes the flasher unit
on the spinnercar and the character_anim model from the Creator
gallery behaves."
2006-10-03 09:39:03 +00:00
Robert Osfield
02783e1dfd From Paul Martz, Bug fix for sequence node direction, It examines the number of children in the Group record destructor, so that the total duration of the sequence matches the specified loopDuration field. 2006-10-02 15:09:49 +00:00
Robert Osfield
61ce7dd5ac From Brede Johansen, "I have added "billboardCenter" as a reader option to use the center of
a billboard as the pivot point."
2006-10-01 19:09:00 +00:00
Robert Osfield
f03218215d From Colin McDonald, "I have corrected a byte swapping problem in the new OpenFlight
plugin.  It was only reading floats & doubles correctly on little
endian systems, which require byte swapping, and not on big
endian systems which don't require any swapping."
2006-10-01 19:00:39 +00:00
Robert Osfield
d91e1ff4bb From Loic Dachary, renamed _mips to of_mips to prevent compile problem under MIIPS 2006-09-21 09:50:10 +00:00
Robert Osfield
5a08afeb07 From Brede Johansen, "The previous submission didn't handle Objects with transforms. The
attached file corrects this.

I also removed the multitexture macro for the Object record.  Only
Face and Mesh records are valid targets."
2006-09-06 09:46:32 +00:00
Robert Osfield
aab03c3c6d From Brede Johansen, "I have added an optimization to the OpenFlight plugin. By default it
ignores the Object records if it's safe to do so.  The reader option
preserveObject prevents this optimization.

I have also removed the flat shading attribute set by the Object
record.  This flag is only intended for the "Calculate Shading"
operation in Creator."
2006-09-05 08:44:51 +00:00
Robert Osfield
8aceb4eec6 From Vaclav Bilek, "The purpose of this change is to suppress "re-reading" of osg::ProxyNodes
( in OF external references) after the OF file is loaded. The change do
conditional
execution of already existing code.

I use this for optimized preprocessing of large databases what can not
be loaded
in one pass because of memory limits."
2006-08-22 13:07:20 +00:00
Robert Osfield
7b53511251 From Paul Martz, "The gist of this change is, if the OpenFlight version of the
parent file is so old that it doesn't support Light Point palettes or Shader
palettes, then the parent file is not allowed to override those palettes in
the child."
2006-08-14 07:59:28 +00:00
Robert Osfield
25a91d97f0 From Chuck Sembroski, fixes for IRIX 2006-08-13 07:37:55 +00:00
Robert Osfield
5e33e13b34 Added nan dectecion and error reporting 2006-08-09 10:09:11 +00:00
Robert Osfield
bcd4aae4d5 Added TESSELATE_GEOMETRY to Optimizer pass to fix z fighting issues. 2006-08-08 16:08:06 +00:00
Robert Osfield
081b15c84d Fixed backColor implementation for LightPointAppearancePalette. 2006-08-08 11:59:53 +00:00
Robert Osfield
444f561c14 From Paul Martz, "This change causes the new OpenFlight plugin to behave as the
old plugin by returning the database origin latitude/longitude (extracted
from the header record) as userData of the top-level scene graph node."
2006-08-08 11:23:57 +00:00
Robert Osfield
553d017fd9 From Daniel Trstenjak, build fixes for Hpux 11.11, Irix 6.5, Solaris 8 and Aix 2006-08-02 10:43:26 +00:00
Robert Osfield
377c5710fe Added extra initializes 2006-07-19 14:46:40 +00:00
Robert Osfield
61b971ddea Fixed handling of back colour. 2006-07-19 11:25:26 +00:00
Robert Osfield
541433c7be Added share duplicates traversal to optimizer call 2006-07-13 14:58:37 +00:00
Robert Osfield
5e9b7bef88 From Brede Johansen,
"I found some artifacts on some models and traced it back to the
external palette override feature.  There are some changes in the
layout of the external record the loader have to take into
consideration.

The other fix is to remove the OF pools from the user data of the
external ProxyNode when it is no longer needed."
2006-07-12 09:40:03 +00:00
Robert Osfield
5622e0d202 From Brede Johansen, "Changed ">" to ">=" when testing for version 16.1 or later." 2006-07-05 20:56:37 +00:00
Robert Osfield
7c1926118a From Brede Johansen, renaned FLT_preserveFace to preserveFace 2006-07-05 08:55:23 +00:00
Robert Osfield
6c6c131452 From Paul Martz,
"Previously, the new OpenFlight plugin only allowed ext ref models to use
their own palettes. With this change, parent models can override child model
palettes with the parent palettes.

These changes are made against very current CVS (just updated about 1/2 hour
ago, eliminated conflicts, and retested before this posting).

To regurgitate what I did:

A new class, ParentPools (public osg::Referenced), is created when an ext
ref record is parsed, and it is populated with any parent model pools that
should override the child model pools (according to bits in the ext ref
record). The ParentPools object is then set as UserData on the ProxyNode
corresponding to the ext ref.

When the ReadExternalsVisitor hits the ProxyNode, it takes its UserData and
sets it as UserData in the Options parameter to the osgDB::ReadNode call,
which then read the ext ref model. In the course of parsing the Options
string, ReaderWriterFLT also looks at the Options UserData and sets the
parent pools in the Document class accordingly.

When palette records are encountered while loading a file, they are ignored
if the corresponding pool was set by the parent.

Thanks to Brede for consulting with me on the implementation.
"
2006-07-04 19:54:29 +00:00
Robert Osfield
c8aec2a07d Fixed warnings. 2006-07-04 11:24:36 +00:00
Robert Osfield
5e9076ec10 From Brede Johansen, set the default value of texture wrap mode to REPEAT to fix problem
with database without .attr files.
2006-07-03 20:28:26 +00:00
Robert Osfield
e4dea2b8c4 Fixed a couple of warnings. 2006-07-03 16:31:30 +00:00
Robert Osfield
07ac167fa8 Added merge geodes and geometries optimizer call 2006-07-03 10:47:16 +00:00
Robert Osfield
e12c6b7902 Form Brede Johansen, move from istrstream to istringstream.
From Robert Osfield, remapped Paul Martz's changes to Pools.h and PaletteRecords.cpp w.r.t texturePatternIndex being a in16, and converted a char* string to a std::string.
2006-06-29 09:34:41 +00:00
Robert Osfield
2e2684c05a From Paul Martz, added support to textured light points into osgSim and OpenFlight loader, as part of the OpenFlight v16.0 spec. 2006-06-08 14:32:02 +00:00