"- Replaced some member attributes with local variables in Face record.
- Multitexture support in Vertex class.
- Renamed VertexList to VertexListRecord (VertexList is now a Vertex array)
- new Mesh (with reserved field at offset 12, thanks to Paul Martz)
- new LocalVertexPool
- new MeshPrimitive
- Use ProxyNode for externals.
- Local cache for externals"
that removeChild(Node*), removeChild(uint) and equivilant Geode methods are
now inline methods, not designed to be overriden, and seperated out the
multiple remove method to be called removeChildren(uint, uint) which is
now the only virtual method. There removeChildren is now the method to
override in subclasses.
This reorganisation requires some call code to be rename removeChild usage
to removeChildren.
2. Fixed a problem with the caching of textures when CACHE_IMAGES was enabled. This caused a conflict is the names used to cache the image and texture objects.
3. Fixed a problem where AC3D generates surfaces with duplicate vertex indices.
4. Removed what I believe are redundant calls to the tesselator.
5. Added a couple of asserts which should fire in debug mode if my assumptions about 4. are incorrect.
6. Removed obviously unused code. (Stuff that was commented or ifdeffed out.)"
Note, from Robert Osfield, changed the asserts to if () report error using notify so we can catch errors in both optimized and debug builds, but without crashing.
supports compressing the image data. The option to compress the data
is "compressImageData". Currently it uses the jpeg plugin to write the
image. Maybe we could add an option that allows the user to specify
which image format to use. The jpeg writer supports specifying the
quality of the jpeg, so you could use the following command line to
convert the skydome.osg model to IVE using 50% jpeg quality:
osgconv -O "compressImageData JPEG_QUALITY 50" skydome.osg skydome.ive"
of saving image files inside the IVE file. Currently, only the raw
image data is saved into the file. If your model uses jpg images as
textures then this will cause your file size to increase.
I've added an option that will embed the original image file into the
IVE file. The IVE file will then attempt to read the image from
memory. Since most image loaders support reading from memory, this
shouldn't be a problem. To use this new feature the user must specify
the option "includeImageFileInIVEFile" when converting to IVE.
I tested this out on the "skydome.osg" model that comes with OSG.
Using the old method, the IVE file size would be 785 KB, with the new
method it is only 42 KB.
Also, I've added the support for TextureRectangle's to the IVE reader/writer."
here is a patch that enables a new option named "BIND_TEXTURE_MAP" in the LWO plugin. Its purpose is to allow explicit binding between texture UV maps defined in the LWO file and OpenGL texture units, overriding the default mechanism that allocates texture units automatically. This is useful when you have an UV map built in Lightwave (for example an atlas map) but no textures actually using it, so you can keep the UV map (that would be discarded otherwise) and add a texture later int your program.
Syntax is:
BIND_TEXTURE_MAP <map_name> <texunit>
confirmed then close and reopen as an ascii as required. This is done to get
round problems under Windows.
Also made the running of the SmoothingVisitor optional, now use -O smooth to
make the loader run the osgUtil::SmoothingVisitor over the model.
Normally the automatic setup is useful, but in the case of the .osg support this automatic
update was forcing premature loading of imagery that wasn't necessarily, and can lead to
reports of looking for files that arn't present.
light points. This was due to the mismatch is size and fiels in the LightPointRecord
before 15.6 and after it, the OSG's flt plugin was assuming just 15.6 record
structure. As a temporary solution I have disabled the processing of light point
records on .flt file version before 15.6, this allows these files to be loaded
safely, but without light points.
readFontStream() to load fonts from a std::istream, rather than from the
local filesystem by name. Such a call may be used, for example, if the
user has a font fetched over a network, or a font available in memory
without a correspondng filename.
The changes implement the new function by following the corresponding code
for readFontFile(). readFontStream() reads a stream into memory, and
holds that memory for FreeType.
As a basic test, I mangled the osgtext example to use
readFontStream(std::ifstream("font")) in lieu of a readFontFile call, and
the modified example ran completely."
discovered that TXPNodes were being culled out prematurely because the
loaded sub-tiles resulted in a computed bounds that was smaller than the
extents indicated in the archive. I think this fix should be fine. I can't
think of any reason why we would want to use anything other than the archive
extents."
"This is a small fix for flt2osg.[cpp|h] that handles
old style road segments ( from Multigen II w/road
tools on IRIX ) in the same way as the newer road
constructions. ie create a group and do a nested
traversal.
This makes roads appear in older format files where
there was previously a gap. This actually works
properly with the paths which are marked as hidden in
the openflight database."
get positioned correctly when the TXP database was built using the
'tile-offset' mode. I've included a tarball with what I believe are the
needed changes - they work for the sample databases I have available,
but not all conditions have been tested. I've set things up such that
these changes shouldn't affect 'normal' txp databases."