Added a bunch of files synched with 0.8.42

This commit is contained in:
Don BURNS 2001-09-19 21:08:56 +00:00
parent fed86f3f03
commit e8f256a59d
446 changed files with 58397 additions and 10552 deletions

67
AUTHORS
View File

@ -4,20 +4,27 @@
# Feel free to add your name and change list. # Feel free to add your name and change list.
Robert Osfield <robertosfield@yahoo.co.uk> Robert Osfield <robertosfield@yahoo.co.uk>
- osg and osgUtil. - osg, osgUtil and osgDB.
- pfb, gif, jpeg, tiff, tga, pic plugins. - pfb, 3ds, gif, jpeg, tiff, tga, pic, tgz & zip plugins.
- sgv, various revisions, now most of code in osgGLUT. - sgv, various revisions, now most of code in osgGLUT.
- 2nd iteration of impostor implemtentation.
- documentation?! - documentation?!
- visual studio workspace files/unix makefiles. - visual studio workspace files/unix makefiles.
- project adim & lead. - project adim & lead.
Don Burns <don_burns@sgi.com> Don Burns <don@keyholecorp.com>
- libosg (particularily OpenGL) - osg (particularily OpenGL)
- first version of sgv. - first version of sgv.
- fly database plugin. - fly database & osgtgz plugins.
- netscape plugin.
- unix makefiles. - unix makefiles.
Karsten Weiss <knweiss@gmx.de>
- 1st iteration of impostor implemtentation.
- autoconfiscation of the project (currently a seperate branch.)
- rpm spec file.
- documentation.
- bug fixes.
Graeme Harkness <graeme@phys.strath.ac.uk> Graeme Harkness <graeme@phys.strath.ac.uk>
- osg::Vec2,Vec3,Vec4 & osg::Quat classes. - osg::Vec2,Vec3,Vec4 & osg::Quat classes.
- reworking of old sgv into osgGLUT and a slim line Demos/sgv. - reworking of old sgv into osgGLUT and a slim line Demos/sgv.
@ -34,11 +41,47 @@ Brede Johansen <bredej@email.com>
- assistance on visual studio workspace files. - assistance on visual studio workspace files.
Ben Discoe <ben@vterrain.org> Ben Discoe <ben@vterrain.org>
- osgWX and wxsgv demos for integration of OSG with wxWindows.
- png plugin. - png plugin.
- a couple of bug fixes and code submissions.
Karsten Weiss <knweiss@gmx.de>
- autoconfiscation of the project. Byan Woods <byran@tapestrysolutions.com>
- rpm spec file. - Port to MacOS, various code changes to support this.
- documentation. - Metrowerks CodeWarrior makefiles.
- bug fixes.
Randall Hopper <aa8vb@yahoo.com>
- port to FreeBSD.
- warning fixes to IRIX compilation.
Ulrich Hertlein <u.hertlein@bit-side.com>
- support for IBM Mirror Repeat extension in osg::Texture
- support for texture subloading in osg::Texture
- .lwo and .obj plugins.
Axel Volley <volley@acm.org>
- support for OBJECT_LINEAR and EYE_LINEAR TexGen modes.
- support for the Anistropic texture filter extension.
Geoff Michel
- .dw (design workshop) loader plugin.
- OpenGL based stats reporting added to osgGLUT::Viewer.
Indirect Contributors
---------------------
J.E. Hoffmann <je-h@gmx.net>
- lib3ds library.
Systems in Motion <http://www.sim.no>
Peder Blekken <pederb@sim.no>
Morten Eriksen <mortene@sim.no>
Marius Bugge Monsen <mariusbu@sim.no>
- simage library which provide base for gif,jpg,pic,tga,tiff image loaders.
Janne Löf <jlof@mail.student.oulu.fi>
- lw is a LightWave mesh reader, used to develop osgPlugins/lwo.
Nate Robins - http://www.pobox.com/~ndr/
- glm file format reader, usedf to develop osgPlugin/obj.

1020
ChangeLog

File diff suppressed because it is too large Load Diff

34
FAQ
View File

@ -4,14 +4,14 @@ o API's feature set
The scene graph is arranged with geometry nodes (osg::Geode's) as leaf The scene graph is arranged with geometry nodes (osg::Geode's) as leaf
nodes and internal nodes such as osg::DCS's/Groups/LOD etc for position the nodes and internal nodes such as osg::DCS's/Groups/LOD etc for position the
geometry objects within the scene and organising scene behaviour. geometry objects within the scene and organizing scene behavior.
- culling techniques? - culling techniques?
Currently view frustum culling, small feature culling, and OpenGL's Currently view frustum culling, small feature culling, and OpenGL's
native backface culling. The OSG has been designed so it can be native backface culling. The OSG has been designed so it can be
easily extended, so if you have a favoured culling technique it easily extended, so if you have a favored culling technique it
won't be difficult to utilise it in the OSG. won't be difficult to utilize it in the OSG.
- terrain / indoor support - terrain / indoor support
@ -23,7 +23,9 @@ o API's feature set
However, if you wish to take advantage of specific optimization such However, if you wish to take advantage of specific optimization such
as adaptive meshing such as ROAM, or procedural culling such as when as adaptive meshing such as ROAM, or procedural culling such as when
entering a room or when racing round a track then the OSG's could be entering a room or when racing round a track then the OSG's could be
easily extend to achieve this. easily extend to achieve this. This is demonstrated in VTP Enviro
which is is based on the OSG, extended osg::GeoSet to provide CLOD
for terrain.
These features are not currently on the todo list for version 1.0 as These features are not currently on the todo list for version 1.0 as
we intend to keep the OSG focused on the core scene graph. However, we intend to keep the OSG focused on the core scene graph. However,
@ -59,7 +61,7 @@ o What is the design philosophy behind the OSG.
- Channel configuration - Channel configuration
The Scene Graph is just that. It manages a tree structure of different The Scene Graph is just that. It manages a tree structure of different
node types that allow management over the behaviour of graphical node types that allow management over the behavior of graphical
objects. The Traversers allow us to use the scene graph to render objects. The Traversers allow us to use the scene graph to render
scenes in the most efficient manner, as well as providing maximum scenes in the most efficient manner, as well as providing maximum
functionality for a real-time simulation. The stages are (taken from functionality for a real-time simulation. The stages are (taken from
@ -111,7 +113,7 @@ o What is the design philosophy behind the OSG.
The MP issues include, process (or thread) management and The MP issues include, process (or thread) management and
synchronization. Performer has several MP models. We also need to synchronization. Performer has several MP models. We also need to
consider that this software will probably run on seperate PCs consider that this software will probably run on separate PCs
altogether, so that the SGI concept of a single machine with multiple altogether, so that the SGI concept of a single machine with multiple
rendering pipes needs to be extended to include multiple PC's, which rendering pipes needs to be extended to include multiple PC's, which
need to be synchronized across Ethernet or something. need to be synchronized across Ethernet or something.
@ -120,7 +122,7 @@ o What is the design philosophy behind the OSG.
can be only one App for multiple Cull/Draw pairs. This model might can be only one App for multiple Cull/Draw pairs. This model might
extend quite nicely to a multiple PC environment, in which each PC runs extend quite nicely to a multiple PC environment, in which each PC runs
a Cull/Draw pair, and one central machine runs App, broadcasting the a Cull/Draw pair, and one central machine runs App, broadcasting the
viewing frustums for each viewing channel and synchronizing all. viewing frustum for each viewing channel and synchronizing all.
Lastly, channel configuration. Currently we now do this by opening a Lastly, channel configuration. Currently we now do this by opening a
window, choosing a visual, size, etc. It is often desirable to have window, choosing a visual, size, etc. It is often desirable to have
@ -155,7 +157,7 @@ o What is the design philosophy behind the OSG.
use. use.
o Would the OSG be a good candidate for terrain visualisation. o Would the OSG be a good candidate for terrain visualization.
Terrain is one of the great candidates for scene graphs. Two management Terrain is one of the great candidates for scene graphs. Two management
schemes will help you out : Level Of Detail management and Visibility schemes will help you out : Level Of Detail management and Visibility
@ -221,12 +223,11 @@ o What are the intended target platforms?
o What platforms are currently supported? o What platforms are currently supported?
The OSG is currently developed under Windows95, Linux and Irix. Platform The OSG is currently developed under Windows95, Linux,Irix and MacOS. Platform
specific makedefs are provided for Linux and Irix, and VisualC++ 6.0 specific makedefs are provided for Linux and Irix, and VisualC++ 6.0
Workspace files for MS Windows platforms. Workspace files for MS Windows platforms.
The OSG should also compile under Windows98/NT and 2000 but has not yet The OSG also compiles under Windows98/NT and 2000.
been tested.
o What further platforms will be supported in the near future? o What further platforms will be supported in the near future?
@ -242,7 +243,7 @@ o I'm wondering when the OSG will be ready for release.
Once the design converges to a stable API we will issue it as a beta, Once the design converges to a stable API we will issue it as a beta,
depending on the various factors one would hope to have the API nailed depending on the various factors one would hope to have the API nailed
down during summer 2000. down during early-mid 2001.
A full release with stable API and implementation will be available... A full release with stable API and implementation will be available...
Can't set any dates but we can be sure it'll be after then beta release :-) Can't set any dates but we can be sure it'll be after then beta release :-)
@ -278,7 +279,7 @@ o What differentiation between the OSG and other OS projects such as OpenRM/
each of these scene graphs. DDG doesn't show quite the same heritage, each of these scene graphs. DDG doesn't show quite the same heritage,
and possibly loses a little cleanness of design with it. OpenRM is and possibly loses a little cleanness of design with it. OpenRM is
an attempt at a Object Orientated scene graph but it C... This is an attempt at a Object Orientated scene graph but it C... This is
about a close as I got with it, as IMHO C++ really is the best currently about a close as I got with it, as IMHO C++ really is currently the best
language for a modern scene graph language for a modern scene graph
The OSG is also strongly influenced by Performer, this a due to the The OSG is also strongly influenced by Performer, this a due to the
@ -311,6 +312,9 @@ o Is there a class diagram for the OSG, or white paper on the projects goals?
The documentation in the distribution has been generated automatically The documentation in the distribution has been generated automatically
using the excellent Open Source tool doc++, which creates class diagrams. using the excellent Open Source tool doc++, which creates class diagrams.
UML diagrams have been generated and can be found in the documentation
directory, along with mind maps on design patterns used in the osg,
and the mission/goals of the osg.
We haven't written an official white paper on projects goals or a design We haven't written an official white paper on projects goals or a design
overview yet. Knowledge of Performer will help in understanding some of the basics overview yet. Knowledge of Performer will help in understanding some of the basics
@ -326,7 +330,7 @@ o Do you need C++ coding support?
o Any recommendations for useful programming books to read to help understand o Any recommendations for useful programming books to read to help understand
and contribute to the OSG? and contribute to the OSG?
Good practices are suprisingly hard to come by. C and C++ give you so Good practices are surprisingly hard to come by. C and C++ give you so
much rope to hang yourself, but there's few books which really give a much rope to hang yourself, but there's few books which really give a
developers the rule book of good coding practices. I found Effective developers the rule book of good coding practices. I found Effective
C++ a refreshing contribution to this end. The Design Patterns book can C++ a refreshing contribution to this end. The Design Patterns book can
@ -337,7 +341,7 @@ o Is there a mailing list?
Yes indeed, hosted by source forge, so to subscribe head to : Yes indeed, hosted by source forge, so to subscribe head to :
http://sourceforge.net/projects/openscenegraph and follow the http://sourceforge.net/projects/openscenegraph and follow the
'Lists' link and follow the intructions. 'Lists' link and follow the instructions.
o How do I submit my contributions? o How do I submit my contributions?

View File

@ -8,8 +8,8 @@ DEPFILES = $(OBJS:.o=.d)
C++ = CC C++ = CC
YFLAGS = -d YFLAGS = -d
#CFLAGS = -O2 -n32 -MDupdate $(MAKEDEPEND) #CFLAGS = -O2 -n32 -MDupdate $(MAKEDEPEND) -DOSG_USE_IO_DOT_H -OPT:Olimit=0 -DEBUG:woff=1682 -DEBUG:woff=3303
CFLAGS = -O2 -n32 -DOSG_USE_IO_DOT_H -OPT:Olimit=0 CFLAGS = -O2 -n32 -DOSG_USE_IO_DOT_H -OPT:Olimit=0 -DEBUG:woff=1682 -DEBUG:woff=3303
C++FLAGS = ${CFLAGS} C++FLAGS = ${CFLAGS}
CPPFLAGS = ${CFLAGS} CPPFLAGS = ${CFLAGS}
@ -19,8 +19,9 @@ LDFLAGS = -O2 -n32 -OPT:Olimit=0
.cpp.o: .cpp.o:
$(C++) $(C++FLAGS) -c $< $(C++) $(C++FLAGS) -c $<
DYNAMICLIBRARYLIB =
PFLIBS = -lpfdu -lpfutil -lpf -limage PFLIBS = -lpfdu -lpfutil -lpf -limage
GLUTLIB = -lglut
# #
# TARGET_DIRS are directories that would not exist on the system except # TARGET_DIRS are directories that would not exist on the system except
@ -29,6 +30,8 @@ PFLIBS = -lpfdu -lpfutil -lpf -limage
# #
TARGET_DIRS = \ TARGET_DIRS = \
/usr/include/osg \ /usr/include/osg \
/usr/include/osgDB \
/usr/include/osgGLUT \
/usr/include/osgUtil \ /usr/include/osgUtil \
/usr/share/OpenSceneGraph\ /usr/share/OpenSceneGraph\
/usr/share/OpenSceneGraph/data\ /usr/share/OpenSceneGraph/data\

View File

@ -8,8 +8,8 @@ DEPFILES = $(OBJS:.o=.d)
C++ = CC C++ = CC
YFLAGS = -d YFLAGS = -d
#CFLAGS = -O2 -n32 -MDupdate $(MAKEDEPEND) #CFLAGS = -O2 -n32 -MDupdate $(MAKEDEPEND) -LANG:std -OPT:Olimit=0 -DEBUG:woff=1682 -DEBUG:woff=3303
CFLAGS = -O2 -n32 -LANG:std -OPT:Olimit=0 CFLAGS = -O2 -n32 -LANG:std -OPT:Olimit=0 -DEBUG:woff=1682 -DEBUG:woff=3303
C++FLAGS = ${CFLAGS} C++FLAGS = ${CFLAGS}
CPPFLAGS = ${CFLAGS} CPPFLAGS = ${CFLAGS}
@ -19,7 +19,9 @@ LDFLAGS = -O2 -n32 -LANG:std -OPT:Olimit=0
.cpp.o: .cpp.o:
$(C++) $(C++FLAGS) -c $< $(C++) $(C++FLAGS) -c $<
DYNAMICLIBRARYLIB =
PFLIBS = -lpfdu -lpfutil -lpf -limage PFLIBS = -lpfdu -lpfutil -lpf -limage
GLUTLIB = -lglut
# #
# TARGET_DIRS are directories that would not exist on the system except # TARGET_DIRS are directories that would not exist on the system except
@ -28,6 +30,8 @@ PFLIBS = -lpfdu -lpfutil -lpf -limage
# #
TARGET_DIRS = \ TARGET_DIRS = \
/usr/include/osg \ /usr/include/osg \
/usr/include/osgDB \
/usr/include/osgGLUT \
/usr/include/osgUtil \ /usr/include/osgUtil \
/usr/share/OpenSceneGraph\ /usr/share/OpenSceneGraph\
/usr/share/OpenSceneGraph/data\ /usr/share/OpenSceneGraph/data\

View File

@ -11,12 +11,16 @@ YFLAGS = -d
LCINCS += -I/usr/X11R6/include LCINCS += -I/usr/X11R6/include
LC++INCS += ${LCINCS} LC++INCS += ${LCINCS}
CFLAGS = -O2 -W -Wall $(LCINCS) CFLAGS = -O2 -W -Wall $(LCINCS)
#CFLAGS = -g -W -Wall $(LCINCS)
C++FLAGS = ${CFLAGS} C++FLAGS = ${CFLAGS}
CPPFLAGS = ${CFLAGS} CPPFLAGS = ${CFLAGS}
LDFLAGS = -O2 -W -Wall LDFLAGS = -O2 -W -Wall -L/usr/X11R6/lib
#LDFLAGS = -g -W -Wall -L/usr/X11R6/lib
DYNAMICLIBRARYLIB = -ldl
PFLIBS = -lpfdu -lpfutil -lpf -ldl PFLIBS = -lpfdu -lpfutil -lpf -ldl
GLUTLIB = -lglut
# #
@ -26,6 +30,8 @@ PFLIBS = -lpfdu -lpfutil -lpf -ldl
# #
TARGET_DIRS = \ TARGET_DIRS = \
/usr/include/osg \ /usr/include/osg \
/usr/include/osgDB \
/usr/include/osgGLUT \
/usr/include/osgUtil \ /usr/include/osgUtil \
/usr/share/OpenSceneGraph\ /usr/share/OpenSceneGraph\
/usr/share/OpenSceneGraph/data\ /usr/share/OpenSceneGraph/data\

View File

@ -19,6 +19,10 @@ to_unix :
for f in *.cpp ; do to_unix $$f $$f; done for f in *.cpp ; do to_unix $$f $$f; done
for f in *.h ; do to_unix $$f $$f; done for f in *.h ; do to_unix $$f $$f; done
beautify :
for f in *.cpp ; do mv $$f $$f.bak; bcpp $$f.bak $$f; rm $$f.bak; done
# for f in *.h ; do mv $$f $$f.bak; bcpp $$f.bak $$f; rm $$f.bak; done
# force it # force it
depend : depend :
@ -32,9 +36,9 @@ $(MAKEDEPEND) : $(C++FILES) $(CFILES)
docs: docs:
[ "$(TARGET_BASENAME)" != "" ] && \ [ "$(TARGET_BASENAME)" != "" ] && \
mkdir -p ../../doc/$(TARGET_BASENAME) && \ mkdir -p ../../doc/doc++/$(TARGET_BASENAME) && \
doc++ -d ../../doc/$(TARGET_BASENAME) -H -A ../../include/$(TARGET_BASENAME)/* && \ doc++ -d ../../doc/doc++/$(TARGET_BASENAME) -H -A ../../include/$(TARGET_BASENAME)/* && \
echo $(TARGET_BASENAME) HTML documentation created in ../../doc/$(TARGET_BASENAME) echo $(TARGET_BASENAME) HTML documentation created in ../../doc/doc++/$(TARGET_BASENAME)
install : home install : home
@ make __install @ make __install

View File

@ -18,6 +18,11 @@ to_unix :
for f in *.cpp ; do to_unix $$f $$f; done for f in *.cpp ; do to_unix $$f $$f; done
for f in *.h ; do to_unix $$f $$f; done for f in *.h ; do to_unix $$f $$f; done
beautify :
for f in *.cpp ; do mv $$f $$f.bak; bcpp $$f.bak $$f; rm $$f.bak; done
for f in *.h ; do mv $$f $$f.bak; bcpp $$f.bak $$f; rm $$f.bak; done
# force it # force it
depend : depend :
$(C++) $(C++FLAGS) -M $(C++FILES) $(CFILES) > $(MAKEDEPEND) $(C++) $(C++FLAGS) -M $(C++FILES) $(CFILES) > $(MAKEDEPEND)
@ -28,11 +33,14 @@ $(MAKEDEPEND) : $(C++FILES) $(CFILES)
%.o : %.cpp %.o : %.cpp
$(C++) $(C++FLAGS) -c $*.cpp -o $*.o $(C++) $(C++FLAGS) -c $*.cpp -o $*.o
%.o : %.c
$(C++) $(C++FLAGS) -c $*.c -o $*.o
docs: docs:
[ "$(TARGET_BASENAME)" != "" ] && \ [ "$(TARGET_BASENAME)" != "" ] && \
mkdir -p ../../doc/$(TARGET_BASENAME) && \ mkdir -p ../../doc/doc++/$(TARGET_BASENAME) && \
doc++ -d ../../doc/$(TARGET_BASENAME) -H -A ../../include/$(TARGET_BASENAME)/* && \ doc++ -d ../../doc/doc++/$(TARGET_BASENAME) -H -A ../../include/$(TARGET_BASENAME)/* && \
echo $(TARGET_BASENAME) HTML documentation created in ../../doc/$(TARGET_BASENAME) echo $(TARGET_BASENAME) HTML documentation created in ../../doc/doc++/$(TARGET_BASENAME)
install : home install : home
@ make __install @ make __install

113
Makefile
View File

@ -4,19 +4,20 @@ MAKE_PREP = Make/makedefs Make/makerules
DIRS = src DIRS = src
VERSION = osg-0.8.42
all : $(MAKE_PREP) all : $(MAKE_PREP)
for f in $(DIRS) ; do cd $$f; make; cd ..; done for f in $(DIRS) ; do cd $$f; $(MAKE) || exit 1; cd ..; done
docs : docs :
cd src; make docs; cd src; $(MAKE) docs;
Make/makedefs : Make/makedefs :
@ cd Make;\ @ cd Make;\
case `uname` in\ case `uname` in\
IRIX|IRIX64) \ IRIX|IRIX64) \
ln -sf makedefs.irix.nonstd makedefs ;;\ ln -sf makedefs.irix.std makedefs ;;\
Linux) \ Linux) \
ln -sf makedefs.linux makedefs;;\ ln -sf makedefs.linux makedefs;;\
esac esac
@ -34,65 +35,107 @@ linux:
cd Make;\ cd Make;\
ln -sf makedefs.linux makedefs;\ ln -sf makedefs.linux makedefs;\
ln -sf makerules.linux makerules ln -sf makerules.linux makerules
make $(MAKE)
freebsd:
cd Make;\
ln -sf makedefs.freebsd makedefs;\
ln -sf makerules.freebsd makerules
$(MAKE)
irix: irix:
cd Make;\
ln -sf makedefs.irix.nonstd makedefs ;\
ln -sf makerules.irix makerules
make
irix.std:
cd Make;\ cd Make;\
ln -sf makedefs.irix.std makedefs ;\ ln -sf makedefs.irix.std makedefs ;\
ln -sf makerules.irix makerules ln -sf makerules.irix makerules
make $(MAKE)
irix.old:
cd Make;\
ln -sf makedefs.irix.nonstd makedefs ;\
ln -sf makerules.irix makerules
$(MAKE)
help : help :
@echo Usage : @echo Usage :
@echo \ make @echo \ $(MAKE)
@echo \ make linux @echo \ $(MAKE) linux
@echo \ make irix.std @echo \ $(MAKE) irix
@echo \ make irix.nonstd @echo \ $(MAKE) irix.old
@echo \ make depend @echo \ $(MAKE) depend
@echo \ make clean @echo \ $(MAKE) clean
@echo \ make clobber @echo \ $(MAKE) clobber
@echo \ make doc @echo \ $(MAKE) doc
@echo \ make snapshot @echo \ $(MAKE) release
@echo \ make install @echo \ $(MAKE) dev
@echo \ make instlinks @echo \ $(MAKE) install
@echo \ make instclean @echo \ $(MAKE) instlinks
@echo \ $(MAKE) instclean
clean : $(MAKE_PREP) clean : $(MAKE_PREP)
for f in $(DIRS) ; do cd $$f; make clean; cd ..; done for f in $(DIRS) ; do cd $$f; $(MAKE) clean; cd ..; done
find lib -type f -exec rm {} \; find lib -type f -exec rm {} \;
rm -f bin/* rm -f bin/*
clobber : $(MAKE_PREP) clean clobber : $(MAKE_PREP) clean
for f in $(DIRS) ; do cd $$f; make clobber; cd ..; done for f in $(DIRS) ; do cd $$f; $(MAKE) clobber; cd ..; done
rm -f $(MAKE_PREP) rm -f $(MAKE_PREP)
depend : $(MAKE_PREP) depend : $(MAKE_PREP)
for f in $(DIRS) ; do cd $$f; make depend; cd ..; done for f in $(DIRS) ; do cd $$f; $(MAKE) depend; cd ..; done
to_unix : to_unix :
for f in $(DIRS) ; do cd $$f; to_unix Makefile Makefile; cd ..; done for f in $(DIRS) ; do cd $$f; to_unix Makefile Makefile; cd ..; done
for f in $(DIRS) ; do cd $$f; make to_unix; cd ..; done for f in $(DIRS) ; do cd $$f; $(MAKE) to_unix; cd ..; done
cd include/OSG; for f in *.h ; do to_unix $$f $$f; done cd include/osg; for f in * ; do to_unix $$f $$f; done
cd include/osgUtil; for f in * ; do to_unix $$f $$f; done
cd include/osgGLUT; for f in * ; do to_unix $$f $$f; done
snapshot: beautify :
make doc; for f in $(DIRS) ; do cd $$f; $(MAKE) beautify; cd ..; done
make clobber; # cd include/osg; for f in * ; do mv $$f $$f.bak; bcpp $$f.bak $$f; rm $$f.bak; done
(cd ..; tar cvf - OpenSceneGraph-0.8 | gzip > osg_src-`date "+%Y%m%d"`.tar.gz) # cd include/osgUtil; for f in * ; do mv $$f $$f.bak; bcpp $$f.bak $$f; rm $$f.bak; done
# cd include/osgGLUT; for f in * ; do mv $$f $$f.bak; bcpp $$f.bak $$f; rm $$f.bak; done
release: $(MAKE_PREP)
$(MAKE) docs;
$(MAKE) clobber;
(cd ..; tar cvf - $(VERSION) | gzip > $(VERSION).tar.gz)
dev: $(MAKE_PREP)
$(MAKE) docs;
$(MAKE) clobber;
(cd ..; tar cvf - $(VERSION) | gzip > osg-`date "+%Y%m%d"`.tar.gz)
install : install :
for f in $(DIRS) ; do cd $$f; make install; cd ..; done for f in $(DIRS) ; do cd $$f; $(MAKE) install; cd ..; done
instlinks : instlinks :
for f in $(DIRS) ; do cd $$f; make instlinks; cd ..; done for f in $(DIRS) ; do cd $$f; $(MAKE) instlinks; cd ..; done
instclean : instclean :
for f in $(DIRS) ; do cd $$f; make instclean; cd ..; done for f in $(DIRS) ; do cd $$f; $(MAKE) instclean; cd ..; done
instcheck :
diff -q include/osg/ /usr/include/osg/
diff -q include/osgUtil/ /usr/include/osgUtil/
diff -q include/osgDB/ /usr/include/osgDB/
diff -q include/osgGLUT/ /usr/include/osgGLUT/
diff -q lib/libosg.so /usr/lib/libosg.so
diff -q lib/libosgUtil.so /usr/lib/libosgUtil.so
diff -q lib/libosgDB.so /usr/lib/libosgDB.so
diff -q lib/libosgGLUT.so /usr/lib/libosgGLUT.so
diff -q lib/osgPlugins/ /usr/lib/osgPlugins/
stats :
@echo stats :
cat include/osg/* src/osg/*.cpp | wc -l
cat include/osgUtil/* src/osgUtil/*.cpp | wc -l
cat include/osgDB/* src/osgDB/*.cpp | wc -l
cat include/osgGLUT/* src/osgGLUT/*.cpp | wc -l
cat include/osgWX/* src/osgWX/*.cpp | wc -l
cat include/*/* src/*/*.cpp | wc -l
cat src/Demos/*/*.cpp | wc -l
cat src/osgPlugins/*/*.cpp src/osgPlugins/*/*.h | wc -l
cat include/*/* src/*/*.cpp src/Demos/*/*.cpp src/osgPlugins/*/*.cpp src/osgPlugins/*/*.h | wc -l

Binary file not shown.

198
NEWS
View File

@ -1,22 +1,194 @@
OSG News (most significant items from ChangeLog) OSG News (most significant items from ChangeLog)
================================================ ================================================
9th August 2001 - osg-0.8.42.tar.gz
6th December 2000 - osg_src-0.8-34.tar.gz >>> New osgWX library for integration of OSG with wxWindows apps.
o New osgGLUT library assist writing of osg demos. This release sees a relatively minor number of enhancements over
o New cube demo. 0.8.41, the most significant being the new osgWX library and wxsgv
o Improved handling of image sizes which arn't a power of 2. demo written by Ben Discoe.
o Performer plugin can now work as of plugin to Performer or the
OSG (with a few caveates:)
Also from Brede Johansen in this release is the improvements in support for older
.flt (Open Flight) files such versions 12 & 13. Previously only version
15.6 files had been tested and developed to.
Last but by no means least, several bug fixes related to view frustum
culling have been made.
25th July 2001 - osg-0.8.41.tar.gz
>>> Support added for multi-pass and multi-stage rendering including Impostors.
The key feature developed is a highly flexible framework for multi-pass and
multi-stage rendering techniques. Unlike most scene graphs and games
engines the OSG has as dynamic framework which automatically configures
itself at runtime.
Building ontop of the new framework's multi-stage rendering capabilities,
support for Impostors (hirachical image caching) has been integrated into
the core scene graph library making extremely easy to take advantage of
this advanced rendering techinque - normally only seen in research papers.
Check out osgimpostor demo to see how easy it is to add osg::Impostor
nodes to your own models. Impostors are particularily effective are
reducing scene complexity whilest minimizing the visual impact, making it
ideal for scenes with large numbers of complex objects such as a city
scene, or a dense forest.
Taking advantage of the new framework's multi-pass rendering capabilities
is osgreflect demo which illustrates how to achieve planar relfections
using the stencil buffer and multi-pass rendering.
The cool thing about both the osgreflect and osgimpostor demos is that
there is no hardwiring to achieve the results, the scene graph stores
all the information neccessary to specify the number and type of rendering
passes, and the framework handles the rest behind the scenes. This also
makes it very easy to add these advanced rendering techinques to your
own applications as everything is cleanly encapsulated with
osgUtil::SceneView.
New loaders have been added to support .lwo (Light Wave), .obj
(Alias Wavefront) and .dw (Design Workshop) 3D file formats making it
even easier to compose your own worlds from models sourced from the
web or your own.
osg::Camera has been totally revamped and now supports asymetric
and othographics projections in addition to the symetrical perspective
projections.
And finally, support for texture subloading has been added to osg::Texture
and osg::Image. This allows textures to be updated dynamically, and
has already been used for mpeg video playback!
19th May 2001 - osg-0.8.40.tar.gz
>>> Project lead, Robert Osfield, makes full-time commitment to OSG.
This is the first full release since project lead, Robert Osfield, made
a move to pursue the OSG's development full-time. This commitment has
been made to bring the API rapidly towards maturity, and to provide
high quality support and consultancy services. Please contact
robert@openscenegraph.com if you have any queries.
This release marks a significant step forward in the maturity of the
API, with several major changes to the library in the areas of state
handling, database support, and portability.
To improve the extensibility of the OSG's handling of OpenGL state,
new classes have been introduced to replace the previous hardwired
state handling classes. The new classes also allow improved state
sorting and lazy state updating which boosts both cull traversal
and particularly draw traversal performance.
To improve the modularity, interopability and conceptual clarity the
support classes for database loading have been moved from the core
osg library into their own osgDB library. Support for the .osg
ASCII native database format and the .rgb reader has moved into its own
osgPlugins library to further the cleanliness of the core library.
Support has be added for multiple OpenGL context's and hence multi-pipe
systems such as sgi's Onyx2, allowing each context to have its own
display list and texture objects.
The culler and rendering support in osgUtil has also been improved, and
significantly speeded up for complex models.
Also just in, thanks to Randall Hopper for adding support for FreeBSD :-)
23rd March 2001 - osg-0.8.39.tar.gz
>>> Port of OSG to MacOS underway
The first steps towards support of MacOS have been taken by Bryan Woods,
adding Metrowerks project files and adding support for MacOS into the
core scene graph. Work still in progress so assistance welcome to
complete the task.
Other major developments have been the addition of two new base classes
osg::StateAttribute and osg::Drawable which are designed to allow greater
extensibility of OpenGL state management and primitives.
17th Feburary 2001 - osg-0.8.38.tar.gz
>>> New 3DS loader added
The OpenSceneGraph now supports the 3DS file format. This makes
available a huge range of potential models. Check out
http://www.3dcafe.com or http://www.3drocketfuel.com for some juice.
10th Feburary 2001 - osg_src-0.8-37.tar.gz
>>> Texture compression now supported
The OpenSceneGraph now provides support for ARB and S3TC texture
compression. This allows more textures to be loaded onto graphics
card memory, resulting in happier users and a better world in which
to live.
This release also sees the addition of a simple hang gliding flight sim
demo.
25th January 2001 - osg_src-0.8-35.tar.gz
>>> Anisotropic texturing now supported <i>and</i> loading of gzip compressed files
Anisotropic texturing provides for the next step in quality texturing
filtering above tri-linear and is especially effective when viewing
texture surfaces at shallow angles.
Also added in this release is on-the-fly support for loading gzipped
(.osgtgz, .tgz) and zipped (.zip) database files. This features allows
users to store whole databases (models and textures) in a single
tar ball and unpack them automatically on running the osg. This
is ideal for browsing the web.
22nd December 2000 - osg_src-0.8-33.tar.gz 22nd December 2000 - osg_src-0.8-33.tar.gz
o Integrated Don's work on adding glVertexArrays etc to osg::GeoSet. >>> Support added for OpenGL vertex arrays, and several key image loaders.
o Incorportated the following image loaders from the simage library.
src/osgPlugins/gif Support for OpenGL vertex arrays has been added to improve performance,
/jpeg particularly accelerating PC based graphics.
/pic
/tga Also added is support gif, jpeg, pic, tga, tiff image formats via
/tiff dynamic plugins.
8th Decemeber 2000 - osg_src-0.8-32.tar.gz
>>> New high resolution, low latency timer class - osg::Timer.
Real-time graphics relies upon accurate timers for updating physics
simulations and managing constant framerates. The OSG now provides
osg::Timer which, when supported, takes advantage of hardware timers.
18th November 2000 - osg_src-0.8-29.tar.gz
>>> Support for detail drawing with osg::PolygonOffset.
Rendering of polygons which overlay underlying geometry, such
as white lines on a runway, can now be achieved utilizing the
new osg::PolygonOffset which encapsulates glPolygonOffset to
avoid z fighting which otherwise hampers such detailing.
10th November 2000 - osg_src-0.8-28.tar.gz
>>> New Open Flight .flt loader!
Thanks to Brede Johansen submission of .flt loader, the OSG can now
read Open Flight .flt databases.
3rd November 2000 - osg_src-0.8-26.tar.gz
>>> Driving and Flight modes have been added to viewers.
osgUtil::DriveManipulator and osgUtil::FlightManipulator have been
added to allow the scene graph viewer (sgv) and other viewers to
support a drive and flying modes. These modes can be accessed
in sgv by pressing '2' and '3' respectively ('1' returns to
trackball manipulator). Left mouse button accelerates forward,
middle stops motion and right deccelerates.

185
README
View File

@ -1,178 +1,13 @@
The following is a very basic intro of how to get the OSG going under Linux, Welcome to the Open Scene Graph (OSG).
IRIX and Windows. Each intro mentions OpenSceneGraph-Data, it is recommended
that you also download it alongside this source distribution.
The scene graph depends upon Standard C++, STL and OpenGL so you need a C++ For compiling the OSG under all platforms (Linux, FreeBSD, IRIX, Windows
compiler up to the task and OpenGL or Mesa installed. The viewer depends upon and Mac) please read INSTALL.
GLUT which you'll need to download and install from the GLUT website. The
OSG has it own native ascii file format, and .rgb image reader inbuilt which
allows you read the example data with any dependancies othe then C++, STL and
OpenGL.
The OSG also has several plug-ins which support non-native 3d database and For general documentation, distribution contents, and plugin
image formats, several have no dependancies on external libraries (flt,fly, dependancies please read index.html in your prefered browser.
tga & pic), while others (pfb,jpeg,gif,tiff) require other libraries to be index.html also has links to INSTALL, making it easier for Windows
installed to compile them. If you don't already have them installed then users which might find the lack of file extensions on text files awkward.
don't worry, you'll still be able to use the OSG. The core osg library and
viewer is designed has been designed to load the plug-ins at run-time only
and if they are required to load a specific data set. If you don't need them
for your datasets then it won't matter that you havn't been able to compile
all the plug-ins. A full list of dependancies and where to download the
required libraries are near the bottom of this file.
If you're comming across the OSG for the first time and want to get started
quickly, go right ahead and follow the compilation instructions. You can always
later download the libraries which the plug-ins require if you eventually need
them.
If you havn't already checked it out, for a list of distribution contents,
contacts and links to documentation check out index.html.
Compiling under Linux :
-----------------------
Add the following to your .cshrc :
setenv OSGHOME <location of OSG root>
setenv OSGDATA <location of OSG data root>
setenv OSGFILEPATH ./:${OSGDATA}:${OSGDATA}/Images:
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${OSGHOME}/lib
setenv PATH ${PATH}:${OSGHOME}/bin
Or the following if you're using a sh compatible shell :
export OSGHOME=<location of OSG root>
export OSGDATA=<location of OSG data root>
export OSGFILEPATH=./:${OSGDATA}:${OSGDATA}/Images:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${OSGHOME}/lib
export PATH=${PATH}:${OSGHOME}/bin
To compile, from the OSG root directory, type :
make
Note, make should automatically detect linux and copy the
Make/makerules.linux and Make/makedefs.linux over the
default Make/makerules and Make/makedefs. If autodetection
does not work type 'make linux'.
Compiling under IRIX :
----------------------
Add the following to your .cshrc :
setenv OSGHOME <location of OSG root>
setenv OSGDATA <location of OSG data root>
setenv OSGFILEPATH ./:${OSGDATA}:${OSGDATA}/Images:
setenv LD_LIBRARYN32_PATH ${LD_LIBRARYN32_PATH}:${OSGHOME}/lib
setenv PATH ${PATH}:$OSGHOME/bin
Or the following if you're using a sh compatible shell :
export OSGHOME=<location of OSG root>
export OSGDATA=<location of OSG data root>
export OSGFILEPATH=./:${OSGDATA}:${OSGDATA}/Images:
export LD_LIBRARYN32_PATH=${LD_LIBRARYN32_PATH}:${OSGHOME}/lib
export PATH=${PATH}:$OSGHOME/bin
Since the OSG uses Standard C++ features such as STL it is important
to have an up to date version of the MIPSPro compilers. The library
has been tested under MIPSPro7.3 & MIPSPro7.2.1, and *may* compile
under previous versions but has yet to be tested. It is recommened
to use MIPSPro7.3.1.1m.
To compile, from the OSG root directory, type :
make
Note, make should automatically detect IRIX and copy the
Make/makerules.irix and Make/makedefs.irix over the
default Make/makerules and Make/makedefs. If autodetection
does not work type 'make linux'.
Compiling under Windows :
-------------------------
The Microsoft Visual C++ 6.0 workspace file is VisualStudio.dsw located
in the VisualStudio\ below the OSG this root directory. The OSG will
compile with the basic VisualC++6.0, but its recommended that you use
Service Pack 4 to fix MS compiler bugs which affect the OSG.
To execute the viewer the file path for the .dll's and .exe, both compiled
into the OSG's bin directory, need to be setup, such as by adding the PATH
to your autoexec.bat, its also useful to add the OSGFILEPATH to your
autoexec.bat to help the location of datafiles. For example :
SET OSGFILEPATH=D:\OpenSceneGraph-Data;D:\OpenSceneGraph-Data\Images
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\Oglsdk\lib;D:\OpenSceneGraph-0.8\bin;
Running the viewer
------------------
To run the viewer demo type (you made need to type rehash first under Unix) :
sgv dumptruck.osg
sgv cow.osg
sgv e-s-bike.osg
sgv flight_park.fly
sgv lz.rgb
Other run other demos type
cube
(Note: the file is picked up by checking the directories pointed to
by $OSGFILEPATH)
Plug-in dependancies
--------------------
src/osgPlugins/pfb
There is Peformer plugin in this distribution for converting from
Performer to OSG and from OSG to Performer. This plugin requires
Performer to be installed and therefore is not compiled by default.
If you have Performer (available under Linux and IRIX) then edit
src/osgPlugins/Make to compile under the plugin. Performer can be
downloaded from http://sgi.com
For further information about the Performer plugin please read the
src/osgPlugin/pfb/READEME.txt.
src/osgPlugins/png
The png plugin depends upon the libpng and zlib (for compression)
libraries, if you don't already have it installed, you'll need to
download, compile and install it.
Project home pages are:
http://www.libpng.org/pub/png/libpng.html
http://www.info-zip.org/pub/infozip/zlib/
src/osgPlugins/gif
The gif plugin depends upon the libungif library, if you don't already
have it installed, you'll need to download, compile and install it.
Project home page is:
http://prtr-13.ucsc.edu/~badger/software/libungif/
Ftp download at :
ftp://prtr-13.ucsc.edu/pub/libungif/
src/osgPlugins/jpeg
The jpeg plugin depends upon the libjpeg library, if you don't already
have it installed, you'll need to download, compile and install it.
Project home page is:
http://www.ijg.org
src/osgPlugins/tiff
The tiff plugin depends upon the libtiff library, if you don't already
have it installed, you'll need to download, compile and install it.
Project home page is:
http://www.libtiff.org
Robert Osfield.
robert@openscenegraph.com
May 2001.

30
TODO
View File

@ -31,15 +31,13 @@ o Core OSG Library
. osg::Plane class. . osg::Plane class.
- Nodes - Nodes
. create a base class to provide interface to objects which can render,
derive osg::GeoSet from this.
. add osg::Sequence for basic animation. . add osg::Sequence for basic animation.
. add osg::Morph for interpolating between geometries. . add osg::Morph for interpolating between geometries.
. add osg::Engine.
. add support for Multi-texturing into osg::GeoSet/osg::GeoState. . add support for Multi-texturing into osg::GeoSet/osg::GeoState.
. add support for multi-pass rendering. . add support for pixel/vertex shaders into osg::GeoSet/osg::GeoState.
. utilise stl vectors for osg::GeoSets? . utilise stl vectors for osg::GeoSets?
. improve osg::GeoState. . add handling of memory of osg::GeoSet's attributes.
. add osg::State for mainting image of the OpenGL state.
. add osg::Terrain node. . add osg::Terrain node.
. add osg::EarthSky class for rendering earth and sky backgrounds. . add osg::EarthSky class for rendering earth and sky backgrounds.
. add proxy node for lazy loading of nodes, when needed. . add proxy node for lazy loading of nodes, when needed.
@ -68,14 +66,10 @@ o Core OSG Library
o Reader/writer plug-ins o Reader/writer plug-ins
======================= =======================
- .iv/.wrl Inventor/VRML ascii. - .iv/.wrl Inventor/VRML ascii.
- .obj Alias wavefront's format.
- .dxf Autocads ascii format. - .dxf Autocads ascii format.
- .3ds 3D Studio format.
- .dem digital elevation map. - .dem digital elevation map.
- .d3d? MS's Direct 3D file formats if they have one.. - .d3d? MS's Direct 3D file formats if they have one..
- .bmp Windows Bitmap files. - .bmp Windows Bitmap files.
- .gz Automatic unzipping of GNU zipped files.
- .zip Automatic unzipping of windows zipped files.
- .Z Automatic unzipping of Unix Compress files. - .Z Automatic unzipping of Unix Compress files.
- .tar Automatic unpacking of directories and loading of contents. - .tar Automatic unpacking of directories and loading of contents.
@ -95,15 +89,20 @@ o Viewers & Application plug-ins
o Under development o Under development
================= =================
Sign up here if would like to take on a task :-) Sign up here if would like to take on a task :-)
- add osg::Billboard for trees etc. - add osg::Billboard for trees etc.
- .pfb loader for Performer binary files.
- full maths support in osg::Matrix class. - full maths support in osg::Matrix class.
- Netscape plug-in. - Netscape plug-in.
- add osg::Channel/sgCamera class. - add osg::Channel/sgCamera class.
- .flt Open Flight format. - .pfb loader for Performer binary files (functioning already.)
- .flt Open Flight format (functioning already.)
- .3ds 3D Studio format (functioning already.)
- autoconf/configure support to aid portabilty to other unix's. - autoconf/configure support to aid portabilty to other unix's.
- CVS support for when source is made fully public. - CVS support for when source is made fully public.
- Mac port.
- tri stripping visitor.
- .obj Alias wavefront's format.(functioning already.)
- .lwo Light Waves's format.(functioning already.)
o Work completed o Work completed
============== ==============
@ -139,3 +138,10 @@ o Work completed
- add timing/timestamp class. - add timing/timestamp class.
- document how to get the OSG compiled and running under all - document how to get the OSG compiled and running under all
platforms, Win32 being priority as it's the least obvious. platforms, Win32 being priority as it's the least obvious.
- .gz (as osgtgz and .tgz) Automatic unzipping of GNU zipped files.
- .zip Automatic unzipping of windows zipped files.
- add osg::State for mainting image of the OpenGL state.
- improve osg::GeoState -> improved version call osg::StateSet.
- create a base class to provide interface to objects which can render,
derive osg::GeoSet from this.
- add support for multi-pass rendering.

View File

@ -0,0 +1,147 @@
# Microsoft Developer Studio Project File - Name="hangglide" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=hangglide - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "hangglide.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "hangglide.mak" CFG="hangglide - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "hangglide - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "hangglide - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "hangglide - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 osgGLUT.lib osgUtil.lib osg.lib glut32.lib glu32.lib opengl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../../../bin/hangglide.exe" /libpath:"../../../lib"
!ELSEIF "$(CFG)" == "hangglide - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /Gm /vd0 /GR /GX /ZI /Od /I "../../../include" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /D "FL_DLL" /FR /YX /FD /c
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgGLUTd.lib osgUtild.lib osgd.lib glut32.lib glu32.lib opengl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"libcmt" /out:"../../../bin/hangglided.exe" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /incremental:no
!ENDIF
# Begin Target
# Name "hangglide - Win32 Release"
# Name "hangglide - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\..\Src\Demos\hangglide\Base.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\Demos\hangglide\GliderManipulator.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\Demos\hangglide\hangglide.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\Demos\hangglide\Hat.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\Demos\hangglide\ReaderWriterFLY.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\Demos\hangglide\Sky.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\Demos\hangglide\Tank.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\Demos\hangglide\Terrain.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\Demos\hangglide\Trees.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter ";h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\..\Src\Demos\hangglide\GliderManipulator.h
# End Source File
# Begin Source File
SOURCE=..\..\..\src\Demos\hangglide\Hat.h
# End Source File
# Begin Source File
SOURCE=..\..\..\src\Demos\hangglide\terrain_data.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter ""
# End Group
# End Target
# End Project

View File

@ -0,0 +1,95 @@
# Microsoft Developer Studio Project File - Name="osgconv" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=osgconv - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "osgconv.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "osgconv.mak" CFG="osgconv - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "osgconv - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "osgconv - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "osgconv - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 osgGLUT.lib osgUtil.lib osg.lib glut32.lib glu32.lib opengl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../../../bin/osgconv.exe" /libpath:"../../../lib"
!ELSEIF "$(CFG)" == "osgconv - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /Gm /vd0 /GR /GX /ZI /Od /I "../../../include" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /D "FL_DLL" /FR /YX /FD /c
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgGLUTd.lib osgUtild.lib osgd.lib glut32.lib glu32.lib opengl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"libcmt" /out:"../../../bin/osgconvd.exe" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /incremental:no
!ENDIF
# Begin Target
# Name "osgconv - Win32 Release"
# Name "osgconv - Win32 Debug"
# Begin Source File
SOURCE=..\..\..\src\Demos\osgconv\osgconv.cpp
# End Source File
# End Target
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Project

View File

@ -0,0 +1,95 @@
# Microsoft Developer Studio Project File - Name="osgcube" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=osgcube - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "osgcube.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "osgcube.mak" CFG="osgcube - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "osgcube - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "osgcube - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "osgcube - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 osgGLUT.lib osgUtil.lib osg.lib glut32.lib glu32.lib opengl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../../../bin/osgcube.exe" /libpath:"../../../lib"
!ELSEIF "$(CFG)" == "osgcube - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /Gm /vd0 /GR /GX /ZI /Od /I "../../../include" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /D "FL_DLL" /FR /YX /FD /c
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgGLUTd.lib osgUtild.lib osgd.lib glut32.lib glu32.lib opengl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"libcmt" /out:"../../../bin/osgcubed.exe" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /incremental:no
!ENDIF
# Begin Target
# Name "osgcube - Win32 Release"
# Name "osgcube - Win32 Debug"
# Begin Source File
SOURCE=..\..\..\src\Demos\osgcube\osgcube.cpp
# End Source File
# End Target
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Project

View File

@ -0,0 +1,95 @@
# Microsoft Developer Studio Project File - Name="osgimpostor" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=osgimpostor - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "osgimpostor.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "osgimpostor.mak" CFG="osgimpostor - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "osgimpostor - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "osgimpostor - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "osgimpostor - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 osgGLUT.lib osgUtil.lib osg.lib glut32.lib glu32.lib opengl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../../../bin/osgimpostor.exe" /libpath:"../../../lib"
!ELSEIF "$(CFG)" == "osgimpostor - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /Gm /vd0 /GR /GX /ZI /Od /I "../../../include" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /D "FL_DLL" /FR /YX /FD /c
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgGLUTd.lib osgUtild.lib osgd.lib glut32.lib glu32.lib opengl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"libcmt" /out:"../../../bin/osgimpostord.exe" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /incremental:no
!ENDIF
# Begin Target
# Name "osgimpostor - Win32 Release"
# Name "osgimpostor - Win32 Debug"
# Begin Source File
SOURCE=..\..\..\src\Demos\osgimpostor\osgimpostor.cpp
# End Source File
# End Target
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Project

View File

@ -0,0 +1,95 @@
# Microsoft Developer Studio Project File - Name="osgreflect" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=osgreflect - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "osgreflect.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "osgreflect.mak" CFG="osgreflect - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "osgreflect - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "osgreflect - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "osgreflect - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 osgGLUT.lib osgUtil.lib osg.lib glut32.lib glu32.lib opengl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../../../bin/osgreflect.exe" /libpath:"../../../lib"
!ELSEIF "$(CFG)" == "osgreflect - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /Gm /vd0 /GR /GX /ZI /Od /I "../../../include" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /D "FL_DLL" /FR /YX /FD /c
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgGLUTd.lib osgUtild.lib osgd.lib glut32.lib glu32.lib opengl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"libcmt" /out:"../../../bin/osgreflectd.exe" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /incremental:no
!ENDIF
# Begin Target
# Name "osgreflect - Win32 Release"
# Name "osgreflect - Win32 Debug"
# Begin Source File
SOURCE=..\..\..\src\Demos\osgreflect\osgreflect.cpp
# End Source File
# End Target
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Project

View File

@ -0,0 +1,95 @@
# Microsoft Developer Studio Project File - Name="osgtexture" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=osgtexture - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "osgtexture.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "osgtexture.mak" CFG="osgtexture - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "osgtexture - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "osgtexture - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "osgtexture - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 osgGLUT.lib osgUtil.lib osg.lib glut32.lib glu32.lib opengl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../../../bin/osgtexture.exe" /libpath:"../../../lib"
!ELSEIF "$(CFG)" == "osgtexture - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /Gm /vd0 /GR /GX /ZI /Od /I "../../../include" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /D "FL_DLL" /FR /YX /FD /c
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgGLUTd.lib osgUtild.lib osgd.lib glut32.lib glu32.lib opengl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"libcmt" /out:"../../../bin/osgtextured.exe" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /incremental:no
!ENDIF
# Begin Target
# Name "osgtexture - Win32 Release"
# Name "osgtexture - Win32 Debug"
# Begin Source File
SOURCE=..\..\..\src\Demos\osgtexture\osgtexture.cpp
# End Source File
# End Target
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Project

View File

@ -0,0 +1,95 @@
# Microsoft Developer Studio Project File - Name="osgviews" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=osgviews - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "osgviews.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "osgviews.mak" CFG="osgviews - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "osgviews - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "osgviews - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "osgviews - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 osgGLUT.lib osgUtil.lib osg.lib glut32.lib glu32.lib opengl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../../../bin/osgviews.exe" /libpath:"../../../lib"
!ELSEIF "$(CFG)" == "osgviews - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MDd /W3 /Gm /vd0 /GR /GX /ZI /Od /I "../../../include" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /D "FL_DLL" /FR /YX /FD /c
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgGLUTd.lib osgUtild.lib osgd.lib glut32.lib glu32.lib opengl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"libcmt" /out:"../../../bin/osgviewsd.exe" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /incremental:no
!ENDIF
# Begin Target
# Name "osgviews - Win32 Release"
# Name "osgviews - Win32 Debug"
# Begin Source File
SOURCE=..\..\..\src\Demos\osgviews\osgviews.cpp
# End Source File
# End Target
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Project

View File

@ -42,7 +42,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x809 /d "NDEBUG" # ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG" # ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe BSC32=bscmake.exe
@ -66,7 +66,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /Gm /vd0 /GR /GX /ZI /Od /I "../../../include" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /D "FL_DLL" /FR /YX /FD /c # ADD CPP /nologo /MDd /W3 /Gm /vd0 /GR /GX /ZI /Od /I "../../../include" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /D "FL_DLL" /FR /YX /FD /c
# ADD BASE RSC /l 0x809 /d "_DEBUG" # ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG" # ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe BSC32=bscmake.exe
@ -87,10 +87,9 @@ LINK32=link.exe
SOURCE=..\..\..\src\Demos\sgv\sgv.cpp SOURCE=..\..\..\src\Demos\sgv\sgv.cpp
# End Source File # End Source File
# End Group # End Target
# Begin Group "Resource Files" # Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group # End Group
# End Target
# End Project # End Project

View File

@ -0,0 +1,147 @@
# Microsoft Developer Studio Project File - Name="wxsgv" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=wxsgv - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "wxsgv.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "wxsgv.mak" CFG="wxsgv - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "wxsgv - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "wxsgv - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "wxsgv - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "\APIs\wx2\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D WXUSINGDLL=1 /YX"wx/wxprec.h" /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 wx22_7.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib netcdf.lib libpng.lib zlib.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /libpath:"\APIs\libpng-1.0.8" /libpath:"\APIs\netcdf-3.5.0.win32bin\lib"
!ELSEIF "$(CFG)" == "wxsgv - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /I "\APIs\wx2\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D WXUSINGDLL=1 /FR /YX"wx/wxprec.h" /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 wx22_7d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib netcdf.lib libpng.lib zlib.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libcd.lib" /nodefaultlib:"libcmt.lib" /out:"../../../bin/wxsgv.exe" /pdbtype:sept /libpath:"\APIs\libpng-1.0.8" /libpath:"\APIs\netcdf-3.5.0.win32bin\lib"
!ENDIF
# Begin Target
# Name "wxsgv - Win32 Release"
# Name "wxsgv - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\..\src\Demos\wxsgv\app.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\Demos\wxsgv\canvas.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\Demos\wxsgv\frame.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\Demos\wxsgv\SceneGraphDlg.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\Demos\wxsgv\wxsgv_wdr.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\..\src\Demos\wxsgv\app.h
# End Source File
# Begin Source File
SOURCE=..\..\..\src\Demos\wxsgv\canvas.h
# End Source File
# Begin Source File
SOURCE=..\..\..\src\Demos\wxsgv\frame.h
# End Source File
# Begin Source File
SOURCE=..\..\..\src\Demos\wxsgv\SceneGraphDlg.h
# End Source File
# Begin Source File
SOURCE=..\..\..\src\Demos\wxsgv\wxsgv_wdr.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File
SOURCE=..\..\..\src\Demos\wxsgv\wxsgv.rc
# End Source File
# End Group
# End Target
# End Project

View File

@ -3,7 +3,7 @@ Microsoft Developer Studio Workspace File, Format Version 6.00
############################################################################### ###############################################################################
Project: "sgv"=".\Demos\sgv\sgv.dsp" - Package Owner=<4> Project: "osg"=".\osg\osg.dsp" - Package Owner=<4>
Package=<5> Package=<5>
{{{ {{{
@ -11,156 +11,6 @@ Package=<5>
Package=<4> Package=<4>
{{{ {{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgUtil
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgGLUT
End Project Dependency
}}}
###############################################################################
Project: "cube"=".\Demos\cube\cube.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgUtil
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgGLUT
End Project Dependency
}}}
###############################################################################
Project: "flt"=".\osgPlugins\flt\flt.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
}}}
###############################################################################
Project: "fly"=".\osgPlugins\fly\fly.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
}}}
###############################################################################
Project: "gif"=".\osgPlugins\gif\gif.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
}}}
###############################################################################
Project: "jpeg"=".\osgPlugins\jpeg\jpeg.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
}}}
###############################################################################
Project: "pic"=".\osgPlugins\pic\pic.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
}}}
###############################################################################
Project: "png"=".\osgPlugins\png\png.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
}}}
###############################################################################
Project: "tga"=".\osgPlugins\tga\tga.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
}}}
###############################################################################
Project: "tiff"=".\osgPlugins\tiff\tiff.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
}}} }}}
############################################################################### ###############################################################################
@ -179,6 +29,9 @@ Package=<4>
Begin Project Dependency Begin Project Dependency
Project_Dep_Name osgUtil Project_Dep_Name osgUtil
End Project Dependency End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}} }}}
############################################################################### ###############################################################################
@ -198,7 +51,7 @@ Package=<4>
############################################################################### ###############################################################################
Project: "osg"=".\osg\osg.dsp" - Package Owner=<4> Project: "osgDB"=".\osgDB\osgDB.dsp" - Package Owner=<4>
Package=<5> Package=<5>
{{{ {{{
@ -206,6 +59,492 @@ Package=<5>
Package=<4> Package=<4>
{{{ {{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
}}}
###############################################################################
Project: "osgconv"=".\Demos\osgconv\osgconv.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgUtil
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}}
###############################################################################
Project: "sgv"=".\Demos\sgv\sgv.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgUtil
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgGLUT
End Project Dependency
}}}
###############################################################################
Project: "osgcube"=".\Demos\osgcube\osgcube.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgUtil
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgGLUT
End Project Dependency
}}}
###############################################################################
Project: "osgimpostor"=".\Demos\osgimpostor\osgimpostor.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgUtil
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgGLUT
End Project Dependency
}}}
###############################################################################
Project: "osgviews"=".\Demos\osgviews\osgviews.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgUtil
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgGLUT
End Project Dependency
}}}
###############################################################################
Project: "osgreflect"=".\Demos\osgreflect\osgreflect.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgUtil
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgGLUT
End Project Dependency
}}}
###############################################################################
Project: "osgtexture"=".\Demos\osgtexture\osgtexture.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgUtil
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgGLUT
End Project Dependency
}}}
###############################################################################
Project: "hangglide"=".\Demos\hangglide\hangglide.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgUtil
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgGLUT
End Project Dependency
}}}
###############################################################################
Project: "3ds"=".\osgPlugins\lib3ds\lib3ds.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}}
###############################################################################
Project: "flt"=".\osgPlugins\flt\flt.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}}
###############################################################################
Project: "lwo"=".\osgPlugins\lwo\lwo.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgUtil
End Project Dependency
}}}
###############################################################################
Project: "dw"=".\osgPlugins\dw\dw.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgUtil
End Project Dependency
}}}
###############################################################################
Project: "obj"=".\osgPlugins\obj\obj.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}}
###############################################################################
Project: "gif"=".\osgPlugins\gif\gif.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}}
###############################################################################
Project: "jpeg"=".\osgPlugins\jpeg\jpeg.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}}
###############################################################################
Project: "osgtgz"=".\osgPlugins\osgtgz\osgtgz.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}}
###############################################################################
Project: "pic"=".\osgPlugins\pic\pic.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}}
###############################################################################
Project: "png"=".\osgPlugins\png\png.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}}
###############################################################################
Project: "tga"=".\osgPlugins\tga\tga.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}}
###############################################################################
Project: "dot_osg"=".\osgPlugins\osg\dot_osg.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}}
###############################################################################
Project: "rgb"=".\osgPlugins\rgb\rgb.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}}
###############################################################################
Project: "tgz"=".\osgPlugins\tgz\tgz.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}}
###############################################################################
Project: "tiff"=".\osgPlugins\tiff\tiff.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}}
###############################################################################
Project: "zip"=".\osgPlugins\zip\zip.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name osgDB
End Project Dependency
}}} }}}
############################################################################### ###############################################################################

View File

@ -43,14 +43,14 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBSCENEGRAPH_EXPORTS" /YX /FD /c # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBSCENEGRAPH_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SG_LIBRARY" /YX /FD /c # ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SG_LIBRARY" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe BSC32=bscmake.exe
# ADD BASE BSC32 /nologo # ADD BASE BSC32 /nologo
# ADD BSC32 /nologo /o"../../lib/osg.bsc" # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"../../bin/osg.pdb" /machine:I386 /out:"../../bin/osg.dll" # ADD LINK32 opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"../../bin/osg.pdb" /machine:I386 /out:"../../bin/osg.dll"
@ -70,14 +70,14 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBSCENEGRAPH_EXPORTS" /YX /FD /GZ /c # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBSCENEGRAPH_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "SG_LIBRARY" /YX /FD /GZ /c # ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "SG_LIBRARY" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe BSC32=bscmake.exe
# ADD BASE BSC32 /nologo # ADD BASE BSC32 /nologo
# ADD BSC32 /nologo /o"../../lib/osg.bsc" # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"../../bin/osgd.pdb" /debug /machine:I386 /out:"../../bin/osgd.dll" /pdbtype:sept # ADD LINK32 opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"../../bin/osgd.pdb" /debug /machine:I386 /out:"../../bin/osgd.dll" /pdbtype:sept
@ -94,139 +94,135 @@ LINK32=link.exe
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\AlphaFunc.cpp SOURCE=..\..\src\osg\AlphaFunc.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Billboard.cpp SOURCE=..\..\src\osg\Billboard.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\BoundingBox.cpp SOURCE=..\..\src\osg\BoundingBox.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\BoundingSphere.cpp SOURCE=..\..\src\osg\BoundingSphere.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Camera.cpp SOURCE=..\..\src\osg\Camera.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\CullFace.cpp SOURCE=..\..\src\osg\ClipPlane.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\DCS.cpp SOURCE=..\..\src\osg\ColorMask.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\DynamicLibrary.cpp SOURCE=..\..\src\osg\CullFace.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\ExtensionSupported.cpp SOURCE=..\..\src\osg\Depth.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Field.cpp SOURCE=..\..\src\osg\Drawable.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\FieldReader.cpp SOURCE=..\..\src\osg\Fog.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\FieldReaderIterator.cpp SOURCE=..\..\Src\Osg\FrontFace.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\FileNameUtils.cpp SOURCE=..\..\src\osg\Geode.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Fog.cpp SOURCE=..\..\src\osg\GeoSet.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Geode.cpp SOURCE=..\..\src\osg\GeoSet_ogl.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\GeoSet.cpp SOURCE=..\..\src\osg\StateSet.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\GeoSet_ogl.cpp SOURCE=..\..\src\osg\GLExtensions.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\GeoState.cpp SOURCE=..\..\src\osg\Group.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Group.cpp SOURCE=..\..\src\osg\Image.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Image.cpp SOURCE=..\..\src\osg\Impostor.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Input.cpp SOURCE=..\..\src\osg\ImpostorSprite.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Light.cpp SOURCE=..\..\src\osg\Light.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\LightSource.cpp SOURCE=..\..\src\osg\LightSource.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Lighting.cpp SOURCE=..\..\src\osg\LineSegment.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\LOD.cpp SOURCE=..\..\src\osg\LOD.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Material.cpp SOURCE=..\..\src\osg\Material.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Matrix.cpp SOURCE=..\..\src\osg\Matrix.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Node.cpp SOURCE=..\..\src\osg\Node.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\NodeVisitor.cpp SOURCE=..\..\src\osg\NodeVisitor.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Notify.cpp SOURCE=..\..\src\osg\Notify.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Object.cpp SOURCE=..\..\src\osg\Object.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\OSG.cpp SOURCE=..\..\src\osg\Point.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Output.cpp SOURCE=..\..\src\osg\PolygonMode.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\Osg\Point.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -234,63 +230,51 @@ SOURCE=..\..\src\osg\PolygonOffset.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Quat.cpp SOURCE=..\..\src\osg\Quat.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\ReaderWriterOSG.cpp SOURCE=..\..\src\osg\State.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\ReaderWriterRGB.cpp SOURCE=..\..\src\osg\Stencil.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Registry.cpp SOURCE=..\..\src\osg\Switch.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Scene.cpp SOURCE=..\..\src\osg\TexEnv.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Seg.cpp SOURCE=..\..\src\osg\TexGen.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Sequence.cpp SOURCE=..\..\src\osg\TexMat.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Switch.cpp SOURCE=..\..\src\osg\Texture.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\TexEnv.cpp SOURCE=..\..\src\osg\Timer.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\TexGen.cpp SOURCE=..\..\src\osg\Transform.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\TexMat.cpp SOURCE=..\..\src\osg\Transparency.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\Osg\Texture.cpp SOURCE=..\..\src\osg\Version.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\Osg\Timer.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\Osg\Version.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\Osg\Transparency.cpp
# End Source File # End Source File
# End Group # End Group
# Begin Group "Header Files" # Begin Group "Header Files"
@ -318,15 +302,27 @@ SOURCE=..\..\Include\Osg\Camera
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\ClipPlane
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\ClippingVolume
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\ColorMask
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\CullFace SOURCE=..\..\Include\Osg\CullFace
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\Dcs SOURCE=..\..\Include\Osg\Depth
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\DynamicLibrary SOURCE=..\..\Include\Osg\Drawable
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -334,30 +330,14 @@ SOURCE=..\..\Include\Osg\Export
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\ExtensionSupported
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\Field
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\FieldReader
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\FieldReaderIterator
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\FileNameUtils
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\Fog SOURCE=..\..\Include\Osg\Fog
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\FrontFace
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\Geode SOURCE=..\..\Include\Osg\Geode
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -366,7 +346,11 @@ SOURCE=..\..\Include\Osg\GeoSet
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\GeoState SOURCE=..\..\Include\Osg\StateSet
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\Stencil
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -374,6 +358,10 @@ SOURCE=..\..\Include\Osg\Gl
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\GLExtensions
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\Group SOURCE=..\..\Include\Osg\Group
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -382,6 +370,14 @@ SOURCE=..\..\Include\Osg\Image
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\Impostor
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\ImpostorSprite
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\Input SOURCE=..\..\Include\Osg\Input
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -394,7 +390,7 @@ SOURCE=..\..\Include\Osg\LightSource
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\Lighting SOURCE=..\..\Include\Osg\LineSegment
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -410,6 +406,14 @@ SOURCE=..\..\Include\Osg\Matrix
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\osg\mem_ptr
# End Source File
# Begin Source File
SOURCE=..\..\include\osg\MemoryAdapter
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\Node SOURCE=..\..\Include\Osg\Node
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -426,11 +430,7 @@ SOURCE=..\..\Include\Osg\Object
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\Osg SOURCE=..\..\Include\Osg\Plane
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\Output
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -438,6 +438,10 @@ SOURCE=..\..\Include\Osg\Point
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\PolygonMode
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\PolygonOffset SOURCE=..\..\Include\Osg\PolygonOffset
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -446,30 +450,22 @@ SOURCE=..\..\Include\Osg\Quat
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\osg\ref_ptr
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\Referenced SOURCE=..\..\Include\Osg\Referenced
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\Registry
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\Scene
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\Seg
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\Sequence
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\State SOURCE=..\..\Include\Osg\State
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\StateAttribute
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\Switch SOURCE=..\..\Include\Osg\Switch
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -494,6 +490,10 @@ SOURCE=..\..\Include\Osg\Timer
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\Transform
# End Source File
# Begin Source File
SOURCE=..\..\Include\Osg\Transparency SOURCE=..\..\Include\Osg\Transparency
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -510,11 +510,11 @@ SOURCE=..\..\Include\Osg\Vec3
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\Version SOURCE=..\..\Include\Osg\Vec4
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\Osg\Vec4 SOURCE=..\..\Include\Osg\Version
# End Source File # End Source File
# End Group # End Group
# Begin Group "Resource Files" # Begin Group "Resource Files"

217
VisualStudio/osgDB/osgDB.dsp Executable file
View File

@ -0,0 +1,217 @@
# Microsoft Developer Studio Project File - Name="osgDB" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=osgDB - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "osgDB.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "osgDB.mak" CFG="osgDB - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "osgDB - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "osgDB - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "osgDB - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "../../lib"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../lib"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBOSGDB_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../include" /D "NDEBUG" /D "_MBCS" /D "_USRDLL" /D "LIBOSGDB_EXPORTS" /D "OSGDB_LIBRARY" /D "WIN32" /D "_WINDOWS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osg.lib opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"../../bin/osgDB.pdb" /machine:I386 /out:"../../bin/osgDB.dll" /libpath:"../../lib"
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "osgDB - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../lib"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBOSGDB_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../include" /D "_DEBUG" /D "OSGDB_LIBRARY" /D "WIN32" /D "_WINDOWS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgd.lib opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"../../bin/osgDBd.pdb" /debug /machine:I386 /out:"../../bin/osgDBd.dll" /pdbtype:sept /libpath:"../../lib"
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "osgDB - Win32 Release"
# Name "osgDB - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\Src\osgDB\DotOsgWrapper.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\osgDB\DynamicLibrary.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\osgDB\Field.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\osgDB\FieldReader.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\osgDB\FieldReaderIterator.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\osgDB\FileNameUtils.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\osgDB\FileUtils.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\osgDB\Input.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\osgDB\Output.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\osgDB\ReadFile.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\osgDB\Registry.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\osgDB\Version.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\osgDB\WriteFile.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter ";h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\Include\osgDB\DotOsgWrapper
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgDB\DynamicLibrary
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgDB\Export
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgDB\Field
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgDB\FieldReader
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgDB\FieldReaderIterator
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgDB\FileNameUtils
# End Source File
# Begin Source File
SOURCE=..\..\include\osgDB\FileUtils
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgDB\Input
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgDB\Output
# End Source File
# Begin Source File
SOURCE=..\..\include\osgDB\ReaderWriter
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgDB\ReadFile
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgDB\Registry
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgDB\Version
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgDB\WriteFile
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@ -43,7 +43,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBOSGGLUT_EXPORTS" /YX /FD /c # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBOSGGLUT_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /vd1 /GR /GX /O2 /I "../../include" /D "NDEBUG" /D "_MBCS" /D "_USRDLL" /D "LIBOSGGLUT_EXPORTS" /D "OSGGLUT_LIBRARY" /D "WIN32" /D "_WINDOWS" /YX /FD /c # ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../include" /D "NDEBUG" /D "_MBCS" /D "_USRDLL" /D "LIBOSGGLUT_EXPORTS" /D "OSGGLUT_LIBRARY" /D "WIN32" /D "_WINDOWS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG" # ADD BASE RSC /l 0x809 /d "NDEBUG"
@ -53,7 +53,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osgUtil.lib osg.lib opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"../../bin/osgGLUT.pdb" /machine:I386 /out:"../../bin/osgGLUT.dll" /libpath:"../../lib" # ADD LINK32 osgUtil.lib osgDB.lib osg.lib opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"../../bin/osgGLUT.pdb" /machine:I386 /out:"../../bin/osgGLUT.dll" /libpath:"../../lib"
# SUBTRACT LINK32 /pdb:none # SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "osgGLUT - Win32 Debug" !ELSEIF "$(CFG)" == "osgGLUT - Win32 Debug"
@ -70,7 +70,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBOSGGLUT_EXPORTS" /YX /FD /GZ /c # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBOSGGLUT_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../include" /D "_DEBUG" /D "OSGGLUT_LIBRARY" /D "WIN32" /D "_WINDOWS" /YX /FD /GZ /c # ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../include" /D "_DEBUG" /D "OSGGLUT_LIBRARY" /D "WIN32" /D "_WINDOWS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG" # ADD BASE RSC /l 0x809 /d "_DEBUG"
@ -80,7 +80,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgUtild.lib osgd.lib opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"../../bin/osgGLUTd.pdb" /debug /machine:I386 /out:"../../bin/osgGLUTd.dll" /pdbtype:sept /libpath:"../../lib" # ADD LINK32 osgUtild.lib osgDBd.lib osgd.lib opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"../../bin/osgGLUTd.pdb" /debug /machine:I386 /out:"../../bin/osgGLUTd.dll" /pdbtype:sept /libpath:"../../lib"
# SUBTRACT LINK32 /pdb:none # SUBTRACT LINK32 /pdb:none
!ENDIF !ENDIF
@ -98,33 +98,32 @@ SOURCE=..\..\Src\osgGLUT\GLUTEventAdapter.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\osgGLUT\Viewer.cpp SOURCE=..\..\Src\osgGLUT\Version.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\osgGLUT\Version.cpp SOURCE=..\..\Src\osgGLUT\Viewer.cpp
# End Source File # End Source File
# End Group # End Group
# Begin Group "Header Files" # Begin Group "Header Files"
# PROP Default_Filter ";h;hpp;hxx;hm;inl" # PROP Default_Filter ";h;hpp;hxx;hm;inl"
# Begin Source File # Begin Source File
SOURCE=..\..\Include\osgGLUT\GLUTEventAdapter
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgGLUT\Viewer
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgGLUT\Export SOURCE=..\..\Include\osgGLUT\Export
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\osgGLUT\GLUTEventAdapter
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgGLUT\Version SOURCE=..\..\Include\osgGLUT\Version
# End Source File # End Source File
# Begin Source File
SOURCE=..\..\Include\osgGLUT\Viewer
# End Source File
# End Group # End Group
# Begin Group "Resource Files" # Begin Group "Resource Files"
@ -132,4 +131,3 @@ SOURCE=..\..\Include\osgGLUT\Version
# End Group # End Group
# End Target # End Target
# End Project # End Project

View File

@ -0,0 +1,114 @@
# Microsoft Developer Studio Project File - Name="dw" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=dw - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "dw.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "dw.mak" CFG="dw - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "dw - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "dw - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "dw - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "dw_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "dw_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osgDB.lib osgUtil.lib osg.lib glu32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_dw.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "dw - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "dw_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "DW_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgDBd.lib osgUtild.lib osgd.lib glu32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_dwd.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "dw - Win32 Release"
# Name "dw - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\dw\ReaderWriterDW.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter ""
# End Group
# End Target
# Begin Group "Header Files No. 1"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter ""
# End Group
# End Project

View File

@ -43,7 +43,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FLT_EXPORTS" /YX /FD /c # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FLT_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FLT_LIBRARY" /YX /FD /c # ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FLT_LIBRARY" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x414 /d "NDEBUG" # ADD BASE RSC /l 0x414 /d "NDEBUG"
@ -53,7 +53,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osg.lib opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:none /machine:I386 /out:"../../../bin/osgdb_flt.dll" /libpath:"../../../lib" # ADD LINK32 osg.lib osgDB.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:none /machine:I386 /out:"../../../bin/osgdb_flt.dll" /libpath:"../../../lib"
!ELSEIF "$(CFG)" == "flt - Win32 Debug" !ELSEIF "$(CFG)" == "flt - Win32 Debug"
@ -69,7 +69,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FLT_EXPORTS" /YX /FD /GZ /c # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FLT_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FLT_LIBRARY" /YX /FD /GZ /c # ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FLT_LIBRARY" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x414 /d "_DEBUG" # ADD BASE RSC /l 0x414 /d "_DEBUG"
@ -79,7 +79,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgd.lib glut32.lib glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"../../../bin/osgdb_fltd.pdb" /debug /machine:I386 /out:"../../../bin/osgdb_fltd.dll" /pdbtype:sept /libpath:"../../../lib" # ADD LINK32 osgd.lib osgDBd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"../../../bin/osgdb_fltd.pdb" /debug /machine:I386 /out:"../../../bin/osgdb_fltd.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /pdb:none /incremental:no # SUBTRACT LINK32 /pdb:none /incremental:no
!ENDIF !ENDIF
@ -185,6 +185,10 @@ SOURCE=..\..\..\src\osgPlugins\flt\ObjectRecord.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\src\osgPlugins\flt\OldMaterialPaletteRecord.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\flt\OldVertexRecords.cpp SOURCE=..\..\..\src\osgPlugins\flt\OldVertexRecords.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -257,10 +261,6 @@ SOURCE=..\..\..\src\osgPlugins\flt\DofRecord.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\src\osgPlugins\flt\export.h
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\flt\ExtensionRecord.h SOURCE=..\..\..\src\osgPlugins\flt\ExtensionRecord.h
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -337,6 +337,10 @@ SOURCE=..\..\..\src\osgPlugins\flt\ObjectRecord.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\src\osgPlugins\flt\OldMaterialPaletteRecord.h
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\flt\OldVertexRecords.h SOURCE=..\..\..\src\osgPlugins\flt\OldVertexRecords.h
# End Source File # End Source File
# Begin Source File # Begin Source File

View File

@ -43,7 +43,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "gif_EXPORTS" /YX /FD /c # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "gif_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "gif_EXPORTS" /YX /FD /c # ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "gif_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG" # ADD BASE RSC /l 0x809 /d "NDEBUG"
@ -53,7 +53,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osg.lib /NODEFAULTLIB:LIBC ungif.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"../../../bin/osgdb_gif.dll" /libpath:"../../../lib" # ADD LINK32 osgDB.lib osg.lib ungif.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_gif.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib # SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "gif - Win32 Debug" !ELSEIF "$(CFG)" == "gif - Win32 Debug"
@ -70,7 +70,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "gif_EXPORTS" /YX /FD /GZ /c # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "gif_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "GIF_EXPORTS" /YX /FD /GZ /c # ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "GIF_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG" # ADD BASE RSC /l 0x809 /d "_DEBUG"
@ -80,7 +80,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgd.lib /NODEFAULTLIB:LIBC ungif.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"../../../bin/osgdb_gifd.dll" /pdbtype:sept /libpath:"../../../lib" # ADD LINK32 osgd.lib ungif.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_gifd.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib # SUBTRACT LINK32 /nodefaultlib
!ENDIF !ENDIF

View File

@ -43,7 +43,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "jpeg_EXPORTS" /YX /FD /c # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "jpeg_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "jpeg_EXPORTS" /YX /FD /c # ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "jpeg_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG" # ADD BASE RSC /l 0x809 /d "NDEBUG"
@ -53,7 +53,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osg.lib /NODEFAULTLIB:LIBC jpeg.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"../../../bin/osgdb_jpeg.dll" /libpath:"../../../lib" # ADD LINK32 osgDB.lib osg.lib libjpeg.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_jpeg.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib # SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "jpeg - Win32 Debug" !ELSEIF "$(CFG)" == "jpeg - Win32 Debug"
@ -70,7 +70,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "jpeg_EXPORTS" /YX /FD /GZ /c # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "jpeg_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "JPEG_EXPORTS" /YX /FD /GZ /c # ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "JPEG_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG" # ADD BASE RSC /l 0x809 /d "_DEBUG"
@ -80,7 +80,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgd.lib /NODEFAULTLIB:LIBC jpeg.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"../../../bin/osgdb_jpegd.dll" /pdbtype:sept /libpath:"../../../lib" # ADD LINK32 osgDBd.lib osgd.lib libjpeg.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_jpegd.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib # SUBTRACT LINK32 /nodefaultlib
!ENDIF !ENDIF

View File

@ -0,0 +1,269 @@
# Microsoft Developer Studio Project File - Name="3ds" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=3ds - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "lib3ds.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "lib3ds.mak" CFG="3ds - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "3ds - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "3ds - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "3ds - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "3ds_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /I "../../../src/osgPlugins/lib3ds" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "3ds_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osgDB.lib osg.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_3ds.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "3ds - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "3ds_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /I "../../../src/osgPlugins/lib3ds" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "3DS_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_3dsd.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ENDIF
# Begin Target
# Name "3ds - Win32 Release"
# Name "3ds - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\atmosphere.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\background.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Camera.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Chunk.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Ease.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\File.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Lib3ds_float.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Light.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Material.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Matrix.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Mesh.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Node.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Quat.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\ReaderWriter3DS.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\readwrite.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Shadow.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Tcb.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Tracks.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Vector.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Viewport.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\atmosphere.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\background.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Camera.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Chunk.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\chunktable.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Ease.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\File.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Lib3ds_float.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Light.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Material.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Matrix.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Mesh.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Node.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Quat.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\readwrite.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Shadow.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Tcb.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Tracks.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Types.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Vector.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Lib3ds\Viewport.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@ -0,0 +1,121 @@
# Microsoft Developer Studio Project File - Name="lwo" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=lwo - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "lwo.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "lwo.mak" CFG="lwo - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "lwo - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "lwo - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "lwo - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "lwo_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "lwo_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osgDB.lib osgUtil.lib osg.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_lwo.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "lwo - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "lwo_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LWO_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgDBd.lib osgUtild.lib osgd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_lwod.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "lwo - Win32 Release"
# Name "lwo - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\lwo\lw.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\lwo\ReaderWriterLWO.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\lwo\lw.h
# End Source File
# End Group
# End Target
# Begin Group "Header Files No. 1"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter ""
# End Group
# End Project

View File

@ -0,0 +1,117 @@
# Microsoft Developer Studio Project File - Name="obj" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=obj - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "obj.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "obj.mak" CFG="obj - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "obj - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "obj - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "obj - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "obj_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "obj_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osgDB.lib osg.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_obj.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "obj - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "obj_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "OBJ_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_objd.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ENDIF
# Begin Target
# Name "obj - Win32 Release"
# Name "obj - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\obj\ReaderWriterOBJ.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\obj\glm.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\obj\glm.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@ -0,0 +1,241 @@
# Microsoft Developer Studio Project File - Name="dot_osg" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=dot_osg - Win32 Release
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "dot_osg.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "dot_osg.mak" CFG="dot_osg - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "dot_osg - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "dot_osg - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "dot_osg - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "osg_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "osg_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osgDB.lib osg.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_osg.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "dot_osg - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "osg_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "OSG_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_osgd.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ENDIF
# Begin Target
# Name "dot_osg - Win32 Release"
# Name "dot_osg - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\AlphaFunc.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Billboard.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\ColorMask.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\ClipPlane.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\CullFace.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Depth.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Drawable.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Fog.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\FrontFace.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Geode.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\GeoSet.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\StateSet.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Group.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Image.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Impostor.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Light.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\LightSource.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\LOD.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Material.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Matrix.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Node.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Object.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Point.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\PolygonMode.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\PolygonOffset.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\osg\ReaderWriterOSG.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Switch.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Stencil.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\TexEnv.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\TexGen.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\TexMat.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Texture.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Transform.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Src\osgPlugins\Osg\Transparency.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@ -0,0 +1,109 @@
# Microsoft Developer Studio Project File - Name="osgtgz" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=osgtgz - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "osgtgz.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "osgtgz.mak" CFG="osgtgz - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "osgtgz - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "osgtgz - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "osgtgz - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "osgtgz_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "osgtgz_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osgDB.lib osg.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_osgtgz.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "osgtgz - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "osgtgz_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "OSGTGZ_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_osgtgzd.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ENDIF
# Begin Target
# Name "osgtgz - Win32 Release"
# Name "osgtgz - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\osgtgz\ReaderWriterOSGTGZ.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@ -43,7 +43,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "pic_EXPORTS" /YX /FD /c # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "pic_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "pic_EXPORTS" /YX /FD /c # ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "pic_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG" # ADD BASE RSC /l 0x809 /d "NDEBUG"
@ -53,7 +53,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osg.lib /NODEFAULTLIB:LIBC kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"../../../bin/osgdb_pic.dll" /libpath:"../../../lib" # ADD LINK32 osgDB.lib osg.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_pic.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib # SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "pic - Win32 Debug" !ELSEIF "$(CFG)" == "pic - Win32 Debug"
@ -70,7 +70,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "pic_EXPORTS" /YX /FD /GZ /c # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "pic_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PIC_EXPORTS" /YX /FD /GZ /c # ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PIC_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG" # ADD BASE RSC /l 0x809 /d "_DEBUG"
@ -80,7 +80,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgd.lib /NODEFAULTLIB:LIBC kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"../../../bin/osgdb_picd.dll" /pdbtype:sept /libpath:"../../../lib" # ADD LINK32 osgd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_picd.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib # SUBTRACT LINK32 /nodefaultlib
!ENDIF !ENDIF

View File

@ -43,7 +43,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "png_EXPORTS" /YX /FD /c # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "png_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "png_EXPORTS" /YX /FD /c # ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "png_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG" # ADD BASE RSC /l 0x809 /d "NDEBUG"
@ -53,7 +53,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osg.lib /NODEFAULTLIB:LIBC libpng.lib zlibstat.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"../../../bin/osgdb_png.dll" /libpath:"../../../lib" # ADD LINK32 osgDB.lib osg.lib libpng.lib zlibstat.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_png.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib # SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "png - Win32 Debug" !ELSEIF "$(CFG)" == "png - Win32 Debug"
@ -70,7 +70,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "png_EXPORTS" /YX /FD /GZ /c # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "png_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PNG_EXPORTS" /YX /FD /GZ /c # ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PNG_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG" # ADD BASE RSC /l 0x809 /d "_DEBUG"
@ -80,7 +80,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgd.lib /NODEFAULTLIB:LIBC libpng.lib zlibstat.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"../../../bin/osgdb_pngd.dll" /pdbtype:sept /libpath:"../../../lib" # ADD LINK32 osgd.lib libpng.lib zlibstat.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_pngd.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib # SUBTRACT LINK32 /nodefaultlib
!ENDIF !ENDIF

View File

@ -0,0 +1,109 @@
# Microsoft Developer Studio Project File - Name="rgb" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=rgb - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "rgb.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "rgb.mak" CFG="rgb - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "rgb - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "rgb - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "rgb - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "rgb_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "rgb_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osgDB.lib osg.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_rgb.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "rgb - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "rgb_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "RGB_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_rgbd.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ENDIF
# Begin Target
# Name "rgb - Win32 Release"
# Name "rgb - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\rgb\ReaderWriterRGB.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@ -43,7 +43,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "tga_EXPORTS" /YX /FD /c # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "tga_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "tga_EXPORTS" /YX /FD /c # ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "tga_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG" # ADD BASE RSC /l 0x809 /d "NDEBUG"
@ -53,7 +53,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osg.lib /NODEFAULTLIB:LIBC kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"../../../bin/osgdb_tga.dll" /libpath:"../../../lib" # ADD LINK32 osgDB.lib osg.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_tga.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib # SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "tga - Win32 Debug" !ELSEIF "$(CFG)" == "tga - Win32 Debug"
@ -70,7 +70,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "tga_EXPORTS" /YX /FD /GZ /c # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "tga_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TGA_EXPORTS" /YX /FD /GZ /c # ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TGA_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG" # ADD BASE RSC /l 0x809 /d "_DEBUG"
@ -80,7 +80,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgd.lib /NODEFAULTLIB:LIBC kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"../../../bin/osgdb_tgad.dll" /pdbtype:sept /libpath:"../../../lib" # ADD LINK32 osgd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_tgad.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib # SUBTRACT LINK32 /nodefaultlib
!ENDIF !ENDIF

View File

@ -0,0 +1,109 @@
# Microsoft Developer Studio Project File - Name="tgz" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=tgz - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "tgz.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "tgz.mak" CFG="tgz - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "tgz - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "tgz - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "tgz - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "tgz_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "tgz_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osgDB.lib osg.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_tgz.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "tgz - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "tgz_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TGZ_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_tgzd.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ENDIF
# Begin Target
# Name "tgz - Win32 Release"
# Name "tgz - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\tgz\ReaderWriterTGZ.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@ -43,7 +43,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "tiff_EXPORTS" /YX /FD /c # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "tiff_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "tiff_EXPORTS" /YX /FD /c # ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "tiff_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG" # ADD BASE RSC /l 0x809 /d "NDEBUG"
@ -53,7 +53,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osg.lib /NODEFAULTLIB:LIBC tiff.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"../../../bin/osgdb_tiff.dll" /libpath:"../../../lib" # ADD LINK32 osgDB.lib osg.lib libtiff.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_tiff.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib # SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "tiff - Win32 Debug" !ELSEIF "$(CFG)" == "tiff - Win32 Debug"
@ -70,7 +70,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "tiff_EXPORTS" /YX /FD /GZ /c # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "tiff_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TIFF_EXPORTS" /YX /FD /GZ /c # ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "TIFF_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG" # ADD BASE RSC /l 0x809 /d "_DEBUG"
@ -80,8 +80,8 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgd.lib /NODEFAULTLIB:LIBC tiff.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"../../../bin/osgdb_tiffd.dll" /pdbtype:sept /libpath:"../../../lib" # ADD LINK32 osgDBd.lib osgd.lib libtiff.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_tiffd.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib # SUBTRACT LINK32 /pdb:none
!ENDIF !ENDIF

View File

@ -0,0 +1,109 @@
# Microsoft Developer Studio Project File - Name="zip" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=zip - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "zip.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "zip.mak" CFG="zip - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "zip - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "zip - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "zip - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "zip_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "zip_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 osgDB.lib osg.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_zip.dll" /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "zip - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "zip_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZIP_EXPORTS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 osgd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgdb_zipd.dll" /pdbtype:sept /libpath:"../../../lib"
# SUBTRACT LINK32 /nodefaultlib
!ENDIF
# Begin Target
# Name "zip - Win32 Release"
# Name "zip - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\zip\ReaderWriterZIP.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@ -43,7 +43,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBOSGUTIL_EXPORTS" /YX /FD /c # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBOSGUTIL_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /vd1 /GR /GX /O2 /I "../../include" /D "NDEBUG" /D "_MBCS" /D "_USRDLL" /D "LIBOSGUTIL_EXPORTS" /D "OSGUTIL_LIBRARY" /D "WIN32" /D "_WINDOWS" /YX /FD /c # ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../include" /D "NDEBUG" /D "_MBCS" /D "_USRDLL" /D "LIBOSGUTIL_EXPORTS" /D "OSGUTIL_LIBRARY" /D "WIN32" /D "_WINDOWS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG" # ADD BASE RSC /l 0x809 /d "NDEBUG"
@ -70,7 +70,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBOSGUTIL_EXPORTS" /YX /FD /GZ /c # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBOSGUTIL_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../include" /D "_DEBUG" /D "OSGUTIL_LIBRARY" /D "WIN32" /D "_WINDOWS" /YX /FD /GZ /c # ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../include" /D "_DEBUG" /D "OSGUTIL_LIBRARY" /D "WIN32" /D "_WINDOWS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG" # ADD BASE RSC /l 0x809 /d "_DEBUG"
@ -94,11 +94,31 @@ LINK32=link.exe
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File # Begin Source File
SOURCE=..\..\Src\osgUtil\CameraManipulator.cpp SOURCE=..\..\src\osgUtil\VisualsRequirementsVisitor.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\osgUtil\DisplayListVisitor.cpp SOURCE=..\..\src\osgUtil\CameraManipulator.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\CullVisitor.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\CullViewState.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\DisplayListVisitor.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\DepthSortedBin.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Src\osgUtil\StateSetManipulator.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -110,23 +130,67 @@ SOURCE=..\..\src\osgUtil\FlightManipulator.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\osgUtil\IntersectVisitor.cpp SOURCE=..\..\src\osgUtil\InsertImpostorsVisitor.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\osgUtil\RenderVisitor.cpp SOURCE=..\..\src\osgUtil\IntersectVisitor.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\osgUtil\SceneView.cpp SOURCE=..\..\src\osgUtil\NvTriStripObjects.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\osgUtil\Version.cpp SOURCE=..\..\src\osgUtil\RenderBin.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Src\osgUtil\TrackballManipulator.cpp SOURCE=..\..\src\osgUtil\RenderLeaf.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\RenderGraph.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\RenderStage.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\RenderStageLighting.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\RenderToTextureStage.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\SceneView.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\SceneViewManipulator.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\SmoothingVisitor.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\TrackballManipulator.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\TriStripVisitor.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\Tesselator.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\Version.cpp
# End Source File # End Source File
# End Group # End Group
# Begin Group "Header Files" # Begin Group "Header Files"
@ -134,14 +198,34 @@ SOURCE=..\..\Src\osgUtil\TrackballManipulator.cpp
# PROP Default_Filter ";h;hpp;hxx;hm;inl" # PROP Default_Filter ";h;hpp;hxx;hm;inl"
# Begin Source File # Begin Source File
SOURCE=..\..\Include\osgUtil\VisualsRequirementsVisitor
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgUtil\CameraManipulator SOURCE=..\..\Include\osgUtil\CameraManipulator
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\osgUtil\CullVisitor
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgUtil\CullViewState
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgUtil\DisplayListVisitor SOURCE=..\..\Include\osgUtil\DisplayListVisitor
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\osgUtil\DepthSortedBin
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgUtil\StateSetManipulator
# End Source File
# Begin Source File
SOURCE=..\..\include\osgUtil\DriveManipulator SOURCE=..\..\include\osgUtil\DriveManipulator
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -162,11 +246,43 @@ SOURCE=..\..\include\osgUtil\GUIEventAdapter
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\osgUtil\GUIEventHandler
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgUtil\IntersectVisitor SOURCE=..\..\Include\osgUtil\IntersectVisitor
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\osgUtil\RenderVisitor SOURCE=..\..\Include\osgUtil\InsertImpostorsVisitor
# End Source File
# Begin Source File
SOURCE=..\..\src\osgUtil\NvTriStripObjects.h
# End Source File
# Begin Source File
SOURCE=..\..\include\osgUtil\RenderBin
# End Source File
# Begin Source File
SOURCE=..\..\include\osgUtil\RenderLeaf
# End Source File
# Begin Source File
SOURCE=..\..\include\osgUtil\RenderGraph
# End Source File
# Begin Source File
SOURCE=..\..\include\osgUtil\RenderStage
# End Source File
# Begin Source File
SOURCE=..\..\include\osgUtil\RenderStageLighting
# End Source File
# Begin Source File
SOURCE=..\..\include\osgUtil\RenderToTextureStage
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -174,12 +290,32 @@ SOURCE=..\..\Include\osgUtil\SceneView
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Include\osgUtil\Version SOURCE=..\..\Include\osgUtil\SceneViewManipulator
# End Source File
# Begin Source File
SOURCE=..\..\include\osgUtil\SmoothingVisitor
# End Source File
# Begin Source File
SOURCE=..\..\include\osgUtil\Statistics
# End Source File
# Begin Source File
SOURCE=..\..\include\osgUtil\Tesselator
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\osgUtil\TrackballManipulator SOURCE=..\..\include\osgUtil\TrackballManipulator
# End Source File # End Source File
# Begin Source File
SOURCE=..\..\include\osgUtil\TriStripVisitor
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgUtil\Version
# End Source File
# End Group # End Group
# Begin Group "Resource Files" # Begin Group "Resource Files"

View File

@ -0,0 +1,125 @@
# Microsoft Developer Studio Project File - Name="osgWX" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=osgWX - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "osgWX.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "osgWX.mak" CFG="osgWX - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "osgWX - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "osgWX - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "osgWX - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "../../lib"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../lib"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBOSGWX_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../include" /D "NDEBUG" /D "_MBCS" /D "_USRDLL" /D "LIBOSGWX_EXPORTS" /D "OSGWX_LIBRARY" /D "WIN32" /D "_WINDOWS" /D "__WXMSW__" /YX"wx/wxprec.h" /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 wx22_7.lib osgUtil.lib osgDB.lib osg.lib opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"../../bin/osgWX.pdb" /machine:I386 /out:"../../bin/osgWX.dll" /libpath:"../../lib"
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "osgWX - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../lib"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBOSGWX_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /ZI /Od /I "../../include" /D "_DEBUG" /D "OSGWX_LIBRARY" /D "WIN32" /D "_WINDOWS" /D "__WXMSW__" /FR /YX"wx/wxprec.h" /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 wx22_7d.lib osgUtild.lib osgDBd.lib osgd.lib opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /pdb:"../../bin/osgWXd.pdb" /debug /machine:I386 /out:"../../bin/osgWXd.dll" /pdbtype:sept /libpath:"../../lib"
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "osgWX - Win32 Release"
# Name "osgWX - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\Src\osgWX\Version.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgWX\WXEventAdapter.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter ";h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\Include\osgWX\Export
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgWX\Version
# End Source File
# Begin Source File
SOURCE=..\..\Include\osgWX\wxEventAdapter
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@ -1,11 +1,11 @@
Summary: Open Scene Graph Summary: Open Scene Graph
Name: OpenSceneGraph Name: OpenSceneGraph
Version: 0.8 Version: 0.8.39
Release: 2 Release: 1
Copyright: GLPL Copyright: LGPL
Group: Graphics Group: Graphics
Source: osg-0.8-2.tar.gz Source: osg-0.8.39.tar.gz
URL: http://www.openscenegraph.org URL: http://www.openscenegraph.org
Packager: Robert Osfield Packager: Robert Osfield

717
doc/Doxyfiles/all_Doxyfile Normal file
View File

@ -0,0 +1,717 @@
# Doxyfile 1.2.2
# ==========================================================================
# all_Doxyfile will generate doxygen HTML (only) documenation for all
# software in the distribution, including plug-ins. Assumptions:
#
# You have the 'dot' tool and it's on your path
# OSGHOME points to the root of your OSG tree on your filesystem
#
# ==========================================================================
# This file describes the settings to be used by doxygen for a project
#
# All text after a hash (#) is considered a comment and will be ignored
# The format is:
# TAG = value [value, ...]
# For lists items can also be appended using:
# TAG += value [value, ...]
# Values that contain spaces should be placed between quotes (" ")
#---------------------------------------------------------------------------
# General configuration options
#---------------------------------------------------------------------------
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
PROJECT_NAME = "Open Scene Graph, Utility Toolkit, and bundled Plug-ins"
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER =
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
OUTPUT_DIRECTORY = $(OSGHOME)/doc/doxygen
# The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written. Doxygen will use this
# information to generate all constant output in the proper language.
# The default language is English, other supported languages are:
# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese,
# Korean, Hungarian, Spanish, Romanian, Russian, Croatian, Polish, and
# Portuguese.
OUTPUT_LANGUAGE = English
# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
# documentation are documented, even if no documentation was available.
# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
EXTRACT_ALL = YES
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.
EXTRACT_PRIVATE = NO
# If the EXTRACT_STATIC tag is set to YES all static members of a file
# will be included in the documentation.
EXTRACT_STATIC = NO
# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
# undocumented members of documented classes, files or namespaces.
# If set to NO (the default) these members will be included in the
# various overviews, but no documentation section is generated.
# This option has no effect if EXTRACT_ALL is enabled.
HIDE_UNDOC_MEMBERS = NO
# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
# undocumented classes that are normally visible in the class hierarchy.
# If set to NO (the default) these class will be included in the various
# overviews. This option has no effect if EXTRACT_ALL is enabled.
HIDE_UNDOC_CLASSES = NO
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
# include brief member descriptions after the members that are listed in
# the file and class documentation (similar to JavaDoc).
# Set to NO to disable this.
BRIEF_MEMBER_DESC = YES
# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
# the brief description of a member or function before the detailed description.
# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# brief descriptions will be completely suppressed.
REPEAT_BRIEF = YES
# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
# Doxygen will generate a detailed section even if there is only a brief
# description.
ALWAYS_DETAILED_SEC = NO
# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
# path before files name in the file list and in the header files. If set
# to NO the shortest path that makes the file name unique will be used.
FULL_PATH_NAMES = NO
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
# can be used to strip a user defined part of the path. Stripping is
# only done if one of the specified strings matches the left-hand part of
# the path. It is allowed to use relative paths in the argument list.
STRIP_FROM_PATH =
# The INTERNAL_DOCS tag determines if documentation
# that is typed after a \internal command is included. If the tag is set
# to NO (the default) then the documentation will be excluded.
# Set it to YES to include the internal documentation.
INTERNAL_DOCS = NO
# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
# generate a class diagram (in Html and LaTeX) for classes with base or
# super classes. Setting the tag to NO turns the diagrams off.
CLASS_DIAGRAMS = YES
# If the SOURCE_BROWSER tag is set to YES then a list of source files will
# be generated. Documented entities will be cross-referenced with these sources.
SOURCE_BROWSER = NO
# Setting the INLINE_SOURCES tag to YES will include the body
# of functions and classes directly in the documentation.
INLINE_SOURCES = NO
# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
# doxygen to hide any special comment blocks from generated source code
# fragments. Normal C and C++ comments will always remain visible.
STRIP_CODE_COMMENTS = YES
# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
# file names in lower case letters. If set to YES upper case letters are also
# allowed. This is useful if you have classes or files whose names only differ
# in case and if your file system supports case sensitive file names. Windows
# users are adviced to set this option to NO.
CASE_SENSE_NAMES = YES
# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
# will show members with their full class and namespace scopes in the
# documentation. If set to YES the scope will be hidden.
HIDE_SCOPE_NAMES = NO
# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
# will generate a verbatim copy of the header file for each class for
# which an include is specified. Set to NO to disable this.
VERBATIM_HEADERS = YES
# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
# will put list of the files that are included by a file in the documentation
# of that file.
SHOW_INCLUDE_FILES = YES
# If the JAVADOC_AUTOBRIEF tag is set to YES (the default) then Doxygen
# will interpret the first line (until the first dot) of a JavaDoc-style
# comment as the brief description. If set to NO, the Javadoc-style will
# behave just like the Qt-style comments.
JAVADOC_AUTOBRIEF = YES
# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
# member inherits the documentation from any documented member that it
# reimplements.
INHERIT_DOCS = YES
# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
# is inserted in the documentation for inline members.
INLINE_INFO = YES
# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
# will sort the (detailed) documentation of file and class members
# alphabetically by member name. If set to NO the members will appear in
# declaration order.
SORT_MEMBER_DOCS = YES
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES, then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
DISTRIBUTE_GROUP_DOC = NO
# The TAB_SIZE tag can be used to set the number of spaces in a tab.
# Doxygen uses this value to replace tabs by spaces in code fragments.
TAB_SIZE = 8
# The ENABLE_SECTIONS tag can be used to enable conditional
# documentation sections, marked by \if sectionname ... \endif.
ENABLED_SECTIONS =
# The GENERATE_TODOLIST tag can be used to enable (YES) or
# disable (NO) the todo list. This list is created by putting \todo
# commands in the documentation.
GENERATE_TODOLIST = YES
# The GENERATE_TESTLIST tag can be used to enable (YES) or
# disable (NO) the test list. This list is created by putting \test
# commands in the documentation.
GENERATE_TESTLIST = YES
# This tag can be used to specify a number of aliases that acts
# as commands in the documentation. An alias has the form "name=value".
# For example adding "sideeffect=\par Side Effects:\n" will allow you to
# put the command \sideeffect (or @sideeffect) in the documentation, which
# will result in a user defined paragraph with heading "Side Effects:".
# You can put \n's in the value part of an alias to insert newlines.
ALIASES =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
# The QUIET tag can be used to turn on/off the messages that are generated
# by doxygen. Possible values are YES and NO. If left blank NO is used.
QUIET = NO
# The WARNINGS tag can be used to turn on/off the warning messages that are
# generated by doxygen. Possible values are YES and NO. If left blank
# NO is used.
WARNINGS = YES
# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
# automatically be disabled.
WARN_IF_UNDOCUMENTED = YES
# The WARN_FORMAT tag determines the format of the warning messages that
# doxygen can produce. The string should contain the $file, $line, and $text
# tags, which will be replaced by the file and line number from which the
# warning originated and the warning text.
WARN_FORMAT = "$file:$line: $text"
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
# The INPUT tag can be used to specify the files and/or directories that contain
# documented source files. You may enter file names like "myfile.cpp" or
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
INPUT = $(OSGHOME)
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.
FILE_PATTERNS = */include/* *.h */src/*/*.cpp
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
# should be searched for input files as well. Possible values are YES and NO.
# If left blank NO is used.
RECURSIVE = YES
# The EXCLUDE tag can be used to specify files and/or directories that should
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
EXCLUDE =
# If the value of the INPUT tag contains directories, you can use the
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
# certain files from those directories.
EXCLUDE_PATTERNS =
# The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see
# the \include command).
EXAMPLE_PATH =
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.
EXAMPLE_PATTERNS =
# The IMAGE_PATH tag can be used to specify one or more files or
# directories that contain image that are included in the documentation (see
# the \image command).
IMAGE_PATH =
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
# by executing (via popen()) the command <filter> <input-file>, where <filter>
# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
# input file. Doxygen will then use the output that the filter program writes
# to standard output.
INPUT_FILTER =
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
# of all compounds will be generated. Enable this if the project
# contains a lot of classes, structs, unions or interfaces.
ALPHABETICAL_INDEX = YES
# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
# in which this list will be split (can be a number in the range [1..20])
COLS_IN_ALPHA_INDEX = 5
# In case all classes in a project start with a common prefix, all
# classes will be put under the same header in the alphabetical index.
# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
# should be ignored while generating the index headers.
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
# generate HTML output.
GENERATE_HTML = YES
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `html' will be used as the default path.
HTML_OUTPUT = html
# The HTML_HEADER tag can be used to specify a personal HTML header for
# each generated HTML page. If it is left blank doxygen will generate a
# standard header.
HTML_HEADER =
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
# each generated HTML page. If it is left blank doxygen will generate a
# standard footer.
HTML_FOOTER = $(OSGHOME)/doc/Doxyfiles/custom_Footer.html
# The HTML_STYLESHEET tag can be used to specify a user defined cascading
# style sheet that is used by each HTML page. It can be used to
# fine-tune the look of the HTML output. If the tag is left blank doxygen
# will generate a default style sheet
HTML_STYLESHEET =
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
# NO a bullet list will be used.
HTML_ALIGN_MEMBERS = YES
# If the GENERATE_HTMLHELP tag is set to YES, additional index files
# will be generated that can be used as input for tools like the
# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
# of the generated HTML documentation.
GENERATE_HTMLHELP = NO
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
# top of each HTML page. The value NO (the default) enables the index and
# the value YES disables it.
DISABLE_INDEX = NO
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
# generate Latex output.
GENERATE_LATEX = NO
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `latex' will be used as the default path.
LATEX_OUTPUT = latex
# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
# LaTeX documents. This may be useful for small projects and may help to
# save some trees in general.
COMPACT_LATEX = NO
# The PAPER_TYPE tag can be used to set the paper type that is used
# by the printer. Possible values are: a4, a4wide, letter, legal and
# executive. If left blank a4wide will be used.
PAPER_TYPE = a4wide
# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
# packages that should be included in the LaTeX output.
EXTRA_PACKAGES =
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
# the generated latex document. The header should contain everything until
# the first chapter. If it is left blank doxygen will generate a
# standard header. Notice: only use this tag if you know what you are doing!
LATEX_HEADER =
# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
# is prepared for conversion to pdf (using ps2pdf). The pdf file will
# contain links (just like the HTML output) instead of page references
# This makes the output suitable for online browsing using a pdf viewer.
PDF_HYPERLINKS = NO
# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
# plain latex in the generated Makefile. Set this option to YES to get a
# higher quality PDF documentation.
USE_PDFLATEX = NO
# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
# command to the generated LaTeX files. This will instruct LaTeX to keep
# running if errors occur, instead of asking the user for help.
# This option is also used when generating formulas in HTML.
LATEX_BATCHMODE = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
# The RTF output is optimised for Word 97 and may not look very pretty with
# other RTF readers or editors.
GENERATE_RTF = NO
# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `rtf' will be used as the default path.
RTF_OUTPUT = rtf
# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
# RTF documents. This may be useful for small projects and may help to
# save some trees in general.
COMPACT_RTF = NO
# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
# will contain hyperlink fields. The RTF file will
# contain links (just like the HTML output) instead of page references.
# This makes the output suitable for online browsing using a WORD or other.
# programs which support those fields.
# Note: wordpad (write) and others do not support links.
RTF_HYPERLINKS = NO
# Load stylesheet definitions from file. Syntax is similar to doxygen's
# config file, i.e. a series of assigments. You only have to provide
# replacements, missing definitions are set to their default value.
RTF_STYLESHEET_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
# generate man pages
GENERATE_MAN = NO
# The MAN_OUTPUT tag is used to specify where the man pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `man' will be used as the default path.
MAN_OUTPUT = man
# The MAN_EXTENSION tag determines the extension that is added to
# the generated man pages (default is the subroutine's section .3)
MAN_EXTENSION = .3
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
# If the GENERATE_XML tag is set to YES Doxygen will
# generate an XML file that captures the structure of
# the code including all documentation. Warning: This feature
# is still experimental and very incomplete.
GENERATE_XML = NO
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
# evaluate all C-preprocessor directives found in the sources and include
# files.
ENABLE_PREPROCESSING = YES
# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
# names in the source code. If set to NO (the default) only conditional
# compilation will be performed. Macro expansion can be done in a controlled
# way by setting EXPAND_ONLY_PREDEF to YES.
MACRO_EXPANSION = NO
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
# then the macro expansion is limited to the macros specified with the
# PREDEFINED and EXPAND_AS_PREDEFINED tags.
EXPAND_ONLY_PREDEF = NO
# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
# in the INCLUDE_PATH (see below) will be search if a #include is found.
SEARCH_INCLUDES = YES
# The INCLUDE_PATH tag can be used to specify one or more directories that
# contain include files that are not input files but should be processed by
# the preprocessor.
INCLUDE_PATH =
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
# patterns (like *.h and *.hpp) to filter out the header-files in the
# directories. If left blank, the patterns specified with FILE_PATTERNS will
# be used.
INCLUDE_FILE_PATTERNS =
# The PREDEFINED tag can be used to specify one or more macro names that
# are defined before the preprocessor is started (similar to the -D option of
# gcc). The argument of the tag is a list of macros of the form: name
# or name=definition (no spaces). If the definition and the = are
# omitted =1 is assumed.
PREDEFINED =
# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded.
# The macro definition that is found in the sources will be used.
# Use the PREDEFINED tag if you want to use a different macro definition.
EXPAND_AS_DEFINED =
#---------------------------------------------------------------------------
# Configuration::addtions related to external references
#---------------------------------------------------------------------------
# The TAGFILES tag can be used to specify one or more tagfiles.
TAGFILES =
# When a file name is specified after GENERATE_TAGFILE, doxygen will create
# a tag file that is based on the input files it reads.
GENERATE_TAGFILE =
# If the ALLEXTERNALS tag is set to YES all external classes will be listed
# in the class index. If set to NO only the inherited external classes
# will be listed.
ALLEXTERNALS = NO
# The PERL_PATH should be the absolute path and name of the perl script
# interpreter (i.e. the result of `which perl').
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
# available from the path. This tool is part of Graphviz, a graph visualization
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
# have no effect if this option is set to NO (the default)
HAVE_DOT = YES
# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect inheritance relations. Setting this tag to YES will force the
# the CLASS_DIAGRAMS tag to NO.
CLASS_GRAPH = YES
# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect implementation dependencies (inheritance, containment, and
# class references variables) of the class with other documented classes.
COLLABORATION_GRAPH = YES
# If the ENABLE_PREPROCESSING, INCLUDE_GRAPH, and HAVE_DOT tags are set to
# YES then doxygen will generate a graph for each documented file showing
# the direct and indirect include dependencies of the file with other
# documented files.
INCLUDE_GRAPH = YES
# If the ENABLE_PREPROCESSING, INCLUDED_BY_GRAPH, and HAVE_DOT tags are set to
# YES then doxygen will generate a graph for each documented header file showing
# the documented files that directly or indirectly include this file
INCLUDED_BY_GRAPH = YES
# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
# will graphical hierarchy of all classes instead of a textual one.
GRAPHICAL_HIERARCHY = YES
# The tag DOT_PATH can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found on the path.
DOT_PATH =
# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
# this value, doxygen will try to truncate the graph, so that it fits within
# the specified constraint. Beware that most browsers cannot cope with very
# large images.
MAX_DOT_GRAPH_WIDTH = 1024
# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
# this value, doxygen will try to truncate the graph, so that it fits within
# the specified constraint. Beware that most browsers cannot cope with very
# large images.
MAX_DOT_GRAPH_HEIGHT = 1024
#---------------------------------------------------------------------------
# Configuration::addtions related to the search engine
#---------------------------------------------------------------------------
# The SEARCHENGINE tag specifies whether or not a search engine should be
# used. If set to NO the values of all tags below this one will be ignored.
SEARCHENGINE = NO
# The CGI_NAME tag should be the name of the CGI script that
# starts the search engine (doxysearch) with the correct parameters.
# A script with this name will be generated by doxygen.
CGI_NAME = search.cgi
# The CGI_URL tag should be the absolute URL to the directory where the
# cgi binaries are located. See the documentation of your http daemon for
# details.
CGI_URL =
# The DOC_URL tag should be the absolute URL to the directory where the
# documentation is located. If left blank the absolute path to the
# documentation, with file:// prepended to it, will be used.
DOC_URL =
# The DOC_ABSPATH tag should be the absolute path to the directory where the
# documentation is located. If left blank the directory on the local machine
# will be used.
DOC_ABSPATH =
# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
# is installed.
BIN_ABSPATH = /usr/local/bin/
# The EXT_DOC_PATHS tag can be used to specify one or more paths to
# documentation generated for other projects. This allows doxysearch to search
# the documentation for these projects as well.
EXT_DOC_PATHS =

775
doc/Doxyfiles/auto_Doxyfile Normal file
View File

@ -0,0 +1,775 @@
# Doxyfile 1.2.5
# ==========================================================================
# auto_Doxyfile has been written for use by a script that will, upon
# release of a new OSG snapshot, automatically generate doxygen tarballs
# and update the online documentation on the web. It relies on various
# non-(OSG)standard environment variables being set, and is not really
# designed for normal shell-based usage. Assumptions:
#
# OSGHOME points to the root of the OSG tree on your filesystem
# OSGVERSION is set to the OSG's version number
# 'dot' is installed
#
# ==========================================================================
# This file describes the settings to be used by doxygen for a project
#
# All text after a hash (#) is considered a comment and will be ignored
# The format is:
# TAG = value [value, ...]
# For lists items can also be appended using:
# TAG += value [value, ...]
# Values that contain spaces should be placed between quotes (" ")
#---------------------------------------------------------------------------
# General configuration options
#---------------------------------------------------------------------------
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
PROJECT_NAME = "Open Scene Graph & Utility Toolkit"
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER = $(OSGVERSION)
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
OUTPUT_DIRECTORY = $(OSGHOME)/doc/osg-doxygen-$(OSGVERSION)
# The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written. Doxygen will use this
# information to generate all constant output in the proper language.
# The default language is English, other supported languages are:
# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese,
# Korean, Hungarian, Norwegian, Spanish, Romanian, Russian, Croatian,
# Polish, Portuguese and Slovene.
OUTPUT_LANGUAGE = English
# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
# documentation are documented, even if no documentation was available.
# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
EXTRACT_ALL = YES
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.
EXTRACT_PRIVATE = NO
# If the EXTRACT_STATIC tag is set to YES all static members of a file
# will be included in the documentation.
EXTRACT_STATIC = NO
# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
# undocumented members of documented classes, files or namespaces.
# If set to NO (the default) these members will be included in the
# various overviews, but no documentation section is generated.
# This option has no effect if EXTRACT_ALL is enabled.
HIDE_UNDOC_MEMBERS = NO
# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
# undocumented classes that are normally visible in the class hierarchy.
# If set to NO (the default) these class will be included in the various
# overviews. This option has no effect if EXTRACT_ALL is enabled.
HIDE_UNDOC_CLASSES = NO
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
# include brief member descriptions after the members that are listed in
# the file and class documentation (similar to JavaDoc).
# Set to NO to disable this.
BRIEF_MEMBER_DESC = YES
# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
# the brief description of a member or function before the detailed description.
# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# brief descriptions will be completely suppressed.
REPEAT_BRIEF = YES
# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
# Doxygen will generate a detailed section even if there is only a brief
# description.
ALWAYS_DETAILED_SEC = NO
# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
# path before files name in the file list and in the header files. If set
# to NO the shortest path that makes the file name unique will be used.
FULL_PATH_NAMES = NO
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
# can be used to strip a user defined part of the path. Stripping is
# only done if one of the specified strings matches the left-hand part of
# the path. It is allowed to use relative paths in the argument list.
STRIP_FROM_PATH =
# The INTERNAL_DOCS tag determines if documentation
# that is typed after a \internal command is included. If the tag is set
# to NO (the default) then the documentation will be excluded.
# Set it to YES to include the internal documentation.
INTERNAL_DOCS = NO
# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
# generate a class diagram (in Html and LaTeX) for classes with base or
# super classes. Setting the tag to NO turns the diagrams off.
CLASS_DIAGRAMS = YES
# If the SOURCE_BROWSER tag is set to YES then a list of source files will
# be generated. Documented entities will be cross-referenced with these sources.
SOURCE_BROWSER = NO
# Setting the INLINE_SOURCES tag to YES will include the body
# of functions and classes directly in the documentation.
INLINE_SOURCES = NO
# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
# doxygen to hide any special comment blocks from generated source code
# fragments. Normal C and C++ comments will always remain visible.
STRIP_CODE_COMMENTS = YES
# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
# file names in lower case letters. If set to YES upper case letters are also
# allowed. This is useful if you have classes or files whose names only differ
# in case and if your file system supports case sensitive file names. Windows
# users are adviced to set this option to NO.
CASE_SENSE_NAMES = YES
# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
# will show members with their full class and namespace scopes in the
# documentation. If set to YES the scope will be hidden.
HIDE_SCOPE_NAMES = NO
# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
# will generate a verbatim copy of the header file for each class for
# which an include is specified. Set to NO to disable this.
VERBATIM_HEADERS = YES
# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
# will put list of the files that are included by a file in the documentation
# of that file.
SHOW_INCLUDE_FILES = YES
# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
# will interpret the first line (until the first dot) of a JavaDoc-style
# comment as the brief description. If set to NO, the JavaDoc
# comments will behave just like the Qt-style comments (thus requiring an
# explict @brief command for a brief description.
JAVADOC_AUTOBRIEF = YES
# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
# member inherits the documentation from any documented member that it
# reimplements.
INHERIT_DOCS = YES
# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
# is inserted in the documentation for inline members.
INLINE_INFO = YES
# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
# will sort the (detailed) documentation of file and class members
# alphabetically by member name. If set to NO the members will appear in
# declaration order.
SORT_MEMBER_DOCS = YES
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES, then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
DISTRIBUTE_GROUP_DOC = NO
# The TAB_SIZE tag can be used to set the number of spaces in a tab.
# Doxygen uses this value to replace tabs by spaces in code fragments.
TAB_SIZE = 8
# The ENABLE_SECTIONS tag can be used to enable conditional
# documentation sections, marked by \if sectionname ... \endif.
ENABLED_SECTIONS =
# The GENERATE_TODOLIST tag can be used to enable (YES) or
# disable (NO) the todo list. This list is created by putting \todo
# commands in the documentation.
GENERATE_TODOLIST = YES
# The GENERATE_TESTLIST tag can be used to enable (YES) or
# disable (NO) the test list. This list is created by putting \test
# commands in the documentation.
GENERATE_TESTLIST = YES
# This tag can be used to specify a number of aliases that acts
# as commands in the documentation. An alias has the form "name=value".
# For example adding "sideeffect=\par Side Effects:\n" will allow you to
# put the command \sideeffect (or @sideeffect) in the documentation, which
# will result in a user defined paragraph with heading "Side Effects:".
# You can put \n's in the value part of an alias to insert newlines.
ALIASES =
# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
# the initial value of a variable or define consist of for it to appear in
# the documentation. If the initializer consists of more lines than specified
# here it will be hidden. Use a value of 0 to hide initializers completely.
# The appearance of the initializer of individual variables and defines in the
# documentation can be controlled using \showinitializer or \hideinitializer
# command in the documentation regardless of this setting.
MAX_INITIALIZER_LINES = 30
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C.
# For instance some of the names that are used will be different. The list
# of all members will be omitted, etc.
OPTIMIZE_OUTPUT_FOR_C = NO
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
# The QUIET tag can be used to turn on/off the messages that are generated
# by doxygen. Possible values are YES and NO. If left blank NO is used.
# This doesn't work:
#QUIET = $(OSGAUTODOXYGENQUIET)
QUIET = YES
# The WARNINGS tag can be used to turn on/off the warning messages that are
# generated by doxygen. Possible values are YES and NO. If left blank
# NO is used.
WARNINGS = $(OSGAUTODOXYGENWARNINGS)
# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
# automatically be disabled.
WARN_IF_UNDOCUMENTED = $(OSGAUTODOXYGENWARNIFUNDOCUMENTED)
# The WARN_FORMAT tag determines the format of the warning messages that
# doxygen can produce. The string should contain the $file, $line, and $text
# tags, which will be replaced by the file and line number from which the
# warning originated and the warning text.
WARN_FORMAT = "$file:$line: $text"
# The WARN_LOGFILE tag can be used to specify a file to which warning
# and error messages should be written. If left blank the output is written
# to stderr.
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
# The INPUT tag can be used to specify the files and/or directories that contain
# documented source files. You may enter file names like "myfile.cpp" or
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
INPUT = $(OSGHOME)/include/osg \
$(OSGHOME)/include/osgUtil \
$(OSGHOME)/include/osgDB \
$(OSGHOME)/include/osgGLUT \
$(OSGHOME)/src/osg \
$(OSGHOME)/src/osgUtil \
$(OSGHOME)/src/osgDB \
$(OSGHOME)/src/osgGLUT \
$(OSGHOME)/doc/Doxyfiles/auto_Mainpage
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.
FILE_PATTERNS =
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
# should be searched for input files as well. Possible values are YES and NO.
# If left blank NO is used.
RECURSIVE = YES
# The EXCLUDE tag can be used to specify files and/or directories that should
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
EXCLUDE =
# If the value of the INPUT tag contains directories, you can use the
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
# certain files from those directories.
EXCLUDE_PATTERNS =
# The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see
# the \include command).
EXAMPLE_PATH =
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.
EXAMPLE_PATTERNS =
# The IMAGE_PATH tag can be used to specify one or more files or
# directories that contain image that are included in the documentation (see
# the \image command).
IMAGE_PATH =
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
# by executing (via popen()) the command <filter> <input-file>, where <filter>
# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
# input file. Doxygen will then use the output that the filter program writes
# to standard output.
INPUT_FILTER =
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
# INPUT_FILTER) will be used to filter the input files when producing source
# files to browse.
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
# of all compounds will be generated. Enable this if the project
# contains a lot of classes, structs, unions or interfaces.
ALPHABETICAL_INDEX = YES
# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
# in which this list will be split (can be a number in the range [1..20])
COLS_IN_ALPHA_INDEX = 5
# In case all classes in a project start with a common prefix, all
# classes will be put under the same header in the alphabetical index.
# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
# should be ignored while generating the index headers.
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
# generate HTML output.
GENERATE_HTML = YES
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `html' will be used as the default path.
HTML_OUTPUT = html
# The HTML_HEADER tag can be used to specify a personal HTML header for
# each generated HTML page. If it is left blank doxygen will generate a
# standard header.
HTML_HEADER =
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
# each generated HTML page. If it is left blank doxygen will generate a
# standard footer.
HTML_FOOTER = $(OSGHOME)/doc/Doxyfiles/custom_Footer.html
# The HTML_STYLESHEET tag can be used to specify a user defined cascading
# style sheet that is used by each HTML page. It can be used to
# fine-tune the look of the HTML output. If the tag is left blank doxygen
# will generate a default style sheet
HTML_STYLESHEET =
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
# NO a bullet list will be used.
HTML_ALIGN_MEMBERS = YES
# If the GENERATE_HTMLHELP tag is set to YES, additional index files
# will be generated that can be used as input for tools like the
# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
# of the generated HTML documentation.
GENERATE_HTMLHELP = NO
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
# top of each HTML page. The value NO (the default) enables the index and
# the value YES disables it.
DISABLE_INDEX = NO
# This tag can be used to set the number of enum values (range [1..20])
# that doxygen will group on one line in the generated HTML documentation.
ENUM_VALUES_PER_LINE = 4
# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
# generated containing a tree-like index structure (just like the one that
# is generated for HTML Help). For this to work a browser that supports
# JavaScript and frames is required (for instance Netscape 4.0+
# or Internet explorer 4.0+).
GENERATE_TREEVIEW = NO
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
# used to set the initial width (in pixels) of the frame in which the tree
# is shown.
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
# generate Latex output.
GENERATE_LATEX = NO
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `latex' will be used as the default path.
LATEX_OUTPUT = latex
# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
# LaTeX documents. This may be useful for small projects and may help to
# save some trees in general.
COMPACT_LATEX = NO
# The PAPER_TYPE tag can be used to set the paper type that is used
# by the printer. Possible values are: a4, a4wide, letter, legal and
# executive. If left blank a4wide will be used.
PAPER_TYPE = a4wide
# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
# packages that should be included in the LaTeX output.
EXTRA_PACKAGES =
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
# the generated latex document. The header should contain everything until
# the first chapter. If it is left blank doxygen will generate a
# standard header. Notice: only use this tag if you know what you are doing!
LATEX_HEADER =
# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
# is prepared for conversion to pdf (using ps2pdf). The pdf file will
# contain links (just like the HTML output) instead of page references
# This makes the output suitable for online browsing using a pdf viewer.
PDF_HYPERLINKS = NO
# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
# plain latex in the generated Makefile. Set this option to YES to get a
# higher quality PDF documentation.
USE_PDFLATEX = NO
# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
# command to the generated LaTeX files. This will instruct LaTeX to keep
# running if errors occur, instead of asking the user for help.
# This option is also used when generating formulas in HTML.
LATEX_BATCHMODE = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
# The RTF output is optimised for Word 97 and may not look very pretty with
# other RTF readers or editors.
GENERATE_RTF = NO
# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `rtf' will be used as the default path.
RTF_OUTPUT = rtf
# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
# RTF documents. This may be useful for small projects and may help to
# save some trees in general.
COMPACT_RTF = NO
# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
# will contain hyperlink fields. The RTF file will
# contain links (just like the HTML output) instead of page references.
# This makes the output suitable for online browsing using a WORD or other.
# programs which support those fields.
# Note: wordpad (write) and others do not support links.
RTF_HYPERLINKS = NO
# Load stylesheet definitions from file. Syntax is similar to doxygen's
# config file, i.e. a series of assigments. You only have to provide
# replacements, missing definitions are set to their default value.
RTF_STYLESHEET_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
# generate man pages
GENERATE_MAN = NO
# The MAN_OUTPUT tag is used to specify where the man pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `man' will be used as the default path.
MAN_OUTPUT = man
# The MAN_EXTENSION tag determines the extension that is added to
# the generated man pages (default is the subroutine's section .3)
MAN_EXTENSION = .3
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
# evaluate all C-preprocessor directives found in the sources and include
# files.
ENABLE_PREPROCESSING = YES
# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
# names in the source code. If set to NO (the default) only conditional
# compilation will be performed. Macro expansion can be done in a controlled
# way by setting EXPAND_ONLY_PREDEF to YES.
MACRO_EXPANSION = NO
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
# then the macro expansion is limited to the macros specified with the
# PREDEFINED and EXPAND_AS_PREDEFINED tags.
EXPAND_ONLY_PREDEF = NO
# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
# in the INCLUDE_PATH (see below) will be search if a #include is found.
SEARCH_INCLUDES = YES
# The INCLUDE_PATH tag can be used to specify one or more directories that
# contain include files that are not input files but should be processed by
# the preprocessor.
INCLUDE_PATH =
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
# patterns (like *.h and *.hpp) to filter out the header-files in the
# directories. If left blank, the patterns specified with FILE_PATTERNS will
# be used.
INCLUDE_FILE_PATTERNS =
# The PREDEFINED tag can be used to specify one or more macro names that
# are defined before the preprocessor is started (similar to the -D option of
# gcc). The argument of the tag is a list of macros of the form: name
# or name=definition (no spaces). If the definition and the = are
# omitted =1 is assumed.
PREDEFINED =
# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded.
# The macro definition that is found in the sources will be used.
# Use the PREDEFINED tag if you want to use a different macro definition.
EXPAND_AS_DEFINED =
#---------------------------------------------------------------------------
# Configuration::addtions related to external references
#---------------------------------------------------------------------------
# The TAGFILES tag can be used to specify one or more tagfiles.
TAGFILES =
# When a file name is specified after GENERATE_TAGFILE, doxygen will create
# a tag file that is based on the input files it reads.
GENERATE_TAGFILE =
# If the ALLEXTERNALS tag is set to YES all external classes will be listed
# in the class index. If set to NO only the inherited external classes
# will be listed.
ALLEXTERNALS = NO
# The PERL_PATH should be the absolute path and name of the perl script
# interpreter (i.e. the result of `which perl').
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
# available from the path. This tool is part of Graphviz, a graph visualization
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
# have no effect if this option is set to NO (the default)
HAVE_DOT = YES
# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect inheritance relations. Setting this tag to YES will force the
# the CLASS_DIAGRAMS tag to NO.
CLASS_GRAPH = YES
# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect implementation dependencies (inheritance, containment, and
# class references variables) of the class with other documented classes.
COLLABORATION_GRAPH = YES
# If the ENABLE_PREPROCESSING, INCLUDE_GRAPH, and HAVE_DOT tags are set to
# YES then doxygen will generate a graph for each documented file showing
# the direct and indirect include dependencies of the file with other
# documented files.
INCLUDE_GRAPH = YES
# If the ENABLE_PREPROCESSING, INCLUDED_BY_GRAPH, and HAVE_DOT tags are set to
# YES then doxygen will generate a graph for each documented header file showing
# the documented files that directly or indirectly include this file
INCLUDED_BY_GRAPH = YES
# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
# will graphical hierarchy of all classes instead of a textual one.
GRAPHICAL_HIERARCHY = YES
# The tag DOT_PATH can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found on the path.
DOT_PATH =
# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
# this value, doxygen will try to truncate the graph, so that it fits within
# the specified constraint. Beware that most browsers cannot cope with very
# large images.
MAX_DOT_GRAPH_WIDTH = 1024
# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
# this value, doxygen will try to truncate the graph, so that it fits within
# the specified constraint. Beware that most browsers cannot cope with very
# large images.
MAX_DOT_GRAPH_HEIGHT = 1024
# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
# generate a legend page explaining the meaning of the various boxes and
# arrows in the dot generated graphs.
GENERATE_LEGEND = YES
#---------------------------------------------------------------------------
# Configuration::addtions related to the search engine
#---------------------------------------------------------------------------
# The SEARCHENGINE tag specifies whether or not a search engine should be
# used. If set to NO the values of all tags below this one will be ignored.
SEARCHENGINE = NO
# The CGI_NAME tag should be the name of the CGI script that
# starts the search engine (doxysearch) with the correct parameters.
# A script with this name will be generated by doxygen.
CGI_NAME = search.cgi
# The CGI_URL tag should be the absolute URL to the directory where the
# cgi binaries are located. See the documentation of your http daemon for
# details.
CGI_URL =
# The DOC_URL tag should be the absolute URL to the directory where the
# documentation is located. If left blank the absolute path to the
# documentation, with file:// prepended to it, will be used.
DOC_URL =
# The DOC_ABSPATH tag should be the absolute path to the directory where the
# documentation is located. If left blank the directory on the local machine
# will be used.
DOC_ABSPATH =
# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
# is installed.
BIN_ABSPATH = /usr/local/bin/
# The EXT_DOC_PATHS tag can be used to specify one or more paths to
# documentation generated for other projects. This allows doxysearch to search
# the documentation for these projects as well.
EXT_DOC_PATHS =

View File

@ -0,0 +1,13 @@
/**
* \mainpage
* These pages document the API for the standard Open Scene Graph
* distribution. This includes the core scene graph (osg), the accompanying
* utility toolkit (osgUtil), and the rudimentary GLUT work (osgGLUT).
* In the interests of clarity, the plug-ins which may also be found in
* the distribution have not been documented here.
*
* Tarballs of this documentation may be downloaded from
* <a href="http://www.openscenegraph.org/download/dox/">here</a>.
*
* Enjoy!
*/

726
doc/Doxyfiles/core_Doxyfile Normal file
View File

@ -0,0 +1,726 @@
# Doxyfile 1.2.2
# ==========================================================================
# core_Doxyfile documents only the central core componenets of the OSG,
# ignoring plugins. Assumptions:
#
# OSGHOME points to the root of the OSG tree on your filesystem
# 'dot' is installed
#
# ==========================================================================
# This file describes the settings to be used by doxygen for a project
#
# All text after a hash (#) is considered a comment and will be ignored
# The format is:
# TAG = value [value, ...]
# For lists items can also be appended using:
# TAG += value [value, ...]
# Values that contain spaces should be placed between quotes (" ")
#---------------------------------------------------------------------------
# General configuration options
#---------------------------------------------------------------------------
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
PROJECT_NAME = "Open Scene Graph & Utility Toolkit"
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER =
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
OUTPUT_DIRECTORY = $(OSGHOME)/doc/doxygen
# The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written. Doxygen will use this
# information to generate all constant output in the proper language.
# The default language is English, other supported languages are:
# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese,
# Korean, Hungarian, Spanish, Romanian, Russian, Croatian, Polish, and
# Portuguese.
OUTPUT_LANGUAGE = English
# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
# documentation are documented, even if no documentation was available.
# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
EXTRACT_ALL = YES
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.
EXTRACT_PRIVATE = NO
# If the EXTRACT_STATIC tag is set to YES all static members of a file
# will be included in the documentation.
EXTRACT_STATIC = NO
# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
# undocumented members of documented classes, files or namespaces.
# If set to NO (the default) these members will be included in the
# various overviews, but no documentation section is generated.
# This option has no effect if EXTRACT_ALL is enabled.
HIDE_UNDOC_MEMBERS = NO
# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
# undocumented classes that are normally visible in the class hierarchy.
# If set to NO (the default) these class will be included in the various
# overviews. This option has no effect if EXTRACT_ALL is enabled.
HIDE_UNDOC_CLASSES = NO
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
# include brief member descriptions after the members that are listed in
# the file and class documentation (similar to JavaDoc).
# Set to NO to disable this.
BRIEF_MEMBER_DESC = YES
# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
# the brief description of a member or function before the detailed description.
# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# brief descriptions will be completely suppressed.
REPEAT_BRIEF = YES
# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
# Doxygen will generate a detailed section even if there is only a brief
# description.
ALWAYS_DETAILED_SEC = NO
# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
# path before files name in the file list and in the header files. If set
# to NO the shortest path that makes the file name unique will be used.
FULL_PATH_NAMES = NO
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
# can be used to strip a user defined part of the path. Stripping is
# only done if one of the specified strings matches the left-hand part of
# the path. It is allowed to use relative paths in the argument list.
STRIP_FROM_PATH =
# The INTERNAL_DOCS tag determines if documentation
# that is typed after a \internal command is included. If the tag is set
# to NO (the default) then the documentation will be excluded.
# Set it to YES to include the internal documentation.
INTERNAL_DOCS = NO
# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
# generate a class diagram (in Html and LaTeX) for classes with base or
# super classes. Setting the tag to NO turns the diagrams off.
CLASS_DIAGRAMS = YES
# If the SOURCE_BROWSER tag is set to YES then a list of source files will
# be generated. Documented entities will be cross-referenced with these sources.
SOURCE_BROWSER = NO
# Setting the INLINE_SOURCES tag to YES will include the body
# of functions and classes directly in the documentation.
INLINE_SOURCES = NO
# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
# doxygen to hide any special comment blocks from generated source code
# fragments. Normal C and C++ comments will always remain visible.
STRIP_CODE_COMMENTS = YES
# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
# file names in lower case letters. If set to YES upper case letters are also
# allowed. This is useful if you have classes or files whose names only differ
# in case and if your file system supports case sensitive file names. Windows
# users are adviced to set this option to NO.
CASE_SENSE_NAMES = YES
# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
# will show members with their full class and namespace scopes in the
# documentation. If set to YES the scope will be hidden.
HIDE_SCOPE_NAMES = NO
# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
# will generate a verbatim copy of the header file for each class for
# which an include is specified. Set to NO to disable this.
VERBATIM_HEADERS = YES
# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
# will put list of the files that are included by a file in the documentation
# of that file.
SHOW_INCLUDE_FILES = YES
# If the JAVADOC_AUTOBRIEF tag is set to YES (the default) then Doxygen
# will interpret the first line (until the first dot) of a JavaDoc-style
# comment as the brief description. If set to NO, the Javadoc-style will
# behave just like the Qt-style comments.
JAVADOC_AUTOBRIEF = YES
# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
# member inherits the documentation from any documented member that it
# reimplements.
INHERIT_DOCS = YES
# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
# is inserted in the documentation for inline members.
INLINE_INFO = YES
# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
# will sort the (detailed) documentation of file and class members
# alphabetically by member name. If set to NO the members will appear in
# declaration order.
SORT_MEMBER_DOCS = YES
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES, then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
DISTRIBUTE_GROUP_DOC = NO
# The TAB_SIZE tag can be used to set the number of spaces in a tab.
# Doxygen uses this value to replace tabs by spaces in code fragments.
TAB_SIZE = 8
# The ENABLE_SECTIONS tag can be used to enable conditional
# documentation sections, marked by \if sectionname ... \endif.
ENABLED_SECTIONS =
# The GENERATE_TODOLIST tag can be used to enable (YES) or
# disable (NO) the todo list. This list is created by putting \todo
# commands in the documentation.
GENERATE_TODOLIST = YES
# The GENERATE_TESTLIST tag can be used to enable (YES) or
# disable (NO) the test list. This list is created by putting \test
# commands in the documentation.
GENERATE_TESTLIST = YES
# This tag can be used to specify a number of aliases that acts
# as commands in the documentation. An alias has the form "name=value".
# For example adding "sideeffect=\par Side Effects:\n" will allow you to
# put the command \sideeffect (or @sideeffect) in the documentation, which
# will result in a user defined paragraph with heading "Side Effects:".
# You can put \n's in the value part of an alias to insert newlines.
ALIASES =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
# The QUIET tag can be used to turn on/off the messages that are generated
# by doxygen. Possible values are YES and NO. If left blank NO is used.
QUIET = NO
# The WARNINGS tag can be used to turn on/off the warning messages that are
# generated by doxygen. Possible values are YES and NO. If left blank
# NO is used.
WARNINGS = YES
# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
# automatically be disabled.
WARN_IF_UNDOCUMENTED = YES
# The WARN_FORMAT tag determines the format of the warning messages that
# doxygen can produce. The string should contain the $file, $line, and $text
# tags, which will be replaced by the file and line number from which the
# warning originated and the warning text.
WARN_FORMAT = "$file:$line: $text"
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
# The INPUT tag can be used to specify the files and/or directories that contain
# documented source files. You may enter file names like "myfile.cpp" or
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
INPUT = $(OSGHOME)/include/osg \
$(OSGHOME)/include/osgUtil \
$(OSGHOME)/include/osgDB \
$(OSGHOME)/include/osgGLUT \
$(OSGHOME)/src/osg \
$(OSGHOME)/src/osgUtil \
$(OSGHOME)/src/osgDB \
$(OSGHOME)/src/osgGLUT \
$(OSGHOME)/doc/Doxyfiles/auto_Mainpage
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.
FILE_PATTERNS =
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
# should be searched for input files as well. Possible values are YES and NO.
# If left blank NO is used.
RECURSIVE = YES
# The EXCLUDE tag can be used to specify files and/or directories that should
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
EXCLUDE =
# If the value of the INPUT tag contains directories, you can use the
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
# certain files from those directories.
EXCLUDE_PATTERNS =
# The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see
# the \include command).
EXAMPLE_PATH =
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.
EXAMPLE_PATTERNS =
# The IMAGE_PATH tag can be used to specify one or more files or
# directories that contain image that are included in the documentation (see
# the \image command).
IMAGE_PATH =
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
# by executing (via popen()) the command <filter> <input-file>, where <filter>
# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
# input file. Doxygen will then use the output that the filter program writes
# to standard output.
INPUT_FILTER =
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
# of all compounds will be generated. Enable this if the project
# contains a lot of classes, structs, unions or interfaces.
ALPHABETICAL_INDEX = YES
# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
# in which this list will be split (can be a number in the range [1..20])
COLS_IN_ALPHA_INDEX = 5
# In case all classes in a project start with a common prefix, all
# classes will be put under the same header in the alphabetical index.
# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
# should be ignored while generating the index headers.
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
# generate HTML output.
GENERATE_HTML = YES
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `html' will be used as the default path.
HTML_OUTPUT = html
# The HTML_HEADER tag can be used to specify a personal HTML header for
# each generated HTML page. If it is left blank doxygen will generate a
# standard header.
HTML_HEADER =
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
# each generated HTML page. If it is left blank doxygen will generate a
# standard footer.
HTML_FOOTER = $(OSGHOME)/doc/Doxyfiles/custom_Footer.html
# The HTML_STYLESHEET tag can be used to specify a user defined cascading
# style sheet that is used by each HTML page. It can be used to
# fine-tune the look of the HTML output. If the tag is left blank doxygen
# will generate a default style sheet
HTML_STYLESHEET =
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
# NO a bullet list will be used.
HTML_ALIGN_MEMBERS = YES
# If the GENERATE_HTMLHELP tag is set to YES, additional index files
# will be generated that can be used as input for tools like the
# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
# of the generated HTML documentation.
GENERATE_HTMLHELP = NO
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
# top of each HTML page. The value NO (the default) enables the index and
# the value YES disables it.
DISABLE_INDEX = NO
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
# generate Latex output.
GENERATE_LATEX = NO
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `latex' will be used as the default path.
LATEX_OUTPUT = latex
# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
# LaTeX documents. This may be useful for small projects and may help to
# save some trees in general.
COMPACT_LATEX = NO
# The PAPER_TYPE tag can be used to set the paper type that is used
# by the printer. Possible values are: a4, a4wide, letter, legal and
# executive. If left blank a4wide will be used.
PAPER_TYPE = a4wide
# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
# packages that should be included in the LaTeX output.
EXTRA_PACKAGES =
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
# the generated latex document. The header should contain everything until
# the first chapter. If it is left blank doxygen will generate a
# standard header. Notice: only use this tag if you know what you are doing!
LATEX_HEADER =
# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
# is prepared for conversion to pdf (using ps2pdf). The pdf file will
# contain links (just like the HTML output) instead of page references
# This makes the output suitable for online browsing using a pdf viewer.
PDF_HYPERLINKS = NO
# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
# plain latex in the generated Makefile. Set this option to YES to get a
# higher quality PDF documentation.
USE_PDFLATEX = NO
# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
# command to the generated LaTeX files. This will instruct LaTeX to keep
# running if errors occur, instead of asking the user for help.
# This option is also used when generating formulas in HTML.
LATEX_BATCHMODE = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
# The RTF output is optimised for Word 97 and may not look very pretty with
# other RTF readers or editors.
GENERATE_RTF = NO
# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `rtf' will be used as the default path.
RTF_OUTPUT = rtf
# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
# RTF documents. This may be useful for small projects and may help to
# save some trees in general.
COMPACT_RTF = NO
# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
# will contain hyperlink fields. The RTF file will
# contain links (just like the HTML output) instead of page references.
# This makes the output suitable for online browsing using a WORD or other.
# programs which support those fields.
# Note: wordpad (write) and others do not support links.
RTF_HYPERLINKS = NO
# Load stylesheet definitions from file. Syntax is similar to doxygen's
# config file, i.e. a series of assigments. You only have to provide
# replacements, missing definitions are set to their default value.
RTF_STYLESHEET_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
# generate man pages
GENERATE_MAN = NO
# The MAN_OUTPUT tag is used to specify where the man pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `man' will be used as the default path.
MAN_OUTPUT = man
# The MAN_EXTENSION tag determines the extension that is added to
# the generated man pages (default is the subroutine's section .3)
MAN_EXTENSION = .3
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
# If the GENERATE_XML tag is set to YES Doxygen will
# generate an XML file that captures the structure of
# the code including all documentation. Warning: This feature
# is still experimental and very incomplete.
GENERATE_XML = NO
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
# evaluate all C-preprocessor directives found in the sources and include
# files.
ENABLE_PREPROCESSING = YES
# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
# names in the source code. If set to NO (the default) only conditional
# compilation will be performed. Macro expansion can be done in a controlled
# way by setting EXPAND_ONLY_PREDEF to YES.
MACRO_EXPANSION = NO
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
# then the macro expansion is limited to the macros specified with the
# PREDEFINED and EXPAND_AS_PREDEFINED tags.
EXPAND_ONLY_PREDEF = NO
# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
# in the INCLUDE_PATH (see below) will be search if a #include is found.
SEARCH_INCLUDES = YES
# The INCLUDE_PATH tag can be used to specify one or more directories that
# contain include files that are not input files but should be processed by
# the preprocessor.
INCLUDE_PATH =
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
# patterns (like *.h and *.hpp) to filter out the header-files in the
# directories. If left blank, the patterns specified with FILE_PATTERNS will
# be used.
INCLUDE_FILE_PATTERNS =
# The PREDEFINED tag can be used to specify one or more macro names that
# are defined before the preprocessor is started (similar to the -D option of
# gcc). The argument of the tag is a list of macros of the form: name
# or name=definition (no spaces). If the definition and the = are
# omitted =1 is assumed.
PREDEFINED =
# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded.
# The macro definition that is found in the sources will be used.
# Use the PREDEFINED tag if you want to use a different macro definition.
EXPAND_AS_DEFINED =
#---------------------------------------------------------------------------
# Configuration::addtions related to external references
#---------------------------------------------------------------------------
# The TAGFILES tag can be used to specify one or more tagfiles.
TAGFILES =
# When a file name is specified after GENERATE_TAGFILE, doxygen will create
# a tag file that is based on the input files it reads.
GENERATE_TAGFILE =
# If the ALLEXTERNALS tag is set to YES all external classes will be listed
# in the class index. If set to NO only the inherited external classes
# will be listed.
ALLEXTERNALS = NO
# The PERL_PATH should be the absolute path and name of the perl script
# interpreter (i.e. the result of `which perl').
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
# available from the path. This tool is part of Graphviz, a graph visualization
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
# have no effect if this option is set to NO (the default)
HAVE_DOT = YES
# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect inheritance relations. Setting this tag to YES will force the
# the CLASS_DIAGRAMS tag to NO.
CLASS_GRAPH = YES
# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect implementation dependencies (inheritance, containment, and
# class references variables) of the class with other documented classes.
COLLABORATION_GRAPH = YES
# If the ENABLE_PREPROCESSING, INCLUDE_GRAPH, and HAVE_DOT tags are set to
# YES then doxygen will generate a graph for each documented file showing
# the direct and indirect include dependencies of the file with other
# documented files.
INCLUDE_GRAPH = YES
# If the ENABLE_PREPROCESSING, INCLUDED_BY_GRAPH, and HAVE_DOT tags are set to
# YES then doxygen will generate a graph for each documented header file showing
# the documented files that directly or indirectly include this file
INCLUDED_BY_GRAPH = YES
# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
# will graphical hierarchy of all classes instead of a textual one.
GRAPHICAL_HIERARCHY = YES
# The tag DOT_PATH can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found on the path.
DOT_PATH =
# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
# this value, doxygen will try to truncate the graph, so that it fits within
# the specified constraint. Beware that most browsers cannot cope with very
# large images.
MAX_DOT_GRAPH_WIDTH = 1024
# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
# this value, doxygen will try to truncate the graph, so that it fits within
# the specified constraint. Beware that most browsers cannot cope with very
# large images.
MAX_DOT_GRAPH_HEIGHT = 1024
#---------------------------------------------------------------------------
# Configuration::addtions related to the search engine
#---------------------------------------------------------------------------
# The SEARCHENGINE tag specifies whether or not a search engine should be
# used. If set to NO the values of all tags below this one will be ignored.
SEARCHENGINE = NO
# The CGI_NAME tag should be the name of the CGI script that
# starts the search engine (doxysearch) with the correct parameters.
# A script with this name will be generated by doxygen.
CGI_NAME = search.cgi
# The CGI_URL tag should be the absolute URL to the directory where the
# cgi binaries are located. See the documentation of your http daemon for
# details.
CGI_URL =
# The DOC_URL tag should be the absolute URL to the directory where the
# documentation is located. If left blank the absolute path to the
# documentation, with file:// prepended to it, will be used.
DOC_URL =
# The DOC_ABSPATH tag should be the absolute path to the directory where the
# documentation is located. If left blank the directory on the local machine
# will be used.
DOC_ABSPATH =
# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
# is installed.
BIN_ABSPATH = /usr/local/bin/
# The EXT_DOC_PATHS tag can be used to specify one or more paths to
# documentation generated for other projects. This allows doxysearch to search
# the documentation for these projects as well.
EXT_DOC_PATHS =

View File

@ -0,0 +1,6 @@
<hr>
<address><small>Generated at $datetime for the <a href="http://www.openscenegraph.org/">Open Scene Graph</a>
by <a href="http://www.stack.nl/~dimitri/doxygen/index.html">doxygen</a> $doxygenversion.</small></address>
<!-- Dimitri van Heesch's e-mail address removed, lest he get messages on the Open Scene Graph -->
</body>
</html>

View File

@ -2,34 +2,43 @@
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.6 [en-gb]C-CCK-MCD NetscapeOnline.co.uk (Win95; I) [Netscape]"> <meta name="GENERATOR" content="Mozilla/4.75C-SGI [en] (X11; I; IRIX64 6.5 IP27) [Netscape]">
<title>OSG Documentation</title> <title>OSG Documentation</title>
</head> </head>
<body> <body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000">
<img SRC="OpenSceneGraphBanner_Distribution.jpg" height=77 width=640>
<center>
<h1> <h1>
<b><i><u>Open Scene Graph Documentation</u></i></b></h1></center> <b><i><u>Documentation</u></i></b></h1>
The documentation on the OSG is still in its early stages, and far from The documentation on the OSG is still in its early stages, and far from
complete. If you can't find your answers in what documentation there currently complete. If you can't find your answers in what documentation there currently
is, please feel free to post the question on the OSG mailing list.<u></u> is, please feel free to post the question on the OSG mailing list.
<p><u><a href="../index.html">Introduction, distribution contents and contacts</a></u><u></u> <p><u><a href="../index.html">Introduction, distribution contents and contacts</a></u>
<p><u>User documention</u>
<blockquote><a href="sgv.html">sgv</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Documentation on key binding in sgv (Scene Graph Viewer.)</blockquote></p>
<p><u>Reference guides (automatically generated using doc++)</u> <p><u>Reference guides (automatically generated using doc++)</u>
<blockquote><a href="osg/HIER.html">osg/</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <blockquote><a href="doc++/osg/HIER.html">osg/</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
core scene graph reference guide. core scene graph reference guide.
<br><a href="osgUtil/HIER.html">osgUtil/</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br><a href="doc++/osgUtil/HIER.html">osgUtil/</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
scene graph utilities reference guide. scene graph utilities reference guide.
<br><a href="osgGLUT/HIER.html">osgGLUT/</a>&nbsp;&nbsp;&nbsp;&nbsp; simple <br><a href="doc++/osgDB/HIER.html">osgDB/</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
GLUT based viewer base classes reference guide.</blockquote> scene graph database utilities reference guide.
<u>UML Diagrams</u> <br><a href="doc++/osgGLUT/HIER.html">osgGLUT/</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
simple GLUT based viewer base classes reference guide.
<br><a href="doc++/osgWX/HIER.html">osgWX/</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
WXEvenetAdapter for integrating wxWindows with osgUtil manipulators.</blockquote>
<p>Doxygen-generated tarballs are available for <a href="http://www.openscenegraph.org/download/dox/">download</a> from the website</p>
<p><u>UML Diagrams</u>
<blockquote><a href="UML/osg.png">osg</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <blockquote><a href="UML/osg.png">osg</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
UML diagram of the osg core library UML diagram of the osg core library
<br><a href="UML/osgutils.png">osgUtil</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br><a href="UML/osgutils.png">osgUtil</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
UML diagram of the osg utilities library</blockquote> UML diagram of the osg utilities library</blockquote></p>
<u>Mind Maps</u> <p><u>Mind Maps</u>
<blockquote><a href="MindMaps/DesignPatterns/DesignPatterns.html">Design <blockquote><a href="MindMaps/DesignPatterns/DesignPatterns.html">Design
Pattern used in the OSG.</a> Pattern used in the OSG.</a>
<br><a href="MindMaps/Mission/Mission.html">Mission Statement for OSG.</a></blockquote> <br><a href="MindMaps/Mission/Mission.html">Mission Statement for OSG.</a></blockquote></p>
</body> </body>
</html> </html>

View File

@ -1,18 +1,30 @@
#ifndef OSG_ALPHAFUNC #ifndef OSG_ALPHAFUNC
#define OSG_ALPHAFUNC 1 #define OSG_ALPHAFUNC 1
#include <osg/Export> #include <osg/StateAttribute>
#include <osg/Object> #include <osg/StateSet>
#include <osg/GL>
namespace osg { namespace osg {
/** Encapsulte OpenGL glAlphaFunc. /** Encapsulte OpenGL glAlphaFunc.
*/ */
class SG_EXPORT AlphaFunc : public Object class SG_EXPORT AlphaFunc : public StateAttribute
{ {
public : public :
AlphaFunc();
virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const AlphaFunc*>(obj)!=0L; }
virtual Object* clone() const { return new AlphaFunc(); }
virtual const char* className() const { return "AlphaFunc"; }
virtual const Type getType() const { return ALPHAFUNC; }
virtual void setStateSetModes(StateSet& ds,const GLModeValue value) const
{
ds.setMode(GL_ALPHA_TEST,value);
}
enum ComparisonFunction { enum ComparisonFunction {
NEVER = GL_NEVER, NEVER = GL_NEVER,
LESS = GL_LESS, LESS = GL_LESS,
@ -24,37 +36,22 @@ class SG_EXPORT AlphaFunc : public Object
ALWAYS = GL_ALWAYS ALWAYS = GL_ALWAYS
}; };
AlphaFunc(); inline void setFunction(const ComparisonFunction func,const float ref)
static AlphaFunc* instance();
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<AlphaFunc*>(obj)!=NULL; }
virtual Object* clone() const { return new AlphaFunc(); }
virtual const char* className() const { return "AlphaFunc"; }
void setFunction(ComparisonFunction func,float ref)
{ {
_comparisonFunc = func; _comparisonFunc = func;
_referenceValue = ref; _referenceValue = ref;
} }
ComparisonFunction getFunction() const { return _comparisonFunc; } inline const ComparisonFunction getFunction() const { return _comparisonFunc; }
float getRefrenceValue() const { return _referenceValue; } inline const float getReferenceValue() const { return _referenceValue; }
static void enable(); virtual void apply(State& state) const;
static void disable();
void apply();
protected: protected:
virtual ~AlphaFunc(); virtual ~AlphaFunc();
virtual bool readLocalData(Input& fr);
virtual bool writeLocalData(Output& fw);
bool matchFuncStr(const char* str,ComparisonFunction& func);
const char* getFuncStr(ComparisonFunction func);
ComparisonFunction _comparisonFunc; ComparisonFunction _comparisonFunc;
float _referenceValue; float _referenceValue;

View File

@ -1,11 +1,12 @@
#ifndef OSG_BILLBOARD #ifndef OSG_BILLBOARD
#define OSG_BILLBOARD 1 #define OSG_BILLBOARD 1
#include <osg/Matrix>
#include <osg/Geode> #include <osg/Geode>
namespace osg { namespace osg {
/** Billboard - a Geode which orientates its child osg::GeoSet's to face /** Billboard - a Geode which orientates its child osg::Drawable's to face
the eye point. the eye point.
Typical uses are for trees, or particle explosions. Typical uses are for trees, or particle explosions.
*/ */
@ -22,56 +23,66 @@ class SG_EXPORT Billboard : public Geode
Billboard(); Billboard();
virtual Object* clone() const { return new Billboard(); } virtual Object* clone() const { return new Billboard(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<Billboard*>(obj)!=NULL; } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const Billboard*>(obj)!=NULL; }
virtual const char* className() const { return "Billboard"; } virtual const char* className() const { return "Billboard"; }
virtual void accept(NodeVisitor& nv) { nv.apply(*this); } virtual void accept(NodeVisitor& nv) { nv.apply(*this); }
void setAxis(const Vec3& axis) { _axis = axis; } /** Set the axis about which all the billboard's drawable rotate. */
void getAxis(Vec3& axis) const { axis = _axis; } inline void setAxis(const Vec3& axis) { _axis = axis; }
/** Get the axis about which all the billboard's drawable rotate. */
inline const Vec3& getAxis() const { return _axis; }
void setMode(Mode mode) { _mode = mode; } /** Set the billboard rotation mode. */
int getMode() const { return _mode; } inline void setMode(const Mode mode) { _mode = mode; }
/** Get the billboard rotation mode. */
inline const Mode getMode() const { return _mode; }
void setPos(int i,const Vec3& pos) { _positionList[i] = pos; } /** Set the position of specified drawable. */
void getPos(int i,Vec3& pos) const { pos = _positionList[i]; } inline void setPos(int i,const Vec3& pos) { _positionList[i] = pos; }
/** Get the position of specified drawable. */
inline const Vec3& getPos(int i) const { return _positionList[i]; }
/** Add GeoSet to Billboard with default position(0,0,0); /** PositionList represents a list of pivot points for each drawable.*/
typedef std::vector<Vec3> PositionList;
/** Get the PostionList from the billboard.*/
inline PositionList& getPositionList() { return _positionList; }
/** Get a const PostionList from the billboard.*/
inline const PositionList& getPositionList() const { return _positionList; }
/** Add Drawable to Billboard with default position(0,0,0);
* If gset not NULL and is not contained in Billboard then increment its * If gset not NULL and is not contained in Billboard then increment its
* reference count, and dirty the bounding box to cause it to recompute on * reference count, and dirty the bounding box to cause it to recompute on
* next getBound() and return true for success. Otherwise return false. * next getBound() and return true for success. Otherwise return false.
*/ */
virtual bool addGeoSet( GeoSet *gset ); virtual const bool addDrawable( Drawable *gset );
/** Add GeoSet to Geode at position pos. /** Add Drawable to Geode at position pos.
* If gset not NULL and is not contained in Billboard then increment its * If gset not NULL and is not contained in Billboard then increment its
* reference count, and dirty the bounding box to cause it to recompute on * reference count, and dirty the bounding box to cause it to recompute on
* next getBound() and return true for success. Otherwise return false. * next getBound() and return true for success. Otherwise return false.
*/ */
virtual bool addGeoSet(GeoSet *gset,const Vec3& pos); virtual const bool addDrawable(Drawable *gset,const Vec3& pos);
/** Remove GeoSet and associated position from Billboard. /** Remove Drawable and associated position from Billboard.
* If gset is contained in Billboard then remove it from the geoset * If gset is contained in Billboard then remove it from the geoset
* list and decrement its reference count, and dirty the * list and decrement its reference count, and dirty the
* bounding box to cause it to recompute on next getBound() and * bounding box to cause it to recompute on next getBound() and
* return true for success. If gset is not found then return false * return true for success. If gset is not found then return false
* and do not the reference count of gset is left unchanged. * and do not the reference count of gset is left unchanged.
*/ */
virtual bool removeGeoSet( GeoSet *gset ); virtual const bool removeDrawable( Drawable *gset );
void calcRotation(const Vec3& eye_local, const Vec3& pos_local,Matrix& mat); void calcRotation(const Vec3& eye_local, const Vec3& pos_local,Matrix& mat) const;
void calcTransform(const Vec3& eye_local, const Vec3& pos_local,Matrix& mat); void calcTransform(const Vec3& eye_local, const Vec3& pos_local,Matrix& mat) const;
protected: protected:
virtual ~Billboard(); virtual ~Billboard();
virtual bool readLocalData(Input& fr); virtual const bool computeBound() const;
virtual bool writeLocalData(Output& fw);
virtual bool computeBound( void );
typedef std::vector<Vec3> PositionList;
Mode _mode; Mode _mode;
Vec3 _axis; Vec3 _axis;

View File

@ -29,7 +29,7 @@ class SG_EXPORT BoundingBox
_max(-FLT_MAX,-FLT_MAX,-FLT_MAX) {} _max(-FLT_MAX,-FLT_MAX,-FLT_MAX) {}
/** initialize to invalid values to represent an unset bounding box.*/ /** initialize to invalid values to represent an unset bounding box.*/
void init() inline void init()
{ {
_min.set(FLT_MAX,FLT_MAX,FLT_MAX); _min.set(FLT_MAX,FLT_MAX,FLT_MAX);
_max.set(-FLT_MAX,-FLT_MAX,-FLT_MAX); _max.set(-FLT_MAX,-FLT_MAX,-FLT_MAX);
@ -37,44 +37,44 @@ class SG_EXPORT BoundingBox
/** return true if the bounding box contains valid values, /** return true if the bounding box contains valid values,
false if the bounding box is effectively unset/empty.*/ false if the bounding box is effectively unset/empty.*/
bool isValid() const inline const bool isValid() const
{ {
return _max.x()>=_min.x(); return _max.x()>=_min.x();
} }
float& xMin() { return _min.x(); } inline float& xMin() { return _min.x(); }
float xMin() const { return _min.x(); } inline const float xMin() const { return _min.x(); }
float& yMin() { return _min.y(); } inline float& yMin() { return _min.y(); }
float yMin() const { return _min.y(); } inline const float yMin() const { return _min.y(); }
float& zMin() { return _min.z(); } inline float& zMin() { return _min.z(); }
float zMin() const { return _min.z(); } inline const float zMin() const { return _min.z(); }
float& xMax() { return _max.x(); } inline float& xMax() { return _max.x(); }
float xMax() const { return _max.x(); } inline const float xMax() const { return _max.x(); }
float& yMax() { return _max.y(); } inline float& yMax() { return _max.y(); }
float yMax() const { return _max.y(); } inline const float yMax() const { return _max.y(); }
float& zMax() { return _max.z(); } inline float& zMax() { return _max.z(); }
float zMax() const { return _max.z(); } inline const float zMax() const { return _max.z(); }
/** Calculate and return the center of the bounding box.*/ /** Calculate and return the center of the bounding box.*/
Vec3 center() const inline const Vec3 center() const
{ {
return (_min+_max)*0.5f; return (_min+_max)*0.5f;
} }
/** Calculate and return the radius of the bounding box.*/ /** Calculate and return the radius of the bounding box.*/
float radius() const inline const float radius() const
{ {
return sqrtf(radius2()); return sqrtf(radius2());
} }
/** Calculate and return the radius squared of the bounding box. /** Calculate and return the radius squared of the bounding box.
Note, radius2() is faster to calculate than radius().*/ Note, radius2() is faster to calculate than radius().*/
float radius2() const inline const float radius2() const
{ {
return 0.25f*((_max-_min).length2()); return 0.25f*((_max-_min).length2());
} }
@ -84,7 +84,7 @@ class SG_EXPORT BoundingBox
the first bit toggles between x min and x max, second the first bit toggles between x min and x max, second
bit toggles between y min and y max, third bit toggles bit toggles between y min and y max, third bit toggles
between z min and z max.*/ between z min and z max.*/
Vec3 corner(unsigned int pos) const inline const Vec3 corner(unsigned int pos) const
{ {
return Vec3(pos&1?_max.x():_min.x(),pos&2?_max.y():_min.y(),pos&4?_max.z():_min.z()); return Vec3(pos&1?_max.x():_min.x(),pos&2?_max.y():_min.y(),pos&4?_max.z():_min.z());
} }
@ -102,7 +102,7 @@ class SG_EXPORT BoundingBox
void expandBy(const BoundingSphere& sh); void expandBy(const BoundingSphere& sh);
/** return true is vertex v is within the box.*/ /** return true is vertex v is within the box.*/
bool contains(const Vec3& v) inline const bool contains(const Vec3& v) const
{ {
return isValid() && return isValid() &&
(v.x()>=_min.x() && v.x()<=_max.x()) && (v.x()>=_min.x() && v.x()<=_max.x()) &&

View File

@ -23,7 +23,7 @@ class SG_EXPORT BoundingSphere
BoundingSphere() : _center(0.0f,0.0f,0.0f),_radius(-1.0f) {} BoundingSphere() : _center(0.0f,0.0f,0.0f),_radius(-1.0f) {}
/** initialize to invalid values to represent an unset bounding sphere.*/ /** initialize to invalid values to represent an unset bounding sphere.*/
void init() inline void init()
{ {
_center.set(0.0f,0.0f,0.0f); _center.set(0.0f,0.0f,0.0f);
_radius = -1.0f; _radius = -1.0f;
@ -31,24 +31,25 @@ class SG_EXPORT BoundingSphere
/** return true if the bounding sphere contains valid values, /** return true if the bounding sphere contains valid values,
false if the bounding sphere is effectively unset.*/ false if the bounding sphere is effectively unset.*/
bool isValid() const { return _radius>=0.0f; } inline const bool isValid() const { return _radius>=0.0f; }
/** return the const center of the bounding sphere.*/
const Vec3& center() const { return _center; }
/** return the center of the bounding sphere.*/ /** return the center of the bounding sphere.*/
Vec3& center() { return _center; } inline Vec3& center() { return _center; }
/** return the const center of the bounding sphere.*/
inline const Vec3& center() const { return _center; }
/** return the radius of the bounding sphere.*/
inline float& radius() { return _radius; }
/** return the const radius of the bounding sphere.*/ /** return the const radius of the bounding sphere.*/
float radius() const { return _radius; } inline const float radius() const { return _radius; }
/** return the radius of the bounding sphere.*/
float& radius() { return _radius; }
/** return the radius squared. /** return the radius squared.
Note, for performance reasons, assumes the calling method has ensured Note, for performance reasons, assumes the calling method has ensured
that the sphere is valid before calling radius2(), i.e. has _radius>=0.0, that the sphere is valid before calling radius2(), i.e. has _radius>=0.0,
as it does not check th validity of sphere and will eroneously return a positive value.*/ as it does not check th validity of sphere and will eroneously return a positive value.*/
float radius2() const { return _radius*_radius; } inline const float radius2() const { return _radius*_radius; }
/** If the vertex is outwith the sphere expand to ecompass vertex. /** If the vertex is outwith the sphere expand to ecompass vertex.
Calculates the combination of movement of center and radius which Calculates the combination of movement of center and radius which
@ -73,11 +74,18 @@ class SG_EXPORT BoundingSphere
void expandRadiusBy(const BoundingSphere& sh); void expandRadiusBy(const BoundingSphere& sh);
/** return true is vertex v is within the sphere.*/ /** return true is vertex v is within the sphere.*/
bool contains(const Vec3& v) inline const bool contains(const Vec3& v) const
{ {
return isValid() && ((v-_center).length2()<=radius2()); return isValid() && ((v-_center).length2()<=radius2());
} }
/** return true if bounding sphere's intersect each other.*/
inline const bool intersects( const BoundingSphere& bs ) const
{
return isValid() && bs.isValid() &&
((_center - bs._center).length2() <= (_radius + bs._radius)*(_radius + bs._radius));
}
}; };
}; };

View File

@ -1,16 +1,18 @@
#ifndef OSG_CAMERA #ifndef OSG_CAMERA
#define OSG_CAMERA 1 #define OSG_CAMERA 1
#include <osg/Export> #include <osg/ref_ptr>
#include <osg/Scene> #include <osg/Referenced>
#include <osg/Matrix>
#include <osg/Quat>
#include <osg/ClippingVolume>
namespace osg { namespace osg {
/** Camera class for encapsulating the view position and orientation. /** Camera class for encapsulating the view position and orientation and
* This is the first implementation of osg::Camera class and * projection (lens) used. Creates a projection and modelview matrices
* currently is a perspective camera, but in future will be * which can be used to set OpenGL's PROJECTION and MODELVIEW matrices
* a base class from which PerpsectivCamera,FrustumCamera and OrthoCamera * represectively.
* will be derived.
*/ */
class SG_EXPORT Camera: public osg::Referenced class SG_EXPORT Camera: public osg::Referenced
{ {
@ -20,19 +22,91 @@ class SG_EXPORT Camera: public osg::Referenced
Camera(); Camera();
virtual ~Camera(); virtual ~Camera();
/** Range of projection types.
* OTHO2D is a special case of OTHO where the near and far planes
* are equal to -1 and 1 respectively.
* PRESPECTIVE is a special case of FRUSTUM where the left & right
* and bottom and top and symetrical.*/
enum ProjectionType
{
ORTHO,
ORTHO2D,
FRUSTUM,
PERSPECTIVE
};
/** /** Get the projection type set by setOtho,setOtho2D,setFrustum,
* Set field of view and window aspect ratio. * and set perspective methods.*/
* The parameters have the same meaning as their counterparts const ProjectionType getProjectionType() const { return _projectionType; }
* in gluPerspective(fovy,aspectRatio
*/
void setFieldOfView(double fovy,double aspectRatio);
void setFieldOfViewY(double fovy) { _fovy = fovy; } /** Set a orthographics projection. See glOrtho for further details.*/
double getFieldOfViewY() const { return _fovy; } void setOrtho(const double left, const double right,
const double bottom, const double top,
const double zNear, const double zFar);
void setAspectRatio(double aspectRatio) { _aspectRatio = aspectRatio; } /** Set a 2D orthographics projection. See gluOrtho2D for further details.*/
double getAspectRatio() const { return _aspectRatio; } void setOrtho2D(const double left, const double right,
const double bottom, const double top);
/** Set a perspective projection. See glFrustum for further details.*/
void setFrustum(const double left, const double right,
const double bottom, const double top,
const double zNear, const double zFar);
/** Set a sysmetical perspective projection, See gluPerspective for further details.
* Aspect ratio is defined as width/height.*/
void setPerspective(const double fovy,const double aspectRatio,
const double zNear, const double zFar);
/** Set the near and far clipping planes.*/
void setNearFar(const double zNear, const double zFar);
/** Use in combination with adjustAspectRatio, to control
* the change in frustum clipping planes to account for
* changes in windows aspect ratio,*/
enum AdjustAxis
{
ADJUST_VERTICAL,
ADJUST_HORIZONTAL
};
/** Adjust the clipping planes to account for a new window aspcect ratio.
* Typicall used after resizeing a window. Aspect ratio is defined as
* width/height.*/
void adjustAspectRatio(const double newAspectRatio, const AdjustAxis aa = ADJUST_HORIZONTAL);
const double left() const;
const double right() const;
const double top() const;
const double bottom() const;
const double zNear() const;
const double zFar() const;
/** Calculate and return the equivilant fovx for the current project setting.
* This value is only valid for when a symetric persepctive projection exists.
* i.e. getProjectionType()==PERSPECTIVE.*/
const double calc_fovy() const;
/** Calculate and return the equivilant fovy for the current project setting.
* This value is only valid for when a symetric persepctive projection exists.
* i.e. getProjectionType()==PERSPECTIVE.*/
const double calc_fovx() const;
/** Calculate and return the projection aspect ratio.
* Aspect ratio is defined as width/height.*/
const double calc_aspectRatio() const;
const Matrix& getProjectionMatrix() const;
enum LookAtType
{
USE_HOME_POSITON,
USE_EYE_AND_QUATERNION,
USE_EYE_CENTER_AND_UP
};
const LookAtType getLookAtType() const { return _lookAtType; }
/** /**
* hardwired home view for now, looking straight down the * hardwired home view for now, looking straight down the
@ -41,96 +115,171 @@ class SG_EXPORT Camera: public osg::Referenced
void home(); void home();
/** /**
* Set the View, the up vector should be orthogonal to the * Set the View, the up vector should be orthogonal to the look vector.
* look vector. * setView is now mapped to setLookAt(eye,center,up), and is only
* kept for backwards compatibility.
*/ */
void setView(Vec3 eyePoint, void setView(const Vec3& eyePoint,
Vec3 lookPoint, const Vec3& lookPoint,
Vec3 upVector); const Vec3& upVector);
/** get the eyepoint. */ /** set the position and orientaion of the camera, using the same convention as
const Vec3& getEyePoint() const {return _eyePoint;} * gluLookAt.
/** get the lookpoint. */
const Vec3& getLookPoint() const {return _lookPoint;}
/** which way is up? */
const Vec3& getUpVector() const {return _upVector;}
/** calculate side vector.*/
Vec3 getSideVector() const
{
Vec3 sv = (_lookPoint-_eyePoint)^_upVector;
sv.normalize();
return sv;
}
/** calculate look vector.*/
Vec3 getLookVector() const
{
Vec3 lv = (_lookPoint-_eyePoint);
lv.normalize();
return lv;
}
/** calculate focal distance.*/
float getFocalDistance() const
{
return (_lookPoint-_eyePoint).length();
}
/** set the near plane. */
void setNearPlane(double nearPlane) {_nearPlane=nearPlane;}
/**get the near plane. */
double getNearPlane() const {return _nearPlane;}
/** set the far plane. */
void setFarPlane(double farPlane) {_farPlane=farPlane;}
/** get the far plane. */
double getFarPlane() const {return _farPlane;}
/** Set up the OpenGL GL_PROJECTION matrix.
Enters the GL_PROJECTION mode, sets up matrix, then
resets model GL_MODELVIEW, which is by OpenGL convention the default.*/
void draw_PROJECTION() const;
/** Set up the OpenGL GL_MODELVIEW matrix.
* Enters the GL_MODELVIEW mode, sets matrix to identity
* and then sets matrix up according to camera, eye point, center
* point and upvector.
*/ */
void draw_MODELVIEW() const; void setLookAt(const Vec3& eye,
const Vec3& center,
const Vec3& up);
/** set the position and orientaion of the camera, using the same convention as
* gluLookAt.
*/
void setLookAt(const double eyeX, const double eyeY, const double eyeZ,
const double centerX, const double centerY, const double centerZ,
const double upX, const double upY, const double upZ);
/** post multiple the existing eye point and orientation by matrix.
/** post multiply a camera by matrix.*/ * note, does not affect any ModelTransforms that are applied.*/
void mult(const Camera& camera,const Matrix& m); void transformLookAt(const Matrix& matrix);
/** pre multiply a camera by matrix.*/
void mult(const Matrix& m,const Camera& camera);
void ensureOrthogonalUpVector(); void ensureOrthogonalUpVector();
/** get the eye point. */
inline const Vec3& getEyePoint() const { return _eye; }
private: /** get the center point. */
inline const Vec3& getCenterPoint() const { return _center; }
/** get the up vector */
inline const Vec3& getUpVector() const { return _up; }
/** calculate look vector.*/
const Vec3 getLookVector() const;
/** calculate side vector.*/
const Vec3 getSideVector() const;
/** get focal distance.*/
inline const float getFocalLength() const { return _focalLength; }
enum TransformMode
{
EYE_TO_MODEL,
MODEL_TO_EYE,
NO_ATTACHED_TRANSFORM
};
/** Attach a transform matrix which is applied after the camera look at.
* The attached matrix can work in two ways, either as transform of the eye
* into the model coordinates - EYE_TO_MODEL, or as a transform of the
* model to the eye - MODEL_TO_EYE. The former is equivilant to attaching
* a camera internal to the scene graph. The later is equivilant to adding
* a osg::Transform at root of the scene to move the scene to the eye point.
* Typical used in conjunction with the LookAt position set to home,
* in which case it is simply treated as a model view matrix.
* If the same behaviour as IRIS Performer's setViewMat is desired
* then set the LookAt to be (0,0,0),(0,1,0),(0,0,1) since Performer's
* default direction is along the y axis, unlike OpenGL and the default OSG.
* If modelTransfor is NULL then do not use any model transform - just use the
* basic LookAt values.
* note: Camera internals maintains the both EYE_TO_MODEL and MODEL_TO_EYE
* internally and ensures that they are the inverse of one another. However,
* if you modify the attached transform then you must call dirtyTransform, to
* allow the OSG to update matrices accordingly.*/
void attachTransform(const TransformMode mode, Matrix* modelTransform=0);
/** must be called after you modify an attachedTransform. */
void dirtyTransform();
Matrix* getTransform(const TransformMode mode);
const Matrix* getTransform(const TransformMode mode) const;
const Vec3 getEyePoint_Model() const;
const Vec3 getCenterPoint_Model() const;
const Vec3 getLookVector_Model() const;
const Vec3 getUpVector_Model() const;
const Vec3 getSideVector_Model() const;
/** Get the ModelView matrix.
* If a ModelTransform is supplied then the ModelView matrix is
* created by multipling the current LookAt by ModelTransform.
* Otherwise it is simply created by using the current LookAt,
* equivialent to using gluLookAt.*/
const Matrix& getModelViewMatrix() const;
void setUseNearClippingPlane(const bool use);
const bool getUseNearClippingPlane() const { return _useNearClippingPlane; }
void setUseFarClippingPlane(const bool use);
const bool getUseFarClippingPlane() const { return _useFarClippingPlane; }
/** get the view frustum clipping in model coordinates */
const ClippingVolume& getClippingVolume() const;
/** Map object coordinates into windows coordinates.
* Equivilant to gluProject(...). */
const bool project(const Vec3& obj,const int* viewport,Vec3& win) const;
/** Map window coordinates into object coordinates.
* Equivilant to gluUnProject(...). */
const bool unproject(const Vec3& win,const int* viewport,Vec3& obj) const;
protected:
// Disallow copy construction & assignment (for now) // Disallow copy construction & assignment (for now)
Camera(const Camera&); Camera(const Camera&);
Camera& operator=(const Camera&); Camera& operator=(const Camera&);
Vec3 _eyePoint; // projection details.
Vec3 _lookPoint; ProjectionType _projectionType;
Vec3 _upVector;
// note, in Frustum/Perspective mode these values are scaled
// by the zNear from when they were initialised to ensure that
// subsequent changes in zNear do not affect them.
double _left;
double _right;
double _bottom;
double _top;
double _zNear;
double _zFar;
// look at details.
LookAtType _lookAtType;
Vec3 _eye;
Vec3 _center;
Vec3 _up;
double _focalLength;
TransformMode _attachedTransformMode;
ref_ptr<Matrix> _eyeToModelTransform;
ref_ptr<Matrix> _modelToEyeTransform;
// flags to determin if near and far clipping planes are required.
bool _useNearClippingPlane;
bool _useFarClippingPlane;
// cached matrix and clipping volume derived from above settings.
mutable bool _dirty;
mutable ref_ptr<Matrix> _projectionMatrix;
mutable ref_ptr<Matrix> _modelViewMatrix;
mutable ClippingVolume _clippingVolume;
mutable ref_ptr<Matrix> _MP;
mutable ref_ptr<Matrix> _inverseMP;
void calculateMatricesAndClippingVolume() const;
double _fovy;
double _aspectRatio;
double _nearPlane; // No Dougal, these are small... but those...
double _farPlane; // are far away
}; };

View File

@ -1,47 +1,46 @@
#ifndef OSG_CULLFACE #ifndef OSG_CULLFACE
#define OSG_CULLFACE 1 #define OSG_CULLFACE 1
#include <osg/Export>
#include <osg/Object>
#include <osg/GL> #include <osg/GL>
#include <osg/StateAttribute>
#include <osg/StateSet>
namespace osg { namespace osg {
/** Class to globally enable/disable OpenGL's polygon culling mode /** Class to globally enable/disable OpenGL's polygon culling mode=.
(GL_CULL_FACE).
*/ */
class SG_EXPORT CullFace : public Object class SG_EXPORT CullFace : public StateAttribute
{ {
public : public :
CullFace();
virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const CullFace*>(obj)!=0L; }
virtual Object* clone() const { return new CullFace(); }
virtual const char* className() const { return "CullFace"; }
virtual const Type getType() const { return CULLFACE; }
virtual void setStateSetModes(StateSet& ds,const GLModeValue value) const
{
ds.setMode(GL_CULL_FACE,value);
}
enum Mode { enum Mode {
FRONT = GL_FRONT, FRONT = GL_FRONT,
BACK = GL_BACK, BACK = GL_BACK,
FRONT_AND_BACK = GL_FRONT_AND_BACK FRONT_AND_BACK = GL_FRONT_AND_BACK
}; };
CullFace(); inline void setMode(const Mode mode) { _mode = mode; }
static CullFace* instance();
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<CullFace*>(obj)!=NULL; }
virtual Object* clone() const { return new CullFace(); }
virtual const char* className() const { return "CullFace"; }
void setMode(Mode mode) { _mode = mode; } inline const Mode getMode() const { return _mode; }
/** Enable the polygon culling mode.*/ virtual void apply(State& state) const;
static void enable();
/** Disable the polygon culling mode.*/
static void disable();
void apply();
protected: protected:
virtual ~CullFace(); virtual ~CullFace();
virtual bool readLocalData(Input& fr);
virtual bool writeLocalData(Output& fw);
Mode _mode; Mode _mode;
}; };

View File

@ -5,18 +5,6 @@
#pragma warning( disable : 4251 ) #pragma warning( disable : 4251 )
#pragma warning( disable : 4275 ) #pragma warning( disable : 4275 )
#pragma warning( disable : 4786 ) #pragma warning( disable : 4786 )
/* Define NULL pointer value */
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
#endif #endif
#if defined(_MSC_VER) #if defined(_MSC_VER)
@ -29,4 +17,14 @@
# define SG_EXPORT # define SG_EXPORT
#endif #endif
/* Define NULL pointer value */
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
#endif #endif

View File

@ -1,60 +1,59 @@
#ifndef OSG_FOG #ifndef OSG_FOG
#define OSG_FOG 1 #define OSG_FOG 1
#include <osg/GL>
#include <osg/Vec4>
#include <osg/Types> #include <osg/Types>
#include <osg/Object> #include <osg/Vec4>
#include <osg/StateAttribute>
#include <osg/StateSet>
namespace osg { namespace osg {
/** Fog - encapsulates OpenGL fog state. */ /** Fog - encapsulates OpenGL fog state. */
class SG_EXPORT Fog : public Object class SG_EXPORT Fog : public StateAttribute
{ {
public : public :
enum FogMode { Fog();
virtual Object* clone() const { return new Fog(); }
virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const Fog*>(obj)!=NULL; }
virtual const char* className() const { return "Fog"; }
virtual const Type getType() const { return FOG; }
virtual void setStateSetModes(StateSet& ds,const GLModeValue value) const
{
ds.setMode(GL_FOG,value);
}
enum Mode {
LINEAR = GL_LINEAR, LINEAR = GL_LINEAR,
EXP = GL_EXP, EXP = GL_EXP,
EXP2 = GL_EXP2 EXP2 = GL_EXP2
}; };
Fog( void ); inline void setMode( const Mode mode ) { _mode = mode; }
static Fog* instance(); inline Mode getMode() const { return _mode; }
virtual Object* clone() const { return new Fog(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<Fog*>(obj)!=NULL; }
virtual const char* className() const { return "Fog"; }
static void enable( void ); inline void setDensity( const float density ) { _density = density; }
static void disable( void ); inline const float getDensity() const { return _density; }
void apply( void );
void setMode( uint mode ) { _mode = mode; } inline void setStart( const float start ) { _start = start; }
uint getMode( void ) { return _mode; } inline const float getStart() const { return _start; }
void setDensity( float density ) { _density = density; } inline void setEnd( const float end ) { _end = end; }
float getDensity( void ) { return _density; } inline const float getEnd() const { return _end; }
void setStart( float start ) { _start = start; } inline void setColor( const Vec4 &color ) { _color = color; }
float getStart( void ) { return _start; } inline const Vec4& getColor() const { return _color; }
void setEnd( float end ) { _end = end; } virtual void apply(State& state) const;
float getEnd( void ) { return _end; }
void setColor( Vec4 &color )
{
_color[0] = color[0];
_color[1] = color[1];
_color[2] = color[2];
_color[3] = color[3];
}
protected : protected :
virtual ~Fog( void ); virtual ~Fog();
uint _mode; Mode _mode;
float _density; float _density;
float _start; float _start;
float _end; float _end;

View File

@ -1,71 +1,62 @@
#ifndef OSG_GL #ifndef OSG_GL
#define OSG_GL 1 #define OSG_GL 1
#ifdef WIN32 #ifndef WIN32
// this works with no problems
// #ifndef _WINDOWS_
// #define WIN32_LEAN_AND_MEAN
// #include <windows.h>
// #endif
// follows lifted from glut.h, to avoid including <windows.h>
//#if defined(_WIN32)
// GLUT 3.7 now tries to avoid including <windows.h>
// to avoid name space pollution, but Win32's <GL/gl.h>
// needs APIENTRY and WINGDIAPI defined properly.
# if 0
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
# else
// XXX This is from Win32's <windef.h>
# ifndef APIENTRY
# define GLUT_APIENTRY_DEFINED
# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
# define APIENTRY __stdcall
# else
# define APIENTRY
# endif
# endif
// XXX This is from Win32's <winnt.h>
# ifndef CALLBACK
# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS)
# define CALLBACK __stdcall
# else
# define CALLBACK
# endif
# endif
// XXX This is from Win32's <wingdi.h> and <winnt.h>
# ifndef WINGDIAPI
# define GLUT_WINGDIAPI_DEFINED
# define WINGDIAPI __declspec(dllimport)
# endif
// XXX This is from Win32's <ctype.h>
# ifndef _WCHAR_T_DEFINED
typedef unsigned short wchar_t;
# define _WCHAR_T_DEFINED
# endif
# endif
// non windows, doesn't require nonesense as seen below :-)
#ifndef __gl_h_ #ifndef __gl_h_
#include <GL/gl.h> #include <GL/gl.h>
#endif #endif
#ifndef __glu_h__
#include <GL/glu.h> // required for compatibility with glext.h sytle function definitions of
// OpenGL extensions, such as in src/osg/Point.cpp.
#ifndef APIENTRY
#define APIENTRY
#endif #endif
#else #else
// GL_GLEXT_LEGACY required by some Linux OpenGL implementations // Under windows avoid including <windows.h>
// to allow compilation of glPointParameterfEXT. // to avoid name space pollution, but Win32's <GL/gl.h>
#define GL_GLEXT_LEGACY 1 // needs APIENTRY and WINGDIAPI defined properly.
// F
# if 0
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
# else
// XXX This is from Win32's <windef.h>
# ifndef APIENTRY
# define GLUT_APIENTRY_DEFINED
# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
# define APIENTRY __stdcall
# else
# define APIENTRY
# endif
# endif
// XXX This is from Win32's <winnt.h>
# ifndef CALLBACK
# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS)
# define CALLBACK __stdcall
# else
# define CALLBACK
# endif
# endif
// XXX This is from Win32's <wingdi.h> and <winnt.h>
# ifndef WINGDIAPI
# define GLUT_WINGDIAPI_DEFINED
# define WINGDIAPI __declspec(dllimport)
# endif
// XXX This is from Win32's <ctype.h>
# ifndef _WCHAR_T_DEFINED
typedef unsigned short wchar_t;
# define _WCHAR_T_DEFINED
# endif
# endif
#ifndef __gl_h_
#include <GL/gl.h> #include <GL/gl.h>
#include <GL/glu.h> #endif
#include <GL/glx.h>
#endif #endif
#endif // __osgGL_h #endif // __osgGL_h

View File

@ -1,26 +1,21 @@
#ifndef OSG_GEOSET #ifndef OSG_GEOSET
#define OSG_GEOSET 1 #define OSG_GEOSET 1
#include <osg/OSG>
#include <osg/Vec2> #include <osg/Vec2>
#include <osg/BoundingBox> #include <osg/Vec3>
#include <osg/Object> #include <osg/Vec4>
#include <osg/GeoState> #include <osg/Drawable>
namespace osg { namespace osg {
class Input;
class Output;
/** Encapsulates OpenGL drawing primitives, geometry and /** Encapsulates OpenGL drawing primitives, geometry and
optional binding of normal, color and texture coordinates. Used optional binding of normal, color and texture coordinates. Used
for representing the visible objects in the scene. State attributes for representing the visible objects in the scene. State attributes
for a GeoSet are maintained in GeoState which the GeoSet maintains for a GeoSet are maintained in StateSet which the GeoSet maintains
a referenced counted pointer to. Both GeoSet's and GeoState's can a referenced counted pointer to. Both GeoSet's and StateSet's can
be shared for optimal memory usage and graphics performance. be shared for optimal memory usage and graphics performance.
*/ */
class SG_EXPORT GeoSet : public Object class SG_EXPORT GeoSet : public Drawable
{ {
public: public:
@ -67,201 +62,275 @@ class SG_EXPORT GeoSet : public Object
IA_T4F_C4F_N3F_V4F IA_T4F_C4F_N3F_V4F
}; };
struct IndexPointer
{
uint _size;
bool _is_ushort;
union
{
ushort* _ushort;
uint* _uint;
} _ptr;
IndexPointer() { _size=0;_is_ushort=true;_ptr._ushort = (ushort*)0; }
inline const bool operator == (const IndexPointer& ip) const
{
return _size == ip._size &&
_is_ushort == ip._is_ushort &&
_ptr._ushort == ip._ptr._ushort;
}
inline const bool valid() const
{
return _ptr._ushort != (ushort*)0;
}
inline const bool null() const
{
return _ptr._ushort == (ushort*)0;
}
inline void setToNull()
{
_size = 0;
_is_ushort = true;
_ptr._ushort = (ushort*)0;
}
inline void set(uint size,ushort* data)
{
_size = size;
_is_ushort = true;
_ptr._ushort = data;
}
void set(const uint size,uint* data)
{
_size = size;
_is_ushort = false;
_ptr._uint = data;
}
inline const uint maxIndex() const
{
uint max = 0;
if (_is_ushort)
{
for(uint ai = 0; ai < _size; ai++ )
if( _ptr._ushort[ai] > max ) max = _ptr._ushort[ai];
}
else
{
for(uint ai = 0; ai < _size; ai++ )
if( _ptr._uint[ai] > max ) max = _ptr._uint[ai];
}
return max;
}
inline const uint operator [] (const uint pos) const
{
if (_is_ushort) return _ptr._ushort[pos];
else return _ptr._uint[pos];
}
};
GeoSet(); GeoSet();
static GeoSet* instance();
virtual Object* clone() const { return new GeoSet(); } virtual Object* clone() const { return new GeoSet(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<GeoSet*>(obj)!=NULL; } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const GeoSet*>(obj)!=NULL; }
virtual const char* className() const { return "Geoset"; } virtual const char* className() const { return "GeoSet"; }
// data access methods. // data access methods.
void setNumPrims( int n ) { _numprims = n; } inline void setNumPrims( const int n ) { _numprims = n; }
int getNumPrims( void ) { return _numprims; } inline const int getNumPrims() const { return _numprims; }
void setPrimType( PrimitiveType type ); void setPrimType( const PrimitiveType type );
PrimitiveType getPrimType( void ) { return _primtype; } inline const PrimitiveType getPrimType() const { return _primtype; }
void setPrimLengths( int *lens ) { _primLengths = lens; } inline void setPrimLengths( int *lens ) { _primLengths = lens; }
int *getPrimLengths( void ) { return _primLengths; } inline int *getPrimLengths() { return _primLengths; }
inline const int *getPrimLengths() const { return _primLengths; }
void computeNumVerts(); void computeNumVerts();
/** get the number of coords required by the defined primitives. */ /** get the number of coords required by the defined primitives. */
int getNumCoords() { return _numcoords; } inline const int getNumCoords() const { return _numcoords; }
/** get a pointer to Vec3 coord array. */ /** get a pointer to Vec3 coord array. */
Vec3* getCoords() { return _coords; } inline Vec3* getCoords() { return _coords; }
/** get a const pointer to Vec3 coord array. */
inline const Vec3* getCoords() const { return _coords; }
/** get the number of indices required by the defined primitives. */ /** get the number of indices required by the defined primitives. */
int getNumIndices() { return _numindices; } inline const int getNumCoordIndices() const { return _cindex._size; }
/** get the coord index array. */ /** get the coord index array. */
ushort* getCIndex() { return _cindex; } inline IndexPointer& getCoordIndices() { return _cindex; }
/** get the const coord index array. */
inline const IndexPointer& getCoordIndices() const { return _cindex; }
/** set the coords (i.e the geometry) of the geoset.*/ /** set the coords (i.e the geometry) of the geoset.*/
void setCoords( Vec3 *cp ); void setCoords( Vec3 *cp );
/** set the coords (i.e the geometry) and indices of the geoset.*/ /** set the coords (i.e the geometry) and ushort indices of the geoset.
To reduce memory footprint and bandwidth for small datasets it is
recommended the ushort undices are used instead of unit indices.*/
void setCoords( Vec3 *cp, ushort *ci ); void setCoords( Vec3 *cp, ushort *ci );
/** set the coords (i.e the geometry) and uint indices of the geoset.
Unless your data set exceeds 65536 indices prefer ushort indices
over uint indices, only use this unit indices version if neccessary.*/
void setCoords( Vec3 *cp, uint *ci );
/** set the coords (i.e the geometry) and indices of the geoset.*/
void setCoords( Vec3 *cp, IndexPointer& ip );
/** get the number of normals required by the defined primitives and normals binding.*/ /** get the number of normals required by the defined primitives and normals binding.*/
int getNumNormals() { return _numnormals; } inline const int getNumNormals() const { return _numnormals; }
/** get a pointer to Vec3 normal array. */ /** get a pointer to Vec3 normal array. */
Vec3* getNormals() { return _normals; } inline Vec3* getNormals() { return _normals; }
/** get a const pointer to Vec3 normal array. */
inline const Vec3* getNormals() const { return _normals; }
/** get the number of normal indices required by the defined primitives and normals binding.*/ /** get the number of normal indices required by the defined primitives and normals binding.*/
int getNumNIndices() { return _numnindices; } inline int getNumNormalIndices() const { return _nindex._size; }
/** get the normal index array. */ /** get the normal index array. */
ushort* getNIndex() { return _nindex; } inline IndexPointer& getNormalIndices() { return _nindex; }
/** get the const normal index array. */
inline const IndexPointer& getNormalIndices() const { return _nindex; }
/** set the normals of the geoset.*/ /** set the normals of the geoset.*/
void setNormals( Vec3 *np ); void setNormals( Vec3 *np );
/** set the normals and normal indices of the geoset.*/ /** set the normals and normal indices of the geoset.*/
void setNormals( Vec3 *np, ushort *ni ); void setNormals( Vec3 *np, ushort *ni );
/** set the normals and normal indices of the geoset.*/
void setNormals( Vec3 *np, uint *ni );
/** set the normals and normal indices of the geoset.*/
void setNormals( Vec3 *np, IndexPointer& ip );
/** set the normals binding to the vertices/primitives/overall.*/ /** set the normals binding to the vertices/primitives/overall.*/
void setNormalBinding( BindingType binding ); void setNormalBinding( const BindingType binding );
BindingType getNormalBinding() { return _normal_binding; } inline const BindingType getNormalBinding() const { return _normal_binding; }
/** get the number of colors required by the defined primitives and color binding.*/ /** get the number of colors required by the defined primitives and color binding.*/
int getNumColors() { return _numcolors; } inline const int getNumColors() const { return _numcolors; }
/** get a pointer to Vec4 color array. */ /** get a pointer to Vec4 color array. */
Vec4* getColors() { return _colors; } inline Vec4* getColors() { return _colors; }
/** get a pointer to Vec4 color array. */
inline const Vec4* getColors() const { return _colors; }
/** get the number of colors indices required by the defined primitives and color binding.*/ /** get the number of colors indices required by the defined primitives and color binding.*/
int getNumCIndices() { return _numcindices; } inline int getNumColorIndices() const { return _colindex._size; }
/** get the color index array. */ /** get the color index array. */
ushort* getColIndex() { return _colindex; } inline IndexPointer& getColorIndices() { return _colindex; }
/** get the const color index array. */
inline const IndexPointer& getColorIndices() const { return _colindex; }
/** set the colors of the geoset.*/ /** set the colors of the geoset.*/
void setColors( Vec4 *lp ); void setColors( Vec4 *cp );
/** set the colors and color indices of the geoset.*/ /** set the colors and color indices of the geoset.*/
void setColors( Vec4 *lp, ushort *li ); void setColors( Vec4 *cp, ushort *li );
/** set the colors and color indices of the geoset.*/
void setColors( Vec4 *cp, uint *li );
/** set the colors and color indices of the geoset.*/
void setColors( Vec4 *cp, IndexPointer& ip );
/** set the color binding to the vertices/primitives/overall.*/ /** set the color binding to the vertices/primitives/overall.*/
void setColorBinding( BindingType binding ); void setColorBinding( BindingType binding );
BindingType getColorBinding() { return _color_binding; } inline BindingType getColorBinding() const { return _color_binding; }
/** get the number of texture coords required by the defined primitives and textures binding.*/ /** get the number of texture coords required by the defined primitives and textures binding.*/
int getNumTCoords() { return _numtcoords; } inline const int getNumTextureCoords() const { return _numtcoords; }
/** get a pointer to Vec4 color array. */ /** get a pointer to Vec4 color array. */
Vec2* getTCoords() { return _tcoords; } inline Vec2* getTextureCoords() { return _tcoords; }
/** get a pointer to Vec4 color array. */
inline const Vec2* getTextureCoords() const { return _tcoords; }
/** get the number of texture coord indices required by the defined primitives and texture binding.*/ /** get the number of texture coord indices required by the defined primitives and texture binding.*/
int getNumTIndices() { return _numtindices; } inline const int getNumTextureIndices() const { return _tindex._size; }
/** get the texture index array. */ /** get the texture index array. */
ushort* getTIndex() { return _tindex; } inline IndexPointer& getTextureIndices() { return _tindex; }
/** get the texture index array. */
inline const IndexPointer& getTextureIndices() const { return _tindex; }
/** set the texture coords of the geoset.*/ /** set the texture coords of the geoset.*/
void setTextureCoords( Vec2 *tc ); void setTextureCoords( Vec2 *tc );
/** set the texture coords and texture coord indices of the geoset.*/ /** set the texture coords and texture coord indices of the geoset.*/
void setTextureCoords( Vec2 *tc, ushort *ti ); void setTextureCoords( Vec2 *tc, ushort *ti );
/** set the texture coords and texture coord indices of the geoset.*/
void setTextureCoords( Vec2 *tc, uint *ti );
/** set the texture coords and texture indices of the geoset.*/
void setTextureCoords( Vec2 *tc, IndexPointer& ip );
/** set the texture coord binding to the vertices/primitives/overall.*/ /** set the texture coord binding to the vertices/primitives/overall.*/
void setTextureBinding( BindingType binding ); void setTextureBinding( const BindingType binding );
BindingType getTextureBinding() { return _texture_binding; } inline const BindingType getTextureBinding() const { return _texture_binding; }
void setInterleavedArray( InterleaveArrayType format, float *ia ); /** get the number of texture coords required by the defined primitives and textures binding.*/
void setInterleavedArray( InterleaveArrayType format, float *ia, ushort *iai ); inline const int getNumInterleavedCoords() const { return _numcoords; }
/** get a pointer to interleaved float array. */
void setGeoState(GeoState *state) { _state = state; } inline void* getInterleavedArray() { return _iarray; }
GeoState* getGeoState() const { return _state.get();} /** get a const pointer to interleaved float array. */
inline const void* getInterleavedArray() const { return _iarray; }
/** get the number of texture coord indices required by the defined primitives and texture binding.*/
/** When set to true, force the draw method to use OpenGL Display List for rendering. inline const int getNumIterleavedIndices() const { return _iaindex._size; }
If false rendering directly. If the display list has not been already /** get the texture index array. */
compile the next call to draw will automatically create the display list.*/ inline IndexPointer& getInterleavedIndices() { return _iaindex; }
void setUseDisplayList(bool flag); /** get the interleaved index array. */
inline const IndexPointer& getInterleavedIndices() const { return _iaindex; }
/** Return whether OpenGL display lists are being used for rendering.*/ /** get the interleaved array storage format. */
bool getUseDisplayList() { return _useDisplayList; } inline const InterleaveArrayType getInterleavedFromat() const { return _iaformat; }
/** Force a recompile on next draw() of any OpenGL display list associated with this geoset.*/
void dirtyDisplayList();
/** get bounding box of geoset.
* Note, now made virtual to make it possible to implement user-drawn
* objects albiet so what crudely, to be improved later.
*/
virtual const BoundingBox& getBound() ;
/** draw geoset.
* If the geoset has _useDisplayList set to true then use an OpenGL display
* list, automatically compiling one if required.
* Otherwise call drawImmediateMode().
* Note, draw method should not be overiden in subclasses as it
* manages the optional display list.
*/
void draw( void );
/** set the interleaved arrays of the geoset.*/
void setInterleavedArray( const InterleaveArrayType format, float *ia );
void setInterleavedArray( const InterleaveArrayType format, float *ia, ushort *iai );
void setInterleavedArray( const InterleaveArrayType format, float *ia, uint *iai );
void setInterleavedArray( const InterleaveArrayType format, float *ia, IndexPointer& iai );
/** draw geoset directly ignoring an OpenGL display list which could be attached. /** draw geoset directly ignoring an OpenGL display list which could be attached.
* This is the internal draw method which does the drawing itself, * This is the internal draw method which does the drawing itself,
* and is the method to override when deriving from GeoSet for user-drawn objects. * and is the method to override when deriving from GeoSet for user-drawn objects.
*/ */
virtual void drawImmediateMode(); virtual void drawImmediateMode(State& state);
/** Immediately compile this geoset into an OpenGL Display List, set _useDisplayList to true.*/ const bool check() const;
void compile( void );
bool check();
protected: protected:
GeoSet(const GeoSet&):Object() {} GeoSet(const GeoSet&):Drawable() {}
GeoSet& operator = (const GeoSet&) { return *this;} GeoSet& operator = (const GeoSet&) { return *this;}
virtual ~GeoSet(); virtual ~GeoSet();
bool matchBindingTypeStr(const char* str,BindingType& mode); virtual const bool computeBound() const;
const char* getBindingTypeStr(BindingType mode);
virtual bool readLocalData(Input& fr);
virtual bool writeLocalData(Output& fw);
private :
int _numprims; int _numprims;
PrimitiveType _primtype; PrimitiveType _primtype;
int _needprimlen; int _needprimlen;
unsigned int _oglprimtype; unsigned int _oglprimtype;
int *_primLengths; int *_primLengths;
int _numverts;
unsigned char _primlength; unsigned char _primlength;
unsigned char _flat_shaded_skip; unsigned char _flat_shaded_skip;
int _numcoords; int _numcoords;
int _numindices;
Vec3 *_coords; Vec3 *_coords;
ushort *_cindex; IndexPointer _cindex;
int _numnormals;
int _numnindices;
Vec3 *_normals;
ushort *_nindex;
BindingType _normal_binding; BindingType _normal_binding;
int _numnormals;
Vec3 *_normals;
IndexPointer _nindex;
int _numcolors;
int _numcindices;
Vec4 *_colors;
ushort *_colindex;
BindingType _color_binding; BindingType _color_binding;
int _numcolors;
Vec4 *_colors;
IndexPointer _colindex;
int _numtcoords;
int _numtindices;
Vec2 *_tcoords;
ushort *_tindex;
BindingType _texture_binding; BindingType _texture_binding;
int _numtcoords;
Vec2 *_tcoords;
IndexPointer _tindex;
void *_iarray; void *_iarray;
ushort *_iaindex; IndexPointer _iaindex;
InterleaveArrayType _iaformat; InterleaveArrayType _iaformat;
unsigned int _ogliaformat; unsigned int _ogliaformat;
/** return the bbbbffff composition required for an interleaved array row.*/
const char* getInterleavedRowComposition(InterleaveArrayType at) const;
/** return the number of bytes required for an interleaved array row.*/
int getInterleavedRowLength(InterleaveArrayType at) const;
int _fast_path; int _fast_path;
ref_ptr<GeoState> _state;
bool _useDisplayList;
uint _globj;
BoundingBox _bbox;
int _bbox_computed;
void computeBound( void );
void set_fast_path( void ); void set_fast_path( void );
void draw_fast_path( void ); void draw_fast_path( void );
void draw_alternate_path( void ); void draw_alternate_path( void );
@ -279,9 +348,11 @@ void for_each_triangle(GeoSet& gset,T& op)
case(GeoSet::TRIANGLE_STRIP): case(GeoSet::TRIANGLE_STRIP):
case(GeoSet::FLAT_TRIANGLE_STRIP): case(GeoSet::FLAT_TRIANGLE_STRIP):
{ {
if (gset.getCIndex()) if (gset.getCoordIndices().valid())
{ {
ushort* iptr = gset.getCIndex(); if (gset.getCoordIndices()._is_ushort)
{
ushort* iptr = gset.getCoordIndices()._ptr._ushort;
Vec3* vptr = gset.getCoords(); Vec3* vptr = gset.getCoords();
const int numPrim = gset.getNumPrims(); const int numPrim = gset.getNumPrims();
for(int i=0; i<numPrim; ++i ) for(int i=0; i<numPrim; ++i )
@ -290,13 +361,37 @@ void for_each_triangle(GeoSet& gset,T& op)
ushort* iend = iptr+primLength; ushort* iend = iptr+primLength;
for(int j = 2; j < primLength; j++ ) for(int j = 2; j < primLength; j++ )
{ {
if( !(j%2) )
op(vptr[*(iptr)],vptr[*(iptr+1)],vptr[*(iptr+2)]); op(vptr[*(iptr)],vptr[*(iptr+1)],vptr[*(iptr+2)]);
else
op(vptr[*(iptr)],vptr[*(iptr+2)],vptr[*(iptr+1)]);
++iptr; ++iptr;
} }
iptr=iend; iptr=iend;
} }
} }
else else
{
uint* iptr = gset.getCoordIndices()._ptr._uint;
Vec3* vptr = gset.getCoords();
const int numPrim = gset.getNumPrims();
for(int i=0; i<numPrim; ++i )
{
const int primLength = gset.getPrimLengths()[i];
uint* iend = iptr+primLength;
for(int j = 2; j < primLength; j++ )
{
if( !(j%2) )
op(vptr[*(iptr)],vptr[*(iptr+1)],vptr[*(iptr+2)]);
else
op(vptr[*(iptr)],vptr[*(iptr+2)],vptr[*(iptr+1)]);
++iptr;
}
iptr=iend;
}
}
}
else
{ {
Vec3* vptr = gset.getCoords(); Vec3* vptr = gset.getCoords();
const int numPrim = gset.getNumPrims(); const int numPrim = gset.getNumPrims();
@ -306,7 +401,10 @@ void for_each_triangle(GeoSet& gset,T& op)
Vec3* vend = vptr+primLength; Vec3* vend = vptr+primLength;
for(int j = 2; j < primLength; j++ ) for(int j = 2; j < primLength; j++ )
{ {
if( !(j%2) )
op(*(vptr),*(vptr+1),*(vptr+2)); op(*(vptr),*(vptr+1),*(vptr+2));
else
op(*(vptr),*(vptr+2),*(vptr+1));
++vptr; ++vptr;
} }
vptr=vend; vptr=vend;
@ -317,9 +415,11 @@ void for_each_triangle(GeoSet& gset,T& op)
case(GeoSet::TRIANGLES): case(GeoSet::TRIANGLES):
{ {
if (gset.getCIndex()) if (gset.getCoordIndices().valid())
{ {
ushort* iptr = gset.getCIndex(); if (gset.getCoordIndices()._is_ushort)
{
ushort* iptr = gset.getCoordIndices()._ptr._ushort;
Vec3* vptr = gset.getCoords(); Vec3* vptr = gset.getCoords();
const int numPrim = gset.getNumPrims(); const int numPrim = gset.getNumPrims();
for(int i=0; i<numPrim; ++i ) for(int i=0; i<numPrim; ++i )
@ -329,6 +429,18 @@ void for_each_triangle(GeoSet& gset,T& op)
} }
} }
else else
{
uint* iptr = gset.getCoordIndices()._ptr._uint;
Vec3* vptr = gset.getCoords();
const int numPrim = gset.getNumPrims();
for(int i=0; i<numPrim; ++i )
{
op(vptr[*(iptr)],vptr[*(iptr+1)],vptr[*(iptr+2)]);
iptr+=3;
}
}
}
else
{ {
Vec3* vptr = gset.getCoords(); Vec3* vptr = gset.getCoords();
const int numPrim = gset.getNumPrims(); const int numPrim = gset.getNumPrims();
@ -343,9 +455,11 @@ void for_each_triangle(GeoSet& gset,T& op)
break; break;
case(GeoSet::QUAD_STRIP): case(GeoSet::QUAD_STRIP):
{ {
if (gset.getCIndex()) if (gset.getCoordIndices().valid())
{ {
ushort* iptr = gset.getCIndex(); if (gset.getCoordIndices()._is_ushort)
{
ushort* iptr = gset.getCoordIndices()._ptr._ushort;
Vec3* vptr = gset.getCoords(); Vec3* vptr = gset.getCoords();
const int numPrim = gset.getNumPrims(); const int numPrim = gset.getNumPrims();
for(int i=0; i<numPrim; ++i ) for(int i=0; i<numPrim; ++i )
@ -362,6 +476,25 @@ void for_each_triangle(GeoSet& gset,T& op)
} }
} }
else else
{
uint* iptr = gset.getCoordIndices()._ptr._uint;
Vec3* vptr = gset.getCoords();
const int numPrim = gset.getNumPrims();
for(int i=0; i<numPrim; ++i )
{
const int primLength = gset.getPrimLengths()[i];
uint* iend = iptr+primLength;
for(int j = 3; j < primLength; j+=2 )
{
op(vptr[*(iptr)],vptr[*(iptr+1)],vptr[*(iptr+2)]);
op(vptr[*(iptr)],vptr[*(iptr+3)],vptr[*(iptr+2)]);
iptr+=2;
}
iptr=iend;
}
}
}
else
{ {
Vec3* vptr = gset.getCoords(); Vec3* vptr = gset.getCoords();
const int numPrim = gset.getNumPrims(); const int numPrim = gset.getNumPrims();
@ -382,9 +515,11 @@ void for_each_triangle(GeoSet& gset,T& op)
break; break;
case(GeoSet::QUADS): case(GeoSet::QUADS):
{ {
if (gset.getCIndex()) if (gset.getCoordIndices().valid())
{ {
ushort* iptr = gset.getCIndex(); if (gset.getCoordIndices()._is_ushort)
{
ushort* iptr = gset.getCoordIndices()._ptr._ushort;
Vec3* vptr = gset.getCoords(); Vec3* vptr = gset.getCoords();
const int numPrim = gset.getNumPrims(); const int numPrim = gset.getNumPrims();
for(int i=0; i<numPrim; ++i ) for(int i=0; i<numPrim; ++i )
@ -395,6 +530,19 @@ void for_each_triangle(GeoSet& gset,T& op)
} }
} }
else else
{
uint* iptr = gset.getCoordIndices()._ptr._uint;
Vec3* vptr = gset.getCoords();
const int numPrim = gset.getNumPrims();
for(int i=0; i<numPrim; ++i )
{
op(vptr[*(iptr)],vptr[*(iptr+1)],vptr[*(iptr+2)]);
op(vptr[*(iptr)],vptr[*(iptr+3)],vptr[*(iptr+2)]);
iptr+=4;
}
}
}
else
{ {
Vec3* vptr = gset.getCoords(); Vec3* vptr = gset.getCoords();
const int numPrim = gset.getNumPrims(); const int numPrim = gset.getNumPrims();
@ -411,9 +559,11 @@ void for_each_triangle(GeoSet& gset,T& op)
case(GeoSet::TRIANGLE_FAN): case(GeoSet::TRIANGLE_FAN):
case(GeoSet::POLYGON): case(GeoSet::POLYGON):
{ {
if (gset.getCIndex()) if (gset.getCoordIndices().valid())
{ {
ushort* iptr = gset.getCIndex(); if (gset.getCoordIndices()._is_ushort)
{
ushort* iptr = gset.getCoordIndices()._ptr._ushort;
Vec3* vptr = gset.getCoords(); Vec3* vptr = gset.getCoords();
const int numPrim = gset.getNumPrims(); const int numPrim = gset.getNumPrims();
for(int i=0; i<numPrim; ++i ) for(int i=0; i<numPrim; ++i )
@ -434,6 +584,29 @@ void for_each_triangle(GeoSet& gset,T& op)
} }
} }
else else
{
uint* iptr = gset.getCoordIndices()._ptr._uint;
Vec3* vptr = gset.getCoords();
const int numPrim = gset.getNumPrims();
for(int i=0; i<numPrim; ++i )
{
const int primLength = gset.getPrimLengths()[i];
if (primLength>0)
{
const Vec3& start = vptr[*(iptr)];
uint* iend = iptr+primLength;
++iptr;
for(int j = 2; j < primLength; ++j )
{
op(start,vptr[*(iptr)],vptr[*(iptr+1)]);
++iptr;
}
iptr=iend;
}
}
}
}
else
{ {
Vec3* vptr = gset.getCoords(); Vec3* vptr = gset.getCoords();
const int numPrim = gset.getNumPrims(); const int numPrim = gset.getNumPrims();

View File

@ -1,70 +1,69 @@
#ifndef OSG_GEODE #ifndef OSG_GEODE
#define OSG_GEODE 1 #define OSG_GEODE 1
#include <osg/OSG>
#include <osg/Node> #include <osg/Node>
#include <osg/GeoSet>
#include <osg/NodeVisitor> #include <osg/NodeVisitor>
#include <osg/Drawable>
#include <vector>
namespace osg { namespace osg {
/** Leaf Node for grouping GeoSets.*/ /** Leaf Node for grouping Drawables.*/
class SG_EXPORT Geode : public Node class SG_EXPORT Geode : public Node
{ {
public: public:
typedef std::vector< ref_ptr<GeoSet> > GeoSetList; typedef std::vector< ref_ptr<Drawable> > DrawableList;
Geode(); Geode();
virtual Object* clone() const { return new Geode(); } virtual Object* clone() const { return new Geode(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<Geode*>(obj)!=NULL; } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const Geode*>(obj)!=NULL; }
virtual const char* className() const { return "Geode"; } virtual const char* className() const { return "Geode"; }
virtual void accept(NodeVisitor& nv) { nv.apply(*this); } virtual void accept(NodeVisitor& nv) { nv.apply(*this); }
/** Add GeoSet to Geode. /** Add Drawable to Geode.
* If gset is not NULL and is not contained in Geode then increment its * If gset is not NULL and is not contained in Geode then increment its
* reference count, add it to the geosets list and dirty the bounding * reference count, add it to the drawables list and dirty the bounding
* sphere to force it to recompute on next getBound() and return true for success. * sphere to force it to recompute on next getBound() and return true for success.
* Otherwise return false. * Otherwise return false.
*/ */
virtual bool addGeoSet( GeoSet *gset ); virtual const bool addDrawable( Drawable *drawable );
/** Remove GeoSet from Geode. /** Remove Drawable from Geode.
* If gset is contained in Geode then remove it from the geoset * If gset is contained in Geode then remove it from the geoset
* list and decrement its reference count, and dirty the * list and decrement its reference count, and dirty the
* bounding sphere to force it to recompute on next getBound() and * bounding sphere to force it to recompute on next getBound() and
* return true for success. If gset is not found then return false * return true for success. If gset is not found then return false
* and do not change the reference count of gset. * and do not change the reference count of gset.
*/ */
virtual bool removeGeoSet( GeoSet *gset ); virtual const bool removeDrawable( Drawable *drawable );
/** Replace specified GeoSet with another GeoSet. /** Replace specified Drawable with another Drawable.
* Decrement the reference count origGSet and increments the * Decrement the reference count origGSet and increments the
* reference count of newGset, and dirty the bounding sphere * reference count of newGset, and dirty the bounding sphere
* to force it to recompute on next getBound() and returns true. * to force it to recompute on next getBound() and returns true.
* If origGeoSet is not found then return false and do not * If origDrawable is not found then return false and do not
* add newGset. If newGset is NULL then return false and do * add newGset. If newGset is NULL then return false and do
* not remove origGset. * not remove origGset.
*/ */
virtual bool replaceGeoSet( GeoSet *origGset, GeoSet *newGset ); virtual const bool replaceDrawable( Drawable *origDraw, Drawable *newDraw );
/** return the number of geoset's.*/ /** return the number of geoset's.*/
int getNumGeosets( void ) const { return _geosets.size(); } inline const int getNumDrawables() const { return _drawables.size(); }
/** return geoset at position i.*/ /** return geoset at position i.*/
GeoSet* getGeoSet( int i ) { return _geosets[i].get(); } inline Drawable* getDrawable( const int i ) { return _drawables[i].get(); }
/** return geoset at position i.*/
inline const Drawable* getDrawable( const int i ) const { return _drawables[i].get(); }
/** return true is geoset is contained within Geode.*/ /** return true is geoset is contained within Geode.*/
bool containsGeoSet( GeoSet* gset) inline const bool containsDrawable(const Drawable* gset) const
{ {
for (GeoSetList::iterator itr=_geosets.begin(); for (DrawableList::const_iterator itr=_drawables.begin();
itr!=_geosets.end(); itr!=_drawables.end();
++itr) ++itr)
{ {
if (itr->get()==gset) return true; if (itr->get()==gset) return true;
@ -72,34 +71,46 @@ class SG_EXPORT Geode : public Node
return false; return false;
} }
/** return the iterator postion for specified GeoSet. /** return the iterator postion for specified Drawable.
* return _geoset.end() if gset not is contained in Geode. * return _geoset.end() if gset not is contained in Geode.
*/ */
GeoSetList::iterator findGeoSet( GeoSet* gset) inline DrawableList::iterator findDrawable(const Drawable* gset)
{ {
for (GeoSetList::iterator itr=_geosets.begin(); for (DrawableList::iterator itr=_drawables.begin();
itr!=_geosets.end(); itr!=_drawables.end();
++itr) ++itr)
{ {
if (itr->get()==gset) return itr; if (itr->get()==gset) return itr;
} }
return _geosets.end(); return _drawables.end();
}
/** return the const_iterator postion for specified Drawable.
* return _geoset.end() if gset not is contained in Geode.
*/
inline DrawableList::const_iterator findDrawable(const Drawable* gset) const
{
for (DrawableList::const_iterator itr=_drawables.begin();
itr!=_drawables.end();
++itr)
{
if (itr->get()==gset) return itr;
}
return _drawables.end();
} }
/** complile OpenGL Display List for each geoset.*/ /** complile OpenGL Display List for each geoset.*/
void compileGeoSets( void ); void compileDrawables(State& state);
protected: protected:
virtual ~Geode(); virtual ~Geode();
virtual bool readLocalData(Input& fr); virtual const bool computeBound() const;
virtual bool writeLocalData(Output& fw);
virtual bool computeBound( void ); DrawableList _drawables;
GeoSetList _geosets;
}; };

View File

@ -4,12 +4,10 @@
#include <osg/Node> #include <osg/Node>
#include <osg/NodeVisitor> #include <osg/NodeVisitor>
#include <vector>
namespace osg { namespace osg {
/** General group node which maintains a list of children. /** General group node which maintains a list of children.
Children are reference counted to allow children to be shared Children are reference counted. This allows children to be shared
with memory management handled automatically via osg::Referenced. with memory management handled automatically via osg::Referenced.
*/ */
class SG_EXPORT Group : public Node class SG_EXPORT Group : public Node
@ -21,7 +19,7 @@ class SG_EXPORT Group : public Node
Group(); Group();
virtual Object* clone() const { return new Group(); } virtual Object* clone() const { return new Group(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<Group*>(obj)!=NULL; } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const Group*>(obj)!=NULL; }
virtual const char* className() const { return "Group"; } virtual const char* className() const { return "Group"; }
virtual void accept(NodeVisitor& nv) { nv.apply(*this); } virtual void accept(NodeVisitor& nv) { nv.apply(*this); }
@ -31,7 +29,7 @@ class SG_EXPORT Group : public Node
* If node is not NULL and is not contained in Group then increment its * If node is not NULL and is not contained in Group then increment its
* reference count, add it to the child list and dirty the bounding * reference count, add it to the child list and dirty the bounding
* sphere to force it to recompute on next getBound() and return true for success. * sphere to force it to recompute on next getBound() and return true for success.
* Otherwise return false. * Otherwise return false. Scene nodes can't be added as child nodes.
*/ */
virtual bool addChild( Node *child ); virtual bool addChild( Node *child );
@ -50,21 +48,24 @@ class SG_EXPORT Group : public Node
* to force it to recompute on next getBound() and returns true. * to force it to recompute on next getBound() and returns true.
* If origNode is not found then return false and do not * If origNode is not found then return false and do not
* add newNode. If newNode is NULL then return false and do * add newNode. If newNode is NULL then return false and do
* not remove origNode. * not remove origNode. Also returns false if newChild is a Scene node.
*/ */
virtual bool replaceChild( Node *origChild, Node* newChild ); virtual bool replaceChild( Node *origChild, Node* newChild );
/** return the number of chilren nodes.*/ /** return the number of chilren nodes.*/
int getNumChildren( void ) { return _children.size(); } inline const int getNumChildren() const { return _children.size(); }
/** return child node at position i.*/ /** return child node at position i.*/
Node *getChild( int i ) { return _children[i].get(); } inline Node *getChild( const int i ) { return _children[i].get(); }
/** return true is node is contained within Group.*/ /** return child node at position i.*/
bool containsNode( Node* node ) inline const Node *getChild( const int i ) const { return _children[i].get(); }
/** return true if node is contained within Group.*/
inline bool containsNode( const Node* node ) const
{ {
for (ChildList::iterator itr=_children.begin(); for (ChildList::const_iterator itr=_children.begin();
itr!=_children.end(); itr!=_children.end();
++itr) ++itr)
{ {
@ -73,12 +74,12 @@ class SG_EXPORT Group : public Node
return false; return false;
} }
/** return the iterator postion for specified Node. /** return the iterator postion for specified Node.
* return _chilren.end() if node is not contained in Group. * return _chilren.end() if node is not contained in Group.
*/ */
ChildList::iterator findNode( Node* node ) inline ChildList::iterator findNode( const Node* node )
{ {
for (ChildList::iterator itr=_children.begin(); for (ChildList::iterator itr=_children.begin();
itr!=_children.end(); itr!=_children.end();
++itr) ++itr)
@ -88,16 +89,28 @@ class SG_EXPORT Group : public Node
return _children.end(); return _children.end();
} }
/** return the const_iterator postion for specified Node.
* return _chilren.end() if node is not contained in Group.
*/
inline ChildList::const_iterator findNode( const Node* node ) const
{
for (ChildList::const_iterator itr=_children.begin();
itr!=_children.end();
++itr)
{
if (itr->get()==node) return itr;
}
return _children.end();
}
protected: protected:
virtual ~Group(); virtual ~Group();
virtual bool readLocalData(Input& fr); virtual const bool computeBound() const;
virtual bool writeLocalData(Output& fw);
ChildList _children; ChildList _children;
bool computeBound( void );
}; };

View File

@ -1,14 +1,14 @@
// -*-c++-*-
#ifndef OSG_IMAGE #ifndef OSG_IMAGE
#define OSG_IMAGE 1 #define OSG_IMAGE 1
#include <osg/Object> #include <osg/Object>
#include <osg/OSG>
#include <string>
namespace osg { namespace osg {
class Output;
class Input;
/** Image class for encapsulating the storage texture image data.*/ /** Image class for encapsulating the storage texture image data.*/
class SG_EXPORT Image : public Object class SG_EXPORT Image : public Object
{ {
@ -18,43 +18,46 @@ class SG_EXPORT Image : public Object
Image(); Image();
virtual Object* clone() const { return new Image(); } virtual Object* clone() const { return new Image(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<Image*>(obj)!=NULL; } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const Image*>(obj)!=0; }
virtual const char* className() const { return "Image"; } virtual const char* className() const { return "Image"; }
const char* getFileName() { return _fileName; } inline const std::string& getFileName() const { return _fileName; }
void setFileName(const char* fileName); void setFileName(const std::string& fileName);
/** set the image data and format. /** set the image data and format.
* note, when no packing value is negative (the default is -1) this method assumes * note, when the packing value is negative (the default is -1) this method assumes
* a _packing width of 1 if the width is not a multiple of 4, * a _packing width of 1 if the width is not a multiple of 4,
* otherwise automatically sets to _packing to 4. If a postive * otherwise automatically sets to _packing to 4. If a postive
* value of packing is supplied than _packing is simply set to that value. * value of packing is supplied than _packing is simply set to that value.
*/ */
void setImage(int s,int t,int r, void setImage(const int s,const int t,const int r,
int internalFormat, const int internalFormat,
unsigned int pixelFormat, const unsigned int pixelFormat,
unsigned int dataType, const unsigned int dataType,
unsigned char *data, unsigned char *data,
int packing=-1); const int packing=-1);
/** Width of image.*/ /** Width of image.*/
int s() { return _s; } inline const int s() const { return _s; }
/** Height of image.*/ /** Height of image.*/
int t() { return _t; } inline const int t() const { return _t; }
/** Depth of image.*/ /** Depth of image.*/
int r() { return _r; } inline const int r() const { return _r; }
int internalFormat() { return _internalFormat; } inline const int internalFormat() const { return _internalFormat; }
unsigned int pixelFormat() { return _pixelFormat; } inline const unsigned int pixelFormat() const { return _pixelFormat; }
unsigned int dataType() { return _dataType; } inline const unsigned int dataType() const { return _dataType; }
unsigned int packing() { return _packing; } inline const unsigned int packing() const { return _packing; }
/** raw image data.*/ /** raw image data.*/
unsigned char *data() { return _data; } inline unsigned char *data() { return _data; }
/** raw const image data.*/
inline const unsigned char *data() const { return _data; }
/** Scale image to specified size. */ /** Scale image to specified size. */
void scaleImage(int s,int t,int r); void scaleImage(const int s,const int t,const int r);
/** Ensure image dimensions are a power of two. /** Ensure image dimensions are a power of two.
* Mip Mapped texture require the image dimensions to be * Mip Mapped texture require the image dimensions to be
@ -62,6 +65,9 @@ class SG_EXPORT Image : public Object
*/ */
void ensureDimensionsArePowerOfTwo(); void ensureDimensionsArePowerOfTwo();
/** Get modified tag value. */
inline const unsigned int getModifiedTag() const { return _modifiedTag; }
protected : protected :
virtual ~Image(); virtual ~Image();
@ -69,10 +75,7 @@ class SG_EXPORT Image : public Object
// Image(const Image&) {} // Image(const Image&) {}
// Image& operator = (const Image& image) {} // Image& operator = (const Image& image) {}
virtual bool readLocalData(Input& fr); std::string _fileName;
virtual bool writeLocalData(Output& fw);
char* _fileName;
int _s, _t, _r; int _s, _t, _r;
int _internalFormat; int _internalFormat;
unsigned int _pixelFormat; unsigned int _pixelFormat;
@ -80,18 +83,21 @@ class SG_EXPORT Image : public Object
unsigned int _packing; unsigned int _packing;
unsigned char *_data; unsigned char *_data;
unsigned int _modifiedTag;
}; };
class Geode; class Geode;
/** Convinience function to be used by images loaders to generate a valid geode to return for readNode(). /** Convenience function to be used by images loaders to generate a valid geode
* to return for readNode().
* Use the images s and t values scale the dimensions of the image. * Use the images s and t values scale the dimensions of the image.
*/ */
SG_EXPORT extern Geode* createGeodeForImage(Image* image); SG_EXPORT extern Geode* createGeodeForImage(Image* image);
/** Convinience function to be used by images loaders to generate a valid geode to return for readNode(). /** Convenience function to be used by images loaders to generate a valid geode
* to return for readNode().
* Use the specified s and t values scale the dimensions of the image. * Use the specified s and t values scale the dimensions of the image.
*/ */
SG_EXPORT extern Geode* createGeodeForImage(Image* image,float s,float t); SG_EXPORT extern Geode* createGeodeForImage(Image* image,const float s,const float t);
}; };

View File

@ -1,9 +1,7 @@
#ifndef OSG_LOD #ifndef OSG_LOD
#define OSG_LOD 1 #define OSG_LOD 1
#include <osg/Switch> #include <osg/Group>
#include <vector>
namespace osg { namespace osg {
@ -20,7 +18,7 @@ class SG_EXPORT LOD : public Group
LOD() {} LOD() {}
virtual Object* clone() const { return new LOD(); } virtual Object* clone() const { return new LOD(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<LOD*>(obj)!=NULL; } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const LOD*>(obj)!=NULL; }
virtual const char* className() const { return "LOD"; } virtual const char* className() const { return "LOD"; }
virtual void accept(NodeVisitor& nv) { nv.apply(*this); } virtual void accept(NodeVisitor& nv) { nv.apply(*this); }
virtual void traverse(NodeVisitor& nv); virtual void traverse(NodeVisitor& nv);
@ -29,31 +27,31 @@ class SG_EXPORT LOD : public Group
is a floating point distance specified in world coordinates. is a floating point distance specified in world coordinates.
Range list automatically expands to accomodate values beyond Range list automatically expands to accomodate values beyond
the current getNumRanges().*/ the current getNumRanges().*/
void setRange(unsigned int index, float range); void setRange(const unsigned int index, const float range);
/** pfLOD::getRange returns the range element index.*/
float getRange(unsigned int index) { return _rangeList[index]; } /** returns the range for specified index.*/
inline const float getRange(const unsigned int index) const { return _rangeList[index]; }
/** returns the number of ranges currently set.*/ /** returns the number of ranges currently set.*/
int getNumRanges() { return _rangeList.size(); } inline const int getNumRanges() const { return _rangeList.size(); }
/** Sets the object-space point which defines the center of the osg::LOD. /** Sets the object-space point which defines the center of the osg::LOD.
center is affected by any transforms in the hierarchy above the osg::LOD.*/ center is affected by any transforms in the hierarchy above the osg::LOD.*/
void setCenter(const Vec3 &center) { _center = center; } inline void setCenter(const Vec3 &center) { _center = center; }
/** return the LOD center point. */ /** return the LOD center point. */
const Vec3& getCenter() { return _center; } inline const Vec3& getCenter() const { return _center; }
/** return the child to traverse. /** return the child to traverse.
Selected by the distance between the eye point in local Selected by the distance between the eye point in local
coordinates and the LOD center, mutliplied by the bias.*/ coordinates and the LOD center, mutliplied by the bias.*/
int evaluate(const Vec3& eye_local,float bias=1.0f); const int evaluate(const Vec3& eye_local,const float bias=1.0f) const;
protected : protected :
virtual ~LOD() {} virtual ~LOD() {}
virtual bool readLocalData(Input& fr);
virtual bool writeLocalData(Output& fw);
typedef std::vector<float> RangeList; typedef std::vector<float> RangeList;
RangeList _rangeList; RangeList _rangeList;
RangeList _rangeList2; RangeList _rangeList2;

View File

@ -1,113 +1,111 @@
#ifndef OSG_LIGHT #ifndef OSG_LIGHT
#define OSG_LIGHT 1 #define OSG_LIGHT 1
#include <osg/GL> #include <osg/Vec3>
#include <osg/OSG>
#include <osg/Vec4> #include <osg/Vec4>
#include <osg/StateAttribute>
#include <osg/StateSet>
namespace osg { namespace osg {
/** Light state class which encapsulates OpenGL glLight() functionality.*/ /** Light state class which encapsulates OpenGL glLight() functionality.*/
class SG_EXPORT Light : public Object class SG_EXPORT Light : public StateAttribute
{ {
public : public :
Light(); Light();
/** return a static instance of an osg::Light, to be used as prototype
for loading lights.*/
static Light* instance();
/** return a shallow copy of a node, with Object* return type.*/ /** return a shallow copy of a node, with Object* return type.*/
virtual Object* clone() const { return new Light(); } virtual Object* clone() const { return new Light(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<Light*>(obj)!=NULL; } /** return true if this and obj are of the same kind of object.*/
virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const Light*>(obj)!=NULL; }
/** return the name of the node's class type.*/ /** return the name of the node's class type.*/
virtual const char* className() const { return "Light"; } virtual const char* className() const { return "Light"; }
virtual const Type getType() const { return LIGHTING; }
virtual void setStateSetModes(StateSet& ds,const GLModeValue value) const
{
ds.setMode((GLMode)(GL_LIGHT0+_lightnum),value);
}
/** /**
* Turn the light on. * Turn the light on.
* Calling this method doesn't directly affect OpenGL's lighting mode. * Calling this method doesn't directly affect OpenGL's lighting mode.
*/ */
void on( void ) { _on = true; } inline void on() { _on = true; }
/** /**
* Turn the light off. * Turn the light off.
* Calling this method doesn't directly affect OpenGL's lighting mode. * Calling this method doesn't directly affect OpenGL's lighting mode.
*/ */
void off( void ) { _on = false; } inline void off() { _on = false; }
/** Enable OpenGL's Lighting mode. */
static void enable( void );
/** Disable OpenGL's Lighting mode. */
static void disable( void );
/** Apply the light's state to the OpenGL state machine. */ /** Apply the light's state to the OpenGL state machine. */
void apply( void ); virtual void apply(State& state) const;
/** Set the ambient component of the light. */ /** Set the ambient component of the light. */
void setAmbient( const Vec4& ambient ) { _ambient = ambient; } inline void setAmbient( const Vec4& ambient ) { _ambient = ambient; }
/** Get the ambient component of the light. */ /** Get the ambient component of the light. */
const Vec4& getAmbient() const { return _ambient; } inline const Vec4& getAmbient() const { return _ambient; }
/** Set the diffuse component of the light. */ /** Set the diffuse component of the light. */
void setDiffuse( const Vec4& diffuse ) { _diffuse = diffuse; } inline void setDiffuse( const Vec4& diffuse ) { _diffuse = diffuse; }
/** Get the diffuse component of the light. */ /** Get the diffuse component of the light. */
const Vec4& getDiffuse() const { return _diffuse; } inline const Vec4& getDiffuse() const { return _diffuse; }
/** Set the specular component of the light. */ /** Set the specular component of the light. */
void setSpecular( const Vec4& specular ) { _specular = specular; } inline void setSpecular( const Vec4& specular ) { _specular = specular; }
/** Get the specular component of the light. */ /** Get the specular component of the light. */
const Vec4& getSpecular() const { return _specular; } inline const Vec4& getSpecular() const { return _specular; }
/** Set the position of the light. */ /** Set the position of the light. */
void setPosition( const Vec4& position ) { _position = position; } inline void setPosition( const Vec4& position ) { _position = position; }
/** Get the position of the light. */ /** Get the position of the light. */
const Vec4& getPosition() const { return _position; } inline const Vec4& getPosition() const { return _position; }
/** Set the direction of the light. */ /** Set the direction of the light. */
void setDirection( const Vec3& direction ) { _direction = direction; } inline void setDirection( const Vec3& direction ) { _direction = direction; }
/** Get the direction of the light. */ /** Get the direction of the light. */
const Vec3& getDirection() const { return _direction; } inline const Vec3& getDirection() const { return _direction; }
/** Set the constant attenuation of the light. */ /** Set the constant attenuation of the light. */
void setConstantAttenuation( float constant_attenuation ) { _constant_attenuation = constant_attenuation; } inline void setConstantAttenuation( const float constant_attenuation ) { _constant_attenuation = constant_attenuation; }
/** Get the constant attenuation of the light. */ /** Get the constant attenuation of the light. */
float setConstantAttenuation() const { return _constant_attenuation; } inline const float getConstantAttenuation() const { return _constant_attenuation; }
/** Set the linear attenuation of the light. */ /** Set the linear attenuation of the light. */
void setLinearAttenuation ( float linear_attenuation ) { _linear_attenuation = linear_attenuation; } inline void setLinearAttenuation ( const float linear_attenuation ) { _linear_attenuation = linear_attenuation; }
/** Get the linear attenuation of the light. */ /** Get the linear attenuation of the light. */
float getLinearAttenuation () const { return _linear_attenuation; } inline const float getLinearAttenuation () const { return _linear_attenuation; }
/** Set the quadratic attenuation of the light. */ /** Set the quadratic attenuation of the light. */
void setQuadraticAttenuation ( float quadratic_attenuation ) { _quadratic_attenuation = quadratic_attenuation; } inline void setQuadraticAttenuation ( const float quadratic_attenuation ) { _quadratic_attenuation = quadratic_attenuation; }
/** Get the quadratic attenuation of the light. */ /** Get the quadratic attenuation of the light. */
float getQuadraticAttenuation() const { return _quadratic_attenuation; } inline const float getQuadraticAttenuation() const { return _quadratic_attenuation; }
/** Set the spot exponent of the light. */ /** Set the spot exponent of the light. */
void setSpotExponent( float spot_exponent ) { _spot_exponent = spot_exponent; } inline void setSpotExponent( const float spot_exponent ) { _spot_exponent = spot_exponent; }
/** Get the spot exponent of the light. */ /** Get the spot exponent of the light. */
float getSpotExponent() const { return _spot_exponent; } inline const float getSpotExponent() const { return _spot_exponent; }
/** Set the spot cutoff of the light. */ /** Set the spot cutoff of the light. */
void setSpotCutoff( float spot_cutoff ) { _spot_cutoff = spot_cutoff; } inline void setSpotCutoff( const float spot_cutoff ) { _spot_cutoff = spot_cutoff; }
/** Get the spot cutoff of the light. */ /** Get the spot cutoff of the light. */
float getSpotCutoff() { return _spot_cutoff; } inline const float getSpotCutoff() const { return _spot_cutoff; }
/** /**
* Capture the lighting settings of the current OpenGL state * Capture the lighting settings of the current OpenGL state
@ -117,10 +115,10 @@ class SG_EXPORT Light : public Object
protected : protected :
virtual ~Light( void ); virtual ~Light();
/** Initialize the light's settings with some decent defaults. */ /** Initialize the light's settings with some decent defaults. */
void init( void ); void init();
int _lightnum; // OpenGL light number int _lightnum; // OpenGL light number
bool _on; // on/off state bool _on; // on/off state

View File

@ -1,7 +1,7 @@
#ifndef OSG_LIGHTSOURCE #ifndef OSG_LIGHTSOURCE
#define OSG_LIGHTSOURCE 1 #define OSG_LIGHTSOURCE 1
#include <osg/Node> #include <osg/MemoryAdapter>
#include <osg/NodeVisitor> #include <osg/NodeVisitor>
#include <osg/Light> #include <osg/Light>
@ -15,24 +15,24 @@ class SG_EXPORT LightSource : public Node
LightSource(); LightSource();
virtual Object* clone() const { return new LightSource(); } virtual Object* clone() const { return new LightSource(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<LightSource*>(obj)!=NULL; } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const LightSource*>(obj)!=NULL; }
virtual const char* className() const { return "LightSource"; } virtual const char* className() const { return "LightSource"; }
virtual void accept(NodeVisitor& nv) { nv.apply(*this); } virtual void accept(NodeVisitor& nv) { nv.apply(*this); }
/** Set the attached light.*/ /** Set the attached light.*/
void setLight(Light* light) { _light = light; } inline void setLight(Light* light) { _light = light; }
/** Get the attached light.*/ /** Get the attached light.*/
Light* getLight() { return _light.get(); } inline Light* getLight() { return _light.get(); }
/** Get the const attached light.*/
inline const Light* getLight() const { return _light.get(); }
protected: protected:
virtual ~LightSource(); virtual ~LightSource();
virtual bool readLocalData(Input& fr); virtual const bool computeBound() const;
virtual bool writeLocalData(Output& fw);
virtual bool computeBound( void );
ref_ptr<Light> _light; ref_ptr<Light> _light;
}; };

View File

@ -1,26 +1,39 @@
#ifndef OSG_MATERIAL #ifndef OSG_MATERIAL
#define OSG_MATERIAL 1 #define OSG_MATERIAL 1
#include <osg/GL>
#include <osg/OSG>
#include <osg/Vec4> #include <osg/Vec4>
#include <osg/Object> #include <osg/StateAttribute>
#include <osg/StateSet>
namespace osg { namespace osg {
/** Material - encapsulates OpenGL glMaterial state.*/
class SG_EXPORT Material : public StateAttribute
class Input;
class Output;
class SG_EXPORT Material : public Object
{ {
public : public :
enum MaterialFace {
FACE_FRONT = GL_FRONT, Material();
FACE_BACK = GL_BACK, virtual Object* clone() const { return new Material(); }
FACE_FRONT_AND_BACK = GL_FRONT_AND_BACK virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const Material*>(obj)!=NULL; }
const char* className() const { return "Material"; }
virtual const Type getType() const { return MATERIAL; }
virtual void setStateSetModes(StateSet& ds,const GLModeValue value) const
{
// Have to think about the role of _colorMode
// in setting the colormaterial... also need to take the
// color material enable/disable out of the the apply()...
ds.setMode(GL_COLOR_MATERIAL,value);
}
virtual void apply(State& state) const;
enum Face {
FRONT = GL_FRONT,
BACK = GL_BACK,
FRONT_AND_BACK = GL_FRONT_AND_BACK
}; };
enum ColorMode { enum ColorMode {
@ -32,44 +45,51 @@ class SG_EXPORT Material : public Object
OFF OFF
}; };
Material( void ); inline void setColorMode(const ColorMode mode) { _colorMode = mode; }
static Material* instance(); inline const ColorMode getColorMode() const { return _colorMode; }
virtual Object* clone() const { return new Material(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<Material*>(obj)!=NULL; }
const char* className() const { return "Material"; }
void apply( void ); void setAmbient( const Face face, const Vec4& ambient );
const Vec4& getAmbient(const Face face) const;
inline const bool getAmbientFrontAndBack() const { return _ambientFrontAndBack; }
void setColorMode(ColorMode mode) { _colorMode = mode; } void setDiffuse( const Face face, const Vec4& diffuse );
const Vec4& getDiffuse(const Face face) const;
inline const bool getDiffuseFrontAndBack() const { return _diffuseFrontAndBack; }
void setAmbient( MaterialFace face, const Vec4& ambient ); /** Set specular value of specified face(s) of the material,
const Vec4& getAmbient(MaterialFace face) const; * valid specular[0..3] range is 0.0 to 1.0.*/
bool getAmbientFrontAndBack() { return _ambientFrontAndBack; } void setSpecular( const Face face, const Vec4& specular );
/** Get the specular value for specified face.*/
const Vec4& getSpecular(const Face face) const;
/** Get the whether specular values are equal for front and back faces.*/
inline const bool getSpecularFrontAndBack() const { return _specularFrontAndBack; }
void setDiffuse( MaterialFace face, const Vec4& diffuse ); /** Set emmision value of specified face(s) of the material,
const Vec4& getDiffuse(MaterialFace face) const; * valid emmison[0..3] range is 0.0 to 1.0.*/
bool getDiffuseFrontAndBack() { return _diffuseFrontAndBack; } void setEmission( const Face face, const Vec4& emission );
/** Get the emmsion value for specified face.*/
const Vec4& getEmission(const Face face) const;
/** Get the whether emmision values are equal for front and back faces.*/
inline const bool getEmissionFrontAndBack() const { return _emissionFrontAndBack; }
void setSpecular( MaterialFace face, const Vec4& specular ); /** Set shininess of specified face(s) of the material, valid shininess range is 0.0 to 1.0.*/
const Vec4& getSpecular(MaterialFace face) const; void setShininess( const Face face, float shininess );
bool getSpecularFrontAndBack() { return _specularFrontAndBack; } /** Get the shininess value for specified face.*/
const float getShininess(const Face face) const;
/** Get the whether shininess values are equal for front and back faces.*/
inline const bool getShininessFrontAndBack() const { return _shininessFrontAndBack; }
void setEmission( MaterialFace face, const Vec4& emission ); /** Set the alpha value of ambient,diffuse,specular and emmission colors,
const Vec4& getEmission(MaterialFace face) const; * of specified face, to 1-transparancy. Valid transparancy range is 0.0 to 1.0.*/
bool getEmissionFrontAndBack() { return _emissionFrontAndBack; } void setTransparency(const Face face,float trans);
void setShininess( MaterialFace face, float shininess ); /** Set the alpha value of ambient,diffuse,specular and emmission colors.
float getShininess(MaterialFace face) const; * Valid transparancy range is 0.0 to 1.0.*/
bool getShininessFrontAndBack() { return _shininessFrontAndBack; } void setAlpha(const Face face,float alpha);
protected : protected :
virtual ~Material( void ); virtual ~Material();
virtual bool readLocalData(Input& fr);
virtual bool writeLocalData(Output& fw);
bool matchFaceAndColor(Input& fr,const char* name,MaterialFace& mf,Vec4& color);
ColorMode _colorMode; ColorMode _colorMode;

View File

@ -2,16 +2,28 @@
#define OSG_MATRIX 1 #define OSG_MATRIX 1
#include <osg/Object> #include <osg/Object>
#include <osg/Types> #include <osg/Vec3>
#include <osg/Vec4>
#ifdef OSG_USE_IO_DOT_H
#include <iostream.h>
#else
#include <iostream>
using namespace std;
#endif
namespace osg { namespace osg {
class Input;
class Output;
/** 4x4 Matrix for storage & manipulation of transformations in scene graph. /** 4x4 Matrix for storage & manipulation of transformations in scene graph.
Provides basic maths operations, IO and via osg::Object reference counting. Provides basic maths operations, IO and via osg::Object reference counting.
You can directly load the matrix with OpenGL's LoadMatrixf() function via
the public member _mat as the matrix is stored in the OpenGL format.
Caution: The disadvantage of this feature is, that the matrix access is
'transposed' if you compare it with the standard C/C++ 2d-array-access
convention . I.e. _mat[i][j] accesses the ith column of the jth row in the
4x4 matrix.
*/ */
class SG_EXPORT Matrix : public Object class SG_EXPORT Matrix : public Object
{ {
public: public:
@ -26,14 +38,19 @@ class SG_EXPORT Matrix : public Object
virtual ~Matrix(); virtual ~Matrix();
static Matrix* instance();
virtual Object* clone() const { return new Matrix(); } virtual Object* clone() const { return new Matrix(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<Matrix*>(obj)!=NULL; } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const Matrix*>(obj)!=NULL; }
virtual const char* className() const { return "Matrix"; } virtual const char* className() const { return "Matrix"; }
void makeIdent(); void makeIdent();
void set(const float* m); void set(const float* m);
void set( float a00, float a01, float a02, float a03,
float a10, float a11, float a12, float a13,
float a20, float a21, float a22, float a23,
float a30, float a31, float a32, float a33);
void copy(const Matrix& matrix); void copy(const Matrix& matrix);
void makeScale(float sx, float sy, float sz); void makeScale(float sx, float sy, float sz);
@ -52,6 +69,13 @@ class SG_EXPORT Matrix : public Object
void postTrans( float tx, float ty, float tz ); void postTrans( float tx, float ty, float tz );
/**
* Calc the rotation matrix which aligns vector \a old_vec with
* vector \a new_vec. Both \a old_vec and \a new_vec must have
* length 1.0.
*/
void makeRot( const Vec3& old_vec, const Vec3& new_vec );
void makeRot( float deg, float x, float y, float z ); void makeRot( float deg, float x, float y, float z );
void preRot( float deg, float x, float y, float z, const Matrix& m ); void preRot( float deg, float x, float y, float z, const Matrix& m );
void postRot( const Matrix& m, float deg, float x, float y, float z ); void postRot( const Matrix& m, float deg, float x, float y, float z );
@ -69,8 +93,24 @@ class SG_EXPORT Matrix : public Object
Matrix operator * (const Matrix& m) const; Matrix operator * (const Matrix& m) const;
/** apply apply an 3x3 transform of v*M[0..2,0..2] */
inline static Vec3 transform3x3(const Vec3& v,const Matrix& m);
/** apply apply an 3x3 transform of M[0..2,0..2]*v */
inline static Vec3 transform3x3(const Matrix& m,const Vec3& v);
/** post multipy v. ie. (m*v) */
inline Vec3 operator * (const Vec3& v) const; inline Vec3 operator * (const Vec3& v) const;
inline friend Vec3 operator * (const Vec3& v,const Matrix& m);
/** pre multipy v. ie. (v*m) */
friend inline Vec3 operator * (const Vec3& v,const Matrix& m);
/** post multipy v. ie. (m*v) */
inline Vec4 operator * (const Vec4& v) const;
/** pre multipy v. ie. (v*m) */
friend inline Vec4 operator * (const Vec4& v,const Matrix& m);
friend inline ostream& operator << (ostream& output, const Matrix& matrix);
bool invert(const Matrix& m); bool invert(const Matrix& m);
@ -78,12 +118,8 @@ class SG_EXPORT Matrix : public Object
float _mat[4][4]; float _mat[4][4];
protected: protected:
virtual bool readLocalData(Input& fr);
virtual bool writeLocalData(Output& fw);
}; };
// post multiple v. ie. (m*v)
inline Vec3 Matrix::operator * (const Vec3& v) const inline Vec3 Matrix::operator * (const Vec3& v) const
{ {
float d = 1.0f/(_mat[3][0]*v.x()+_mat[3][1]*v.y()+_mat[3][2]*v.z()+_mat[3][3]) ; float d = 1.0f/(_mat[3][0]*v.x()+_mat[3][1]*v.y()+_mat[3][2]*v.z()+_mat[3][3]) ;
@ -93,7 +129,6 @@ inline Vec3 Matrix::operator * (const Vec3& v) const
} }
// pre multiple v. ie. (v*m)
inline Vec3 operator * (const Vec3& v,const Matrix& m) inline Vec3 operator * (const Vec3& v,const Matrix& m)
{ {
float d = 1.0f/(m._mat[0][3]*v.x()+m._mat[1][3]*v.y()+m._mat[2][3]*v.z()+m._mat[3][3]) ; float d = 1.0f/(m._mat[0][3]*v.x()+m._mat[1][3]*v.y()+m._mat[2][3]*v.z()+m._mat[3][3]) ;
@ -102,6 +137,48 @@ inline Vec3 operator * (const Vec3& v,const Matrix& m)
(m._mat[0][2]*v.x() + m._mat[1][2]*v.y() + m._mat[2][2]*v.z() + m._mat[3][2])*d); (m._mat[0][2]*v.x() + m._mat[1][2]*v.y() + m._mat[2][2]*v.z() + m._mat[3][2])*d);
} }
inline Vec4 Matrix::operator * (const Vec4& v) const
{
return Vec4( (_mat[0][0]*v.x() + _mat[0][1]*v.y() + _mat[0][2]*v.z() + _mat[0][3]*v.w()),
(_mat[1][0]*v.x() + _mat[1][1]*v.y() + _mat[1][2]*v.z() + _mat[1][3]*v.w()),
(_mat[2][0]*v.x() + _mat[2][1]*v.y() + _mat[2][2]*v.z() + _mat[2][3]*v.w()),
(_mat[3][0]*v.x() + _mat[3][1]*v.y() + _mat[3][2]*v.z() + _mat[3][3]*v.w())) ;
}
inline Vec4 operator * (const Vec4& v,const Matrix& m)
{
return Vec4( (m._mat[0][0]*v.x() + m._mat[1][0]*v.y() + m._mat[2][0]*v.z() + m._mat[3][0]*v.w()),
(m._mat[0][1]*v.x() + m._mat[1][1]*v.y() + m._mat[2][1]*v.z() + m._mat[3][1]*v.w()),
(m._mat[0][2]*v.x() + m._mat[1][2]*v.y() + m._mat[2][2]*v.z() + m._mat[3][2]*v.w()),
(m._mat[0][3]*v.x() + m._mat[1][3]*v.y() + m._mat[2][3]*v.z() + m._mat[3][3]*v.w()));
}
inline Vec3 Matrix::transform3x3(const Vec3& v,const Matrix& m)
{
return Vec3( (m._mat[0][0]*v.x() + m._mat[1][0]*v.y() + m._mat[2][0]*v.z()),
(m._mat[0][1]*v.x() + m._mat[1][1]*v.y() + m._mat[2][1]*v.z()),
(m._mat[0][2]*v.x() + m._mat[1][2]*v.y() + m._mat[2][2]*v.z()));
}
inline Vec3 Matrix::transform3x3(const Matrix& m,const Vec3& v)
{
return Vec3( (m._mat[0][0]*v.x() + m._mat[0][1]*v.y() + m._mat[0][2]*v.z()),
(m._mat[1][0]*v.x() + m._mat[1][1]*v.y() + m._mat[1][2]*v.z()),
(m._mat[2][0]*v.x() + m._mat[2][1]*v.y() + m._mat[2][2]*v.z()) ) ;
}
inline ostream& operator << (ostream& output, const Matrix& matrix)
{
output << "{"<<endl
<< " " << matrix._mat[0][0] << " " << matrix._mat[0][1] << " " << matrix._mat[0][2] << " " << matrix._mat[0][3] << endl
<< " " << matrix._mat[1][0] << " " << matrix._mat[1][1] << " " << matrix._mat[1][2] << " " << matrix._mat[1][3] << endl
<< " " << matrix._mat[2][0] << " " << matrix._mat[2][1] << " " << matrix._mat[2][2] << " " << matrix._mat[2][3] << endl
<< " " << matrix._mat[3][0] << " " << matrix._mat[3][1] << " " << matrix._mat[3][2] << " " << matrix._mat[3][3] << endl
<< "}" << endl;
return output; // to enable cascading
}
}; };
#endif #endif

View File

@ -1,9 +1,11 @@
#ifndef OSG_NODE #ifndef OSG_NODE
#define OSG_NODE 1 #define OSG_NODE 1
#include <osg/Types>
#include <osg/Object> #include <osg/Object>
#include <osg/StateSet>
#include <osg/BoundingSphere> #include <osg/BoundingSphere>
#include <osg/MemoryAdapter>
#include <osg/ref_ptr>
#include <string> #include <string>
#include <vector> #include <vector>
@ -13,39 +15,6 @@ namespace osg {
class NodeVisitor; class NodeVisitor;
class Group; class Group;
/** Class for adapting the memory management of external data.
* Typically used to specify the memory management of user data
* which can be attached to osg::Node.
*/
class SG_EXPORT MemoryAdapter : public Referenced
{
public:
MemoryAdapter() {}
/** Increment the reference count of the userData.*/
virtual void incrementReference(void* /*userData*/) = 0;
/** Decrement the reference count of the userData.
Is usually implemented such that if reference count
is decremented to zero the userData should be
deleted. However, this is entirely up to the
discression of the user who is extending this base class.*/
virtual void decrementReference(void* /*userData*/) = 0;
/** not current used, but will be used in future.*/
virtual void* clone(void* /*userData*/) { return 0L; }
/** not current used, but will be used in future.*/
virtual bool write(Output& /*fw*/,void* /*userData*/) { return false; }
/** not current used, but will be used in future.*/
virtual bool read(Input& /*fr*/,void* /*userData*/) { return false; }
protected:
virtual ~MemoryAdapter() {}
};
/** Base class for all internal nodes in the scene graph. /** Base class for all internal nodes in the scene graph.
Provides interface for most common node operations (Composite Pattern). Provides interface for most common node operations (Composite Pattern).
*/ */
@ -60,11 +29,9 @@ class SG_EXPORT Node : public Object
/** return a shallow copy of a node, with Object* return type.*/ /** return a shallow copy of a node, with Object* return type.*/
virtual Object* clone() const { return new Node(); } virtual Object* clone() const { return new Node(); }
/** return a shallow copy of a node, with Node* return type.*/
Node* cloneNode() const { return (Node*)clone(); }
/** return true if this and obj are of the same kind of object.*/ /** return true if this and obj are of the same kind of object.*/
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<Node*>(obj)!=NULL; } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const Node*>(obj)!=NULL; }
/** return the name of the node's class type.*/ /** return the name of the node's class type.*/
virtual const char* className() const { return "Node"; } virtual const char* className() const { return "Node"; }
@ -78,54 +45,66 @@ class SG_EXPORT Node : public Object
/** Set the name of node using C++ style string.*/ /** Set the name of node using C++ style string.*/
void setName( const std::string& name ) { _name = name; } inline void setName( const std::string& name ) { _name = name; }
/** Set the name of node using a C style string.*/ /** Set the name of node using a C style string.*/
void setName( const char* name ) { _name = name; } inline void setName( const char* name ) { _name = name; }
/** Get the name of node.*/ /** Get the name of node.*/
const std::string& getName( void ) { return _name; } inline const std::string& getName() const { return _name; }
/** A vector of osg::Group pointers which is used to store the parent(s) of node.*/ /** A vector of osg::Group pointers which is used to store the parent(s) of node.*/
typedef std::vector<Group*> ParentList; typedef std::vector<Group*> ParentList;
/** Get the parent list of node. */ /** Get the parent list of node. */
const ParentList& getParents() const { return _parents; } inline const ParentList& getParents() const { return _parents; }
/** Get the a copy of parent list of node. A copy is returned to
* prevent modifiaction of the parent list.*/
// inline ParentList getParents() { return _parents; }
inline Group* getParent(const int i) { return _parents[i]; }
/** /**
* Get a single parent of node. * Get a single const parent of node.
* @param i index of the parent to get. * @param i index of the parent to get.
* @return the parent i. * @return the parent i.
*/ */
Group* getParent(int i) const { return _parents[i]; } inline const Group* getParent(const int i) const { return _parents[i]; }
/** /**
* Get the number of parents of node. * Get the number of parents of node.
* @return the number of parents of this node. * @return the number of parents of this node.
*/ */
int getNumParents() const { return _parents.size(); } inline const int getNumParents() const { return _parents.size(); }
/** /**
* Set user data. See MemoryAdapter documention for details * Set user data. See MemoryAdapter documention for details
* of how to specify memory managament of _userData. * of how to specify memory managament of _userData.
*/ */
void setUserData(void* data,MemoryAdapter* ma=0L) inline void setUserData(void* data,MemoryAdapter* ma=0L)
{ {
if (_userData && _memoryAdapter.valid()) _memoryAdapter->decrementReference(_userData); if (_userData && _memoryAdapter.valid()) _memoryAdapter->unref_data(_userData);
_userData = data; _userData = data;
_memoryAdapter = ma; _memoryAdapter = ma;
if (_userData && _memoryAdapter.valid()) _memoryAdapter->incrementReference(_userData); if (_userData && _memoryAdapter.valid()) _memoryAdapter->ref_data(_userData);
} }
/** Get user data.*/ /** Get user data.*/
void* getUserData() const { return _userData; } inline void* getUserData() { return _userData; }
/** Get const user data.*/
inline const void* getUserData() const { return _userData; }
/** Get the memory adapter associated with _userData.*/ /** Get the memory adapter associated with _userData.*/
MemoryAdapter* getMemoryAdapter() const { return _memoryAdapter.get(); } inline MemoryAdapter* getMemoryAdapter() { return _memoryAdapter.get(); }
/** Get the const memory adapter associated with _userData.*/
inline const MemoryAdapter* getMemoryAdapter() const { return _memoryAdapter.get(); }
typedef unsigned int NodeMask; typedef unsigned int NodeMask;
/** Set the node mask. Note, node mask is will be replaced by TraversalMask.*/ /** Set the node mask. Note, node mask is will be replaced by TraversalMask.*/
void setNodeMask(NodeMask nm) { _nodeMask = nm; } inline void setNodeMask(const NodeMask nm) { _nodeMask = nm; }
/** Get the node Mask. Note, node mask is will be replaced by TraversalMask.*/ /** Get the node Mask. Note, node mask is will be replaced by TraversalMask.*/
NodeMask getNodeMask() { return _nodeMask; } inline const NodeMask getNodeMask() const { return _nodeMask; }
@ -133,21 +112,36 @@ class SG_EXPORT Node : public Object
typedef std::vector<std::string> DescriptionList; typedef std::vector<std::string> DescriptionList;
/** Get the description list of the const node.*/ /** Get the description list of the const node.*/
const DescriptionList& getDescriptions() const { return _descriptions; } inline const DescriptionList& getDescriptions() const { return _descriptions; }
/** Get the description list of the const node.*/ /** Get the description list of the const node.*/
DescriptionList& getDescriptions() { return _descriptions; } inline DescriptionList& getDescriptions() { return _descriptions; }
/** Get a single const description of the const node.*/ /** Get a single const description of the const node.*/
const std::string& getDescription(int i) const { return _descriptions[i]; } inline const std::string& getDescription(const int i) const { return _descriptions[i]; }
/** Get a single description of the node.*/ /** Get a single description of the node.*/
std::string& getDescription(int i) { return _descriptions[i]; } inline std::string& getDescription(const int i) { return _descriptions[i]; }
/** Get the number of descriptions of the node.*/ /** Get the number of descriptions of the node.*/
int getNumDescriptions() const { return _descriptions.size(); } inline const int getNumDescriptions() const { return _descriptions.size(); }
/** Add a description string to the node.*/ /** Add a description string to the node.*/
void addDescription(const std::string& desc) { _descriptions.push_back(desc); } void addDescription(const std::string& desc) { _descriptions.push_back(desc); }
/** set the node's StateSet.*/
inline void setStateSet(osg::StateSet* dstate) { _dstate = dstate; }
/** return the node's StateSet.*/
inline osg::StateSet* getStateSet() { return _dstate.get(); }
/** return the node's const StateSet.*/
inline const osg::StateSet* getStateSet() const { return _dstate.get(); }
/** get the bounding sphere of node. /** get the bounding sphere of node.
Using lazy evaluation computes the bounding sphere if it is 'dirty'.*/ Using lazy evaluation computes the bounding sphere if it is 'dirty'.*/
const BoundingSphere& getBound(); inline const BoundingSphere& getBound() const
{
if(!_bsphere_computed) computeBound();
return _bsphere;
}
/** Mark this node's bounding sphere dirty. /** Mark this node's bounding sphere dirty.
Forcing it to be computed on the next call to getBound().*/ Forcing it to be computed on the next call to getBound().*/
@ -165,29 +159,14 @@ class SG_EXPORT Node : public Object
= new Node().*/ = new Node().*/
virtual ~Node(); virtual ~Node();
/**
* Template Method Pattern : read local data from .osg file.
* Note should be implemented in derived classes, which
* call their parent class's readLocalData.
* @return true if the input iterator has been advanced, otherwise false.
*/
virtual bool readLocalData(Input& fr);
/**
* Template Method Pattern : read local data from .osg file.
* Note should be implemented in derivied classes, which
* call their parent class's writeLocalData.
* @return true if data has been written out, otherwise false.
*/
virtual bool writeLocalData(Output& fw);
/** Compute the bounding sphere around Node's geometry or children. /** Compute the bounding sphere around Node's geometry or children.
This method is automatically called by getBound() when the bounding This method is automatically called by getBound() when the bounding
sphere has been marked dirty via dirtyBound().*/ sphere has been marked dirty via dirtyBound().*/
virtual bool computeBound( void ) ; virtual const bool computeBound() const;
BoundingSphere _bsphere; mutable BoundingSphere _bsphere;
bool _bsphere_computed; mutable bool _bsphere_computed;
std::string _name; std::string _name;
@ -201,6 +180,8 @@ class SG_EXPORT Node : public Object
DescriptionList _descriptions; DescriptionList _descriptions;
ref_ptr<StateSet> _dstate;
}; };
/** A vector of Nodes pointers which is used to describe the path from a root node to a descendant.*/ /** A vector of Nodes pointers which is used to describe the path from a root node to a descendant.*/

View File

@ -9,11 +9,11 @@ class Geode;
class Billboard; class Billboard;
class LightSource; class LightSource;
class Group; class Group;
class DCS; class Transform;
class LOD; class LOD;
class Sequence; class Sequence;
class Scene;
class Switch; class Switch;
class Impostor;
/** Visitor for type safe operations on osg::Node's. /** Visitor for type safe operations on osg::Node's.
Based on GOF's Visitor pattern.*/ Based on GOF's Visitor pattern.*/
@ -32,21 +32,27 @@ class SG_EXPORT NodeVisitor : public Referenced
NodeVisitor(TraversalMode tm=TRAVERSE_NONE); NodeVisitor(TraversalMode tm=TRAVERSE_NONE);
virtual ~NodeVisitor(); virtual ~NodeVisitor();
/** Method to call to reset visitor. Useful for your visitor accumulates
state during a traversal, and you plan to resuse the visitor.
To flush that state for the next traversal than call reset() prior
to each traversal.*/
virtual void reset() {}
/** Set the traversal mode for Node::traverse() to use when /** Set the traversal mode for Node::traverse() to use when
deciding which children of a node to traverse. If a deciding which children of a node to traverse. If a
NodeVisitor has been attached via setTraverseVisitor() NodeVisitor has been attached via setTraverseVisitor()
and the new mode is not TRAVERSE_VISITOR then the attached and the new mode is not TRAVERSE_VISITOR then the attached
visitor is detached. Default mode is TRAVERSE_NONE.*/ visitor is detached. Default mode is TRAVERSE_NONE.*/
void setTraverseMode(TraversalMode mode); void setTraversalMode(const TraversalMode mode);
/** Get the traversal mode.*/ /** Get the traversal mode.*/
TraversalMode getTraverseMode() { return _traverseMode; } inline const TraversalMode getTraversalMode() const { return _traversalMode; }
/** Set a visitor to handle traversal.
Overides the traverse mode setting it to TRAVERSE_VISITOR.*/
void setTraverseVisitor(NodeVisitor* nv); /** Set a visitor to handle traversal.
/** Get the traverse visitor, returns NULL if none is attached.*/ Overides the traverse mode setting it to TRAVERSAL_VISITOR.*/
NodeVisitor* getTraverseVisitor() { return _traverseVisitor; } void setTraversalVisitor(NodeVisitor* nv);
/** Get the traversal visitor, returns NULL if none is attached.*/
NodeVisitor* getTraversalVisitor() { return _traversalVisitor.get(); }
/** Inline method for passing handling traversal of a nodes. /** Inline method for passing handling traversal of a nodes.
If you intend to use the visitor for actively traversing If you intend to use the visitor for actively traversing
@ -54,28 +60,28 @@ class SG_EXPORT NodeVisitor : public Referenced
this method unless they handle traversal directly.*/ this method unless they handle traversal directly.*/
void traverse(Node& node) void traverse(Node& node)
{ {
if (_traverseVisitor) node.accept(*_traverseVisitor); if (_traversalVisitor.valid()) node.accept(*_traversalVisitor);
else if (_traverseMode==TRAVERSE_PARENTS) node.ascend(*this); else if (_traversalMode==TRAVERSE_PARENTS) node.ascend(*this);
else if (_traverseMode!=TRAVERSE_NONE) node.traverse(*this); else if (_traversalMode!=TRAVERSE_NONE) node.traverse(*this);
} }
virtual void apply(Node& node) { traverse(node);} virtual void apply(Node& node) { traverse(node);}
virtual void apply(Geode& node) { apply((Node&)node); } virtual void apply(Geode& node) { apply((Node&)node); }
virtual void apply(Billboard& node){ apply((Geode&)node); } virtual void apply(Billboard& node) { apply((Geode&)node); }
virtual void apply(LightSource& node){ apply((Node&)node); } virtual void apply(LightSource& node){ apply((Node&)node); }
virtual void apply(Group& node) { apply((Node&)node); } virtual void apply(Group& node) { apply((Node&)node); }
virtual void apply(DCS& node) { apply((Group&)node); } virtual void apply(Transform& node) { apply((Group&)node); }
virtual void apply(Switch& node) { apply((Group&)node); } virtual void apply(Switch& node) { apply((Group&)node); }
virtual void apply(Sequence& node) { apply((Group&)node); } virtual void apply(Sequence& node) { apply((Group&)node); }
virtual void apply(LOD& node) { apply((Group&)node); } virtual void apply(LOD& node) { apply((Group&)node); }
virtual void apply(Scene& node) { apply((Group&)node); } virtual void apply(Impostor& node) { apply((LOD&)node); }
protected: protected:
NodeVisitor* _traverseVisitor; ref_ptr<NodeVisitor> _traversalVisitor;
TraversalMode _traverseMode; TraversalMode _traversalMode;
}; };

View File

@ -6,59 +6,84 @@
#ifdef OSG_USE_IO_DOT_H #ifdef OSG_USE_IO_DOT_H
#include <iostream.h> #include <iostream.h>
#include <fstream.h> #include <fstream.h>
//#include <stdlib.h>
#else #else
#include <iostream> #include <iostream>
#include <fstream> #include <fstream>
//#include <stdlib.h>
using namespace std; using namespace std;
#endif #endif
namespace osg { namespace osg {
/** Range of notify levels from DEBUG_FP through to FATAL, ALWAYS
* is reserved for forcing the absorption of all messages. The
* keywords are also used verbatim when specified by the environmental
* variable OSGNOTIFYLEVEL. See documentation on osg::notify() for
* further details.
*/
enum NotifySeverity { enum NotifySeverity {
ALWAYS=0, ALWAYS=0,
FATAL=1, FATAL=1,
WARN=2, WARN=2,
NOTICE=3, NOTICE=3,
INFO=4, INFO=4,
DEBUG=5, DEBUG_INFO=5,
FP_DEBUG=6 DEBUG_FP=6
}; };
extern NotifySeverity g_NotifyLevel; /** global notify level. */
extern ofstream *g_absorbStreamPtr; SG_EXPORT extern NotifySeverity g_NotifyLevel;
/** set the notify level, overriding the default or value set by
* the environmental variable OSGNOTIFYLEVEL.
*/
SG_EXPORT extern void setNotifyLevel(NotifySeverity severity); SG_EXPORT extern void setNotifyLevel(NotifySeverity severity);
SG_EXPORT extern int getNotifyLevel();
/** get the notify level. */
SG_EXPORT extern NotifySeverity getNotifyLevel();
/** initialize notify level. */
SG_EXPORT extern bool initNotifyLevel();
/** notify messaging function for providing fatal through to verbose
* debugging messages. Level of messages sent to the console can
* be controlled by setting the NotifyLevel either within your
* application or via the an environmental variable. For instance
* setenv OSGNOTIFYLEVEL DEBUG (for tsh), export OSGNOTIFYLEVEL=DEBUG
* (for bourne shell) or set OSGNOTIFYLEVEL=DEBUG (for Windows) all
* set tell the osg to redirect all debugging and more important messages
* to the console (useful for debugging :-) setting ALWAYS will force
* all messages to be absorbed, which might be appropriate for final
* applications. Default NotifyLevel is NOTICE. Check the enum
* NotifySeverity for full range of possibilities. To use the notify
* with your code simply use the notify function as a normal file
* stream (like cout) i.e osg::notify(osg::DEBUG) << "Hello Bugs!"<<endl;
*/
inline ostream& notify(const NotifySeverity severity=INFO)
{
static bool s_initialized = initNotifyLevel();
#ifdef __GNUC__
/* a little hack to prevent gcc's warning message (will be optimized away) */
if ( 0 && s_initialized )
;
#endif
#ifdef WIN32 #ifdef WIN32
inline ostream& notify(NotifySeverity severity=INFO) static ofstream s_abosorbStr("nul");
{ #else
static ofstream s_abosorbStr("/dev/null");
#endif
if (severity<=g_NotifyLevel)
{
if (severity<=osg::WARN) return cerr; if (severity<=osg::WARN) return cerr;
else return cout; else return cout;
}
return s_abosorbStr;
} }
#else
SG_EXPORT extern ostream& notify(NotifySeverity severity=INFO);
#endif
// A nifty_counter to ensure that the notify things are initialised before
// they're used. Initialises g_NotifyLevel and g_absorbStreamPointer
class SG_EXPORT NotifyInit
{
public:
NotifyInit();
~NotifyInit();
private:
static int count_;
};
static NotifyInit niftyNotifyInit;
}; };
#endif #endif

View File

@ -5,9 +5,6 @@
namespace osg { namespace osg {
class Input;
class Output;
/** Base class/standard interface for objects which require IO support, /** Base class/standard interface for objects which require IO support,
cloning and reference counting. cloning and reference counting.
Based on GOF Composite, Prototype and Template Method patterns. Based on GOF Composite, Prototype and Template Method patterns.
@ -25,23 +22,12 @@ class SG_EXPORT Object : public Referenced
Must be defined by derived classes.*/ Must be defined by derived classes.*/
virtual Object* clone() const = 0; virtual Object* clone() const = 0;
virtual bool isSameKindAs(Object*) { return true; } virtual bool isSameKindAs(const Object*) const { return true; }
/** return the name of the object's class type. Must be defined /** return the name of the object's class type. Must be defined
by derived classes.*/ by derived classes.*/
virtual const char* className() const = 0; virtual const char* className() const = 0;
/** Template Method/Prototype Pattern : create a clone and read
Object data from Input. Reads Input and if it matches this
objects className() then create a clone and match '{' brackets
and repeating calling Object::readLocalData() until the
matching ']' is read.*/
virtual Object* readClone(Input& fr);
/** Template Method Pattern : write out Object data to Output.
Sequence of output is className() followed by Open '{'
and then call Object::writeLocalData() and complete with '}'.*/
virtual bool write(Output& fw);
protected: protected:
/** Object destructor. Note, is protected so that Objects cannot /** Object destructor. Note, is protected so that Objects cannot
@ -53,17 +39,6 @@ class SG_EXPORT Object : public Referenced
= new Node().*/ = new Node().*/
virtual ~Object() {} virtual ~Object() {}
/** Template Method Pattern : read local data from .osg file.
Note should be implemented in derivied classes, which
call their parent class's readLocalData. Returns
true if the input iterator has been advanced, otherwise false.*/
virtual bool readLocalData(Input&) { return false; }
/** Template Method Pattern : write local data to .osg file.
Note should be implemented in derivied classes, which
call their parent class's writeLocalData. Returns
true if data has been written out, otherwise false.*/
virtual bool writeLocalData(Output&) { return false; }
private: private:
/** disallow any form of deep copy.*/ /** disallow any form of deep copy.*/

View File

@ -1,33 +1,39 @@
#ifndef OSG_POINT #ifndef OSG_POINT
#define OSG_POINT 1 #define OSG_POINT 1
#include <osg/Export>
#include <osg/Object>
#include <osg/Vec3> #include <osg/Vec3>
#include <osg/StateAttribute>
#include <osg/StateSet>
namespace osg { namespace osg {
class Input; /** Point - encapsulates the OpenGL point smmothing and size state.*/
class Output; class SG_EXPORT Point : public StateAttribute
class SG_EXPORT Point : public Object
{ {
public : public :
Point(); Point();
static Point* instance();
virtual Object* clone() const { return new Point(); } virtual Object* clone() const { return new Point(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<Point*>(obj)!=NULL; } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const Point*>(obj)!=NULL; }
virtual const char* className() const { return "Point"; } virtual const char* className() const { return "Point"; }
void setSize(float size); virtual const Type getType() const { return POINT; }
void setFadeThresholdSize(float fadeThresholdSize);
virtual void setStateSetModes(StateSet& ds,const GLModeValue value) const
{
ds.setMode(GL_POINT_SMOOTH,value);
}
void setSize(const float size);
inline const float getSize() const { return _size; }
void setFadeThresholdSize(const float fadeThresholdSize);
inline const float getFadeThresholdSize() const { return _fadeThresholdSize; }
void setDistanceAttenuation(const Vec3& distanceAttenuation); void setDistanceAttenuation(const Vec3& distanceAttenuation);
inline const Vec3& getDistanceAttenuation() const { return _distanceAttenuation; }
static void enableSmooth( void ); virtual void apply(State& state) const;
static void disableSmooth( void );
void apply( void );
static void init_GL_EXT(); static void init_GL_EXT();
@ -35,9 +41,6 @@ class SG_EXPORT Point : public Object
virtual ~Point(); virtual ~Point();
virtual bool readLocalData(Input& fr);
virtual bool writeLocalData(Output& fw);
float _size; float _size;
float _fadeThresholdSize; float _fadeThresholdSize;
Vec3 _distanceAttenuation; Vec3 _distanceAttenuation;

View File

@ -1,39 +1,42 @@
#ifndef OSG_POLYGONOFFSET #ifndef OSG_POLYGONOFFSET
#define OSG_POLYGONOFFSET 1 #define OSG_POLYGONOFFSET 1
#include <osg/Export> #include <osg/StateAttribute>
#include <osg/Object> #include <osg/StateSet>
#include <osg/Vec3>
namespace osg { namespace osg {
class Input; /** PolygonOffset - encapsulates the OpenGL glPolygonOffset state.*/
class Output; class SG_EXPORT PolygonOffset : public StateAttribute
class SG_EXPORT PolygonOffset : public Object
{ {
public : public :
PolygonOffset(); PolygonOffset();
static PolygonOffset* instance();
virtual Object* clone() const { return new PolygonOffset(); } virtual Object* clone() const { return new PolygonOffset(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<PolygonOffset*>(obj)!=NULL; } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const PolygonOffset*>(obj)!=NULL; }
virtual const char* className() const { return "PolygonOffset"; } virtual const char* className() const { return "PolygonOffset"; }
void setOffset(float factor,float units); virtual const Type getType() const { return POLYGONOFFSET; }
static void enable( void ); virtual void setStateSetModes(StateSet& ds,const GLModeValue value) const
static void disable( void ); {
ds.setMode(GL_POLYGON_OFFSET_FILL,value);
ds.setMode(GL_POLYGON_OFFSET_LINE,value);
ds.setMode(GL_POLYGON_OFFSET_POINT,value);
}
void apply( void ); inline void setFactor(const float factor) { _factor = factor; }
inline const float getFactor() const { return _factor; }
inline void setUnits(const float units) { _units = units; }
inline const float getUnits() const { return _units; }
virtual void apply(State& state) const;
protected : protected :
virtual ~PolygonOffset(); virtual ~PolygonOffset();
virtual bool readLocalData(Input& fr);
virtual bool writeLocalData(Output& fw);
float _factor; float _factor;
float _units; float _units;

View File

@ -1,11 +1,8 @@
#ifndef OSG_QUAT #ifndef OSG_QUAT
#define OSG_QUAT 1 #define OSG_QUAT 1
#include <osg/Export>
#include <math.h>
#include <osg/Vec4>
#include <osg/Vec3> #include <osg/Vec3>
#include <osg/Vec4>
#include <osg/Matrix> #include <osg/Matrix>
namespace osg { namespace osg {
@ -28,30 +25,39 @@ class SG_EXPORT Quat
---------------------------------------------------------- */ ---------------------------------------------------------- */
Vec4 _fv; // a four-vector Vec4 _fv; // a four-vector
/* ---------------------------------- Quat() {}
CONSTRUCTORS Quat( float x, float y, float z, float w ): _fv(x,y,z,w) {}
Default constructor Quat( const Vec4& v ): _fv(v) {}
One to accept four floats
One to accept a Vec4
These are implemented in Quat.cpp
---------------------------------- */
Quat( void );
Quat( float x, float y, float z, float w );
Quat( const Vec4& vec );
/* ---------------------------------- /* ----------------------------------
Methods to access data members Methods to access data members
---------------------------------- */ ---------------------------------- */
inline Vec4 asVec4( void ) const inline Vec4& asVec4()
{ {
return _fv; return _fv;
} }
inline Vec3 asVec3( void ) const inline const Vec4& asVec4() const
{
return _fv;
}
inline const Vec3 asVec3() const
{ {
return Vec3(_fv[0], _fv[1], _fv[2]); return Vec3(_fv[0], _fv[1], _fv[2]);
} }
inline void set(const float x, const float y, const float z, const float w)
{
_fv.set(x,y,z,w);
}
inline void set(const osg::Vec4& v)
{
_fv = v;
}
/* ------------------------------------------------------------- /* -------------------------------------------------------------
BASIC ARITHMETIC METHODS BASIC ARITHMETIC METHODS
Implemented in terms of Vec4s. Some Vec4 operators, e.g. Implemented in terms of Vec4s. Some Vec4 operators, e.g.
@ -60,7 +66,7 @@ class SG_EXPORT Quat
Also define methods for conjugate and the multiplicative inverse. Also define methods for conjugate and the multiplicative inverse.
------------------------------------------------------------- */ ------------------------------------------------------------- */
/// Multiply by scalar /// Multiply by scalar
inline Quat operator * (const float& rhs) const inline const Quat operator * (const float& rhs) const
{ {
return Quat(_fv*rhs); return Quat(_fv*rhs);
} }
@ -73,7 +79,7 @@ class SG_EXPORT Quat
} }
/// Binary multiply /// Binary multiply
inline Quat operator*(const Quat& rhs) const inline const Quat operator*(const Quat& rhs) const
{ {
return Quat( _fv[3]*rhs._fv[0] + _fv[0]*rhs._fv[3] + _fv[1]*rhs._fv[2] - _fv[2]*rhs._fv[1], return Quat( _fv[3]*rhs._fv[0] + _fv[0]*rhs._fv[3] + _fv[1]*rhs._fv[2] - _fv[2]*rhs._fv[1],
_fv[3]*rhs._fv[1] - _fv[0]*rhs._fv[2] + _fv[1]*rhs._fv[3] + _fv[2]*rhs._fv[0], _fv[3]*rhs._fv[1] - _fv[0]*rhs._fv[2] + _fv[1]*rhs._fv[3] + _fv[2]*rhs._fv[0],
@ -97,7 +103,7 @@ class SG_EXPORT Quat
} }
/// Divide by scalar /// Divide by scalar
inline Quat operator / (const float& rhs) const inline const Quat operator / (const float& rhs) const
{ {
return Quat(_fv/rhs); return Quat(_fv/rhs);
} }
@ -110,7 +116,7 @@ class SG_EXPORT Quat
} }
/// Binary divide /// Binary divide
inline Quat operator/(const Quat& denom) const inline const Quat operator/(const Quat& denom) const
{ {
return ( (*this) * denom.inverse() ); return ( (*this) * denom.inverse() );
} }
@ -123,7 +129,7 @@ class SG_EXPORT Quat
} }
/// Binary addition /// Binary addition
inline Quat operator + (const Quat& rhs) const inline const Quat operator + (const Quat& rhs) const
{ {
return Quat( _fv + rhs._fv ); return Quat( _fv + rhs._fv );
} }
@ -136,7 +142,7 @@ class SG_EXPORT Quat
} }
/// Binary subtraction /// Binary subtraction
inline Quat operator - (const Quat& rhs) const inline const Quat operator - (const Quat& rhs) const
{ {
return Quat( _fv - rhs._fv ); return Quat( _fv - rhs._fv );
} }
@ -150,31 +156,31 @@ class SG_EXPORT Quat
/** Negation operator - returns the negative of the quaternion. /** Negation operator - returns the negative of the quaternion.
Basically just calls operator - () on the Vec4 */ Basically just calls operator - () on the Vec4 */
inline Quat operator - () const inline const Quat operator - () const
{ {
return Quat ( -_fv ); return Quat ( -_fv );
} }
/// Length of the quaternion = sqrt( vec . vec ) /// Length of the quaternion = sqrt( vec . vec )
float length( void ) const const float length() const
{ {
return _fv.length(); return _fv.length();
} }
/// Length of the quaternion = vec . vec /// Length of the quaternion = vec . vec
float length2( void ) const const float length2() const
{ {
return _fv.length2(); return _fv.length2();
} }
/// Conjugate /// Conjugate
inline Quat conj ( void ) const inline const Quat conj () const
{ {
return Quat( -_fv[0], -_fv[1], -_fv[2], _fv[3] ); return Quat( -_fv[0], -_fv[1], -_fv[2], _fv[3] );
} }
/// Multiplicative inverse method: q^(-1) = q^*/(q.q^*) /// Multiplicative inverse method: q^(-1) = q^*/(q.q^*)
inline Quat inverse ( void ) const inline const Quat inverse () const
{ {
return conj() / length2(); return conj() / length2();
} }
@ -215,17 +221,18 @@ class SG_EXPORT Quat
/** Get the equivalent matrix for this quaternion.*/ /** Get the equivalent matrix for this quaternion.*/
void get( osg::Matrix& m ) const; void get( osg::Matrix& m ) const;
friend inline ostream& operator << (ostream& output, const Quat& vec) friend inline ostream& operator << (ostream& output, const Quat& vec);
{
}; // end of class prototype
inline ostream& operator << (ostream& output, const Quat& vec)
{
output << vec._fv[0] << " " output << vec._fv[0] << " "
<< vec._fv[1] << " " << vec._fv[1] << " "
<< vec._fv[2] << " " << vec._fv[2] << " "
<< vec._fv[3]; << vec._fv[3];
return output; // to enable cascading return output; // to enable cascading
} }
}; // end of class prototype
}; // end of namespace }; // end of namespace
#endif #endif

View File

@ -2,100 +2,35 @@
#define OSG_REFERENCED 1 #define OSG_REFERENCED 1
#include <osg/Export> #include <osg/Export>
#include <set>
namespace osg { namespace osg {
/** Convience functor for unreferencing objects.*/
template<class T>
struct UnrefOp
{
void operator () (T* node) { node->unref(); }
};
/** Smart pointer for handling referenced counted objects.*/
template<class T>
class ref_ptr
{
public:
ref_ptr() :_ptr(0L) {}
ref_ptr(T* t):_ptr(t) { if (_ptr) _ptr->ref(); }
ref_ptr(const ref_ptr& rp):_ptr(rp._ptr) { if (_ptr) _ptr->ref(); }
~ref_ptr() { if (_ptr) _ptr->unref(); }
ref_ptr& operator = (const ref_ptr& rp)
{
if (_ptr==rp._ptr) return *this;
if (_ptr) _ptr->unref();
_ptr = rp._ptr;
if (_ptr) _ptr->ref();
return *this;
}
ref_ptr& operator = (T* ptr)
{
if (_ptr==ptr) return *this;
if (_ptr) _ptr->unref();
_ptr = ptr;
if (_ptr) _ptr->ref();
return *this;
}
bool operator == (const ref_ptr& rp) const
{
return (_ptr==rp._ptr);
}
bool operator == (const T* ptr) const
{
return (_ptr==ptr);
}
bool operator != (const ref_ptr& rp) const
{
return (_ptr!=rp._ptr);
}
bool operator != (const T* ptr) const
{
return (_ptr!=ptr);
}
T& operator*() const { return *_ptr; }
T* operator->() const { return _ptr; }
bool operator!() const { return _ptr==0L; }
bool valid() const { return _ptr!=0L; }
T* get() const { return _ptr; }
private:
T* _ptr;
};
/** Base class from providing referencing counted objects.*/ /** Base class from providing referencing counted objects.*/
class Referenced class SG_EXPORT Referenced
{ {
public: public:
Referenced() { _refCount=0; } Referenced() { _refCount=0; }
Referenced(Referenced&) { _refCount=0; } Referenced(const Referenced&) { _refCount=0; }
Referenced& operator = (Referenced&) { return *this; } inline Referenced& operator = (Referenced&) { return *this; }
/** increment the reference count by one, indicating that /** increment the reference count by one, indicating that
this object has another pointer which is referencing it.*/ this object has another pointer which is referencing it.*/
void ref() { ++_refCount; } inline void ref() const { ++_refCount; }
/** decrement the reference count by one, indicating that /** decrement the reference count by one, indicating that
a pointer to this object is referencing it. If the a pointer to this object is referencing it. If the
refence count goes to zero, it is assumed that this object refence count goes to zero, it is assumed that this object
is nolonger referenced and is automatically deleted.*/ is nolonger referenced and is automatically deleted.*/
void unref() { --_refCount; if (_refCount<=0) delete this; } inline void unref() const { --_refCount; if (_refCount<=0) delete this; }
/** return the number pointers currently referencing this object. */ /** return the number pointers currently referencing this object. */
int referenceCount() { return _refCount; } inline const int referenceCount() const { return _refCount; }
protected: protected:
virtual ~Referenced() {}; virtual ~Referenced() {}
int _refCount; mutable int _refCount;
}; };
}; };

View File

@ -2,19 +2,181 @@
#define OSG_STATE 1 #define OSG_STATE 1
#include <osg/Export> #include <osg/Export>
#include <osg/StateSet>
#include <osg/Matrix>
#include <vector>
#include <map>
namespace osg { namespace osg {
class SG_EXPORT State /** macro for use with osg::StateAttrbiute::apply methods for detected and
* reporting OpenGL error messages.*/
#define OSG_GL_DEBUG(message) \
if (state.getFineGrainedErrorDetection()) \
{ \
GLenum errorNo = glGetError(); \
if (errorNo!=GL_NO_ERROR) \
{ \
osg::notify(WARN)<<"Warning: detected OpenGL error '"<<gluErrorString(errorNo)<<" "<<message<<endl; \
}\
}
/** State class for managing a state stack.
* Lazy state updating is used to minize state changes.
*/
class SG_EXPORT State : public Referenced
{ {
public : public :
State( void );
~State( void );
private : State();
GeoState *initial;
GeoState *req; virtual ~State();
GeoState *current;
/** push stateset onto state stack.*/
void pushStateSet(const StateSet* dstate);
/** pop drawstate off state stack.*/
void popStateSet();
/** reset the state object to an empty stack.*/
void reset();
/** apply an OpenGL mode if required. */
inline const bool apply_mode(const StateAttribute::GLMode mode,const bool enabled)
{
return apply_mode(mode,enabled,_modeMap[mode]);
}
/** apply an attribute if required. */
inline const bool apply_attribute(const StateAttribute* attribute)
{
return apply_attribute(attribute,_attributeMap[attribute->getType()]);
}
/** apply stateset.*/
void apply(const StateSet* dstate);
/** apply the state.*/
void apply();
/** mode has been set externally, update state to reflect this setting.*/
void have_applied(const StateAttribute::GLMode mode,const StateAttribute::GLModeValue value);
/** attribute has been applied externally, update state to reflect this setting.*/
void have_applied(const StateAttribute* attribute);
/** Set the current OpenGL context uniqueID.
Note, it is the application developers responsiblity to
set up unique ID for each OpenGL context. This value is
then used by osg::StateAttribure's and osg::Drawable's to
help manage OpenGL display list and texture binds appropriate
for each context.*/
inline void setContextID(unsigned int contextID) { _contextID=contextID; }
/** Get the current OpenGL context unique ID.*/
inline const unsigned int getContextID() const { return _contextID; }
/** Set the frame number.*/
inline void setFrameNumber(unsigned int fn) { _frameNumber = fn; }
/** Get the frame number.*/
inline unsigned int getFrameNumber() const { return _frameNumber; }
/** Increment the frame number. Done once per frame.*/
inline void incrementFrameNumber() { ++_frameNumber; }
/** Set the hint to OpenGL routines to do fine grained OpenGL error checking.*/
void setFineGrainedErrorDetection(const bool flag) { _fineGrainedErrorDetection = flag; }
/** Get the hint to OpenGL routines to do fine grained OpenGL error checking.*/
const bool getFineGrainedErrorDetection() const { return _fineGrainedErrorDetection; }
private:
unsigned int _contextID;
unsigned int _frameNumber;
typedef std::vector<StateAttribute::GLModeValue> ValueVec;
struct ModeStack
{
ModeStack()
{
changed = false;
last_applied_value = false;
}
bool changed;
bool last_applied_value;
ValueVec valueVec;
};
typedef std::pair<const StateAttribute*,StateAttribute::OverrideValue> AttributePair;
typedef std::vector<AttributePair> AttributeVec;
struct AttributeStack
{
AttributeStack()
{
changed = false;
last_applied_attribute = 0L;
}
bool changed;
const StateAttribute* last_applied_attribute;
AttributeVec attributeVec;
};
/** apply an OpenGL mode if required, passing in mode, enable flag and appropriate mode stack */
inline const bool apply_mode(const StateAttribute::GLMode mode,const bool enabled,ModeStack& ms)
{
if (ms.last_applied_value != enabled)
{
ms.last_applied_value = enabled;
if (enabled) glEnable(mode);
else glDisable(mode);
return true;
}
else
return false;
}
/** apply an attribute if required, passing in attribute and appropriate attribute stack */
inline const bool apply_attribute(const StateAttribute* attribute,AttributeStack& as)
{
if (as.last_applied_attribute != attribute)
{
as.last_applied_attribute = attribute;
attribute->apply(*this);
return true;
}
else
return false;
}
typedef std::map<StateAttribute::GLMode,ModeStack> ModeMap;
typedef std::map<StateAttribute::Type,AttributeStack> AttributeMap;
typedef std::vector<ref_ptr<const StateSet> > StateSetStack;
typedef std::vector<ref_ptr<const Matrix> > MatrixStack;
ModeMap _modeMap;
AttributeMap _attributeMap;
StateSetStack _drawStateStack;
bool _fineGrainedErrorDetection;
}; };
}; };

View File

@ -5,7 +5,7 @@
namespace osg { namespace osg {
/** Switch - Group node which allows switching between children. /** Switch is a Group node which allows switching between children.
Typical uses would be for objects which might need to be rendered Typical uses would be for objects which might need to be rendered
differently at different times, for instance a switch could be used differently at different times, for instance a switch could be used
to represent the different states of a traffic light. to represent the different states of a traffic light.
@ -14,29 +14,43 @@ class SG_EXPORT Switch : public Group
{ {
public : public :
/**
* Special mode values for the Switch. Use these if you want to
* turn on/off all child nodes.
*/
enum SwitchType { enum SwitchType {
/** Turn on all children. */
ALL_CHILDREN_ON=-1, ALL_CHILDREN_ON=-1,
/** Turn off all children. */
ALL_CHILDREN_OFF=-2 ALL_CHILDREN_OFF=-2
}; };
Switch(); Switch();
virtual Object* clone() const { return new Switch(); } virtual Object* clone() const { return new Switch(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<Switch*>(obj)!=NULL; } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const Switch*>(obj)!=NULL; }
virtual const char* className() const { return "Switch"; } virtual const char* className() const { return "Switch"; }
virtual void accept(NodeVisitor& nv) { nv.apply(*this); } virtual void accept(NodeVisitor& nv) { nv.apply(*this); }
virtual void traverse(NodeVisitor& nv); virtual void traverse(NodeVisitor& nv);
void setVal(int val) { _value = val; } /**
int getVal() const { return _value; } * Selects the active child Node or enables a special
* SwitchType mode.
* @param value the number of the active child
* (first child == number 0) or SwitchType. Invalid values
* will be ignored.
*/
inline void setValue(const int value) { _value = value; }
/**
* Returns the number of the active child Node or the SwitchType.
*/
inline const int getValue() const { return _value; }
protected : protected :
virtual ~Switch() {} virtual ~Switch() {}
virtual bool readLocalData(Input& fr); /** The current Switch value. */
virtual bool writeLocalData(Output& fw);
int _value; int _value;
}; };

View File

@ -1,43 +1,41 @@
#ifndef OSG_TEXENV #ifndef OSG_TEXENV
#define OSG_TEXENV 1 #define OSG_TEXENV 1
#include <osg/Export>
#include <osg/GL> #include <osg/GL>
#include <osg/Object> #include <osg/StateAttribute>
namespace osg { namespace osg {
/** TexEnv - encapsulates the OpenGL glTexEnv (texture environment) state.*/
class SG_EXPORT TexEnv : public Object class SG_EXPORT TexEnv : public StateAttribute
{ {
public : public :
enum TexEnvMode {
DECAL = GL_DECAL,
MODULATE = GL_MODULATE,
BLEND = GL_BLEND
};
TexEnv( void ); TexEnv( void );
static TexEnv* instance();
virtual Object* clone() const { return new TexEnv(); } virtual Object* clone() const { return new TexEnv(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<TexEnv*>(obj)!=NULL; } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const TexEnv*>(obj)!=0L; }
virtual const char* className() const { return "TexEnv"; } virtual const char* className() const { return "TexEnv"; }
virtual const Type getType() const { return TEXENV; }
void setMode( TexEnvMode mode ); enum Mode {
void apply( void ); DECAL = GL_DECAL,
MODULATE = GL_MODULATE,
BLEND = GL_BLEND,
REPLACE = GL_REPLACE
};
void setMode( const Mode mode );
const Mode getMode() const { return _mode; }
virtual void apply(State& state) const;
protected : protected :
virtual ~TexEnv( void ); virtual ~TexEnv( void );
virtual bool readLocalData(Input& fr);
virtual bool writeLocalData(Output& fw);
bool matchModeStr(const char* str,TexEnvMode& mode); Mode _mode;
const char* getModeStr(TexEnvMode mode);
TexEnvMode _mode;
}; };
}; };

View File

@ -1,51 +1,72 @@
#ifndef OSG_TEXGEN #ifndef OSG_TEXGEN
#define OSG_TEXGEN 1 #define OSG_TEXGEN 1
#include <osg/Export> #include <osg/Vec4>
#include <osg/GL> #include <osg/StateAttribute>
#include <osg/OSG> #include <osg/StateSet>
#include <osg/Object>
namespace osg { namespace osg {
/** TexGen - encapsulates the OpenGL glTexGen (texture coordinate generation) state.*/
class Input; class SG_EXPORT TexGen : public StateAttribute
class Output;
class SG_EXPORT TexGen : public Object
{ {
public : public :
enum TexGenMode { TexGen( void );
virtual Object* clone() const { return new TexGen(); }
virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const TexGen*>(obj)!=NULL; }
virtual const char* className() const { return "TexGen"; }
virtual const Type getType() const { return TEXGEN; }
virtual void setStateSetModes(StateSet& ds,const GLModeValue value) const
{
ds.setMode(GL_TEXTURE_GEN_S,value);
ds.setMode(GL_TEXTURE_GEN_T,value);
// Not happy with turning all tex gen paramters on
// as the OSG currently only supports 2D textures and therefore
// only S and T will only be required, R&Q would be redundent...
// So commenting out the following until OSG supports 3D texures.
// I plan to revamp the OpenGL state management later so will
// tidy up then. Robert Osfield. Jan 2001.
// The tidy up is now happening, but wiil have a think before
// resolving the below parameters.
// ds.setMode(GL_TEXTURE_GEN_R,value);
// ds.setMode(GL_TEXTURE_GEN_Q,value);
}
virtual void apply(State& state) const;
enum Mode {
OBJECT_LINEAR = GL_OBJECT_LINEAR, OBJECT_LINEAR = GL_OBJECT_LINEAR,
EYE_LINEAR = GL_EYE_LINEAR, EYE_LINEAR = GL_EYE_LINEAR,
SPHERE_MAP = GL_SPHERE_MAP SPHERE_MAP = GL_SPHERE_MAP
}; };
TexGen( void ); inline void setMode( const Mode mode ) { _mode = mode; }
static TexGen* instance();
virtual Object* clone() const { return new TexGen(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<TexGen*>(obj)!=NULL; }
virtual const char* className() const { return "TexGen"; }
static void enable( void ); const Mode getMode() const { return _mode; }
static void disable( void );
void apply( void ); enum Coord {
S, T, R, Q
};
void setMode( TexGenMode mode ) { _mode = mode; } void setPlane(const Coord which, const Vec4& plane);
const Vec4& getPlane(const Coord which) const;
protected : protected :
virtual ~TexGen( void ); virtual ~TexGen( void );
virtual bool readLocalData(Input& fr); Mode _mode;
virtual bool writeLocalData(Output& fw);
bool matchModeStr(const char* str,TexGenMode& mode); /// additional texgen coefficents for GL_OBJECT_PLANE or GL_EYE_PLANE,
const char* getModeStr(TexGenMode mode); Vec4 _plane_s, _plane_t, _plane_r, _plane_q;
TexGenMode _mode;
}; };

View File

@ -1,26 +1,40 @@
#ifndef OSG_TEXMAT #ifndef OSG_TEXMAT
#define OSG_TEXMAT 1 #define OSG_TEXMAT 1
#include <osg/Export> #include <osg/StateAttribute>
#include <osg/Matrix> #include <osg/Matrix>
namespace osg { namespace osg {
class SG_EXPORT TexMat : public Matrix /** Texture Matrix state class for encapsulating OpenGL texture matrix functionality.*/
class SG_EXPORT TexMat : public StateAttribute
{ {
public : public :
TexMat( void ); TexMat( void );
static TexMat* instance();
virtual Object* clone() const { return new TexMat(); } virtual Object* clone() const { return new TexMat(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<TexMat*>(obj)!=NULL; } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const TexMat*>(obj)!=NULL; }
virtual const char* className() const { return "TexMat"; } virtual const char* className() const { return "TexMat"; }
void apply( void ); virtual const Type getType() const { return TEXMAT; }
/** Set the texture matrix */
inline void setMatrix(const Matrix& matrix) { _matrix = matrix; }
/** Get the texture matrix */
inline Matrix& getMatrix() { return _matrix; }
/** Get the const texture matrix */
inline const Matrix& getMatrix() const { return _matrix; }
/** apply as OpenGL texture matrix.*/
virtual void apply(State& state) const;
protected: protected:
virtual ~TexMat( void ); virtual ~TexMat( void );
Matrix _matrix;
}; };
}; };

View File

@ -1,33 +1,110 @@
// -*-c++-*-
#ifndef OSG_TEXTURE #ifndef OSG_TEXTURE
#define OSG_TEXTURE 1 #define OSG_TEXTURE 1
#include <osg/Export>
#include <osg/GL> #include <osg/GL>
#include <osg/OSG> #include <osg/Types>
#include <osg/Image> #include <osg/Image>
#include <osg/StateAttribute>
#include <osg/StateSet>
#include <osg/ref_ptr>
#include <vector>
#include <map>
#include <set>
// if not defined by gl.h use the definition found in:
// http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_filter_anisotropic.txt
#ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT
#define GL_TEXTURE_MAX_ANISOTROPY_EXT (GLenum)0x84fe
#endif
#ifndef GL_ARB_texture_compression
#define GL_COMPRESSED_ALPHA_ARB 0x84E9
#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA
#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
#define GL_COMPRESSED_INTENSITY_ARB 0x84EC
#define GL_COMPRESSED_RGB_ARB 0x84ED
#define GL_COMPRESSED_RGBA_ARB 0x84EE
#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF
#define GL_TEXTURE_IMAGE_SIZE_ARB 0x86A0
#define GL_TEXTURE_COMPRESSED_ARB 0x86A1
#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
#endif
#ifndef GL_EXT_texture_compression_s3tc
#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
#endif
#ifndef GL_MIRRORED_REPEAT_IBM
#define GL_MIRRORED_REPEAT_IBM 0x8370
#endif
#ifndef GL_GENERATE_MIPMAP_SGIS
#define GL_GENERATE_MIPMAP_SGIS (GLenum)0x8191
#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192
#endif
namespace osg { namespace osg {
class Input;
class Output;
/** Texture state class which encapsulates OpenGl texture functionality.*/ /** Texture state class which encapsulates OpenGl texture functionality.*/
class SG_EXPORT Texture : public Object class SG_EXPORT Texture : public StateAttribute
{ {
public : public :
Texture(); Texture();
static Texture* instance();
virtual Object* clone() const { return new Texture(); } virtual Object* clone() const { return new Texture(); }
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<Texture*>(obj)!=NULL; } virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const Texture*>(obj)!=0L; }
virtual const char* className() const { return "Texture"; } virtual const char* className() const { return "Texture"; }
virtual const Type getType() const { return (Type)(TEXTURE_0+_textureUnit); }
virtual void setStateSetModes(StateSet& ds,const GLModeValue value) const
{
ds.setMode(GL_TEXTURE_2D,value);
}
/** Set the texture image. */ /** Set the texture image. */
void setImage(Image* image); void setImage(Image* image);
/** Get the texture image. */ /** Get the texture image. */
Image* getImage() const { return _image.get(); } Image* getImage() { return _image.get(); }
/** Get the const texture image. */
inline const Image* getImage() const { return _image.get(); }
/** Copy pixels into a 2D texture image.As per glCopyTexImage2D.
* Creates an OpenGL texture object from the current OpenGL background
* framebuffer contents at pos \a x, \a y with width \a width and
* height \a height. \a width and \a height must be a power of two.
*/
void copyTexImage2D(State& state, int x, int y, int width, int height );
/** Copy a two-dimensional texture subimage. As per glCopyTexSubImage2D.
* Updates portion of an exisiting OpenGL texture object from the current OpenGL background
* framebuffer contents at pos \a x, \a y with width \a width and
* height \a height. \a width and \a height must be a power of two,
* and writing into the texture with offset \a xoffset and \a yoffset.
*/
void copyTexSubImage2D(State& state, int xoffset, int yoffset, int x, int y, int width, int height );
/** Set the texture unit.
* Valid values are 0,1,2,3.
* Default value of texture unit is 0.
* note, multi-texturing not fully implemented yet... April 2001.
*/
inline void setTextureUnit(const unsigned int textureUnit) { _textureUnit = textureUnit; }
/** get the texture unit.*/
inline const unsigned int getTextureUnit() const { return _textureUnit; }
enum WrapParameter { enum WrapParameter {
WRAP_S, WRAP_S,
@ -37,13 +114,14 @@ class SG_EXPORT Texture : public Object
enum WrapMode { enum WrapMode {
CLAMP = GL_CLAMP, CLAMP = GL_CLAMP,
REPEAT = GL_REPEAT REPEAT = GL_REPEAT,
MIRROR = GL_MIRRORED_REPEAT_IBM
}; };
/** Set the texture wrap mode.*/ /** Set the texture wrap mode.*/
void setWrap(WrapParameter which, WrapMode wrap); void setWrap(const WrapParameter which, const WrapMode wrap);
/** Get the texture wrap mode.*/ /** Get the texture wrap mode.*/
WrapMode getWrap(WrapParameter which) const; const WrapMode getWrap(const WrapParameter which) const;
enum FilterParameter { enum FilterParameter {
@ -57,46 +135,161 @@ class SG_EXPORT Texture : public Object
LINEAR_MIPMAP_NEAREST = GL_LINEAR_MIPMAP_NEAREST, LINEAR_MIPMAP_NEAREST = GL_LINEAR_MIPMAP_NEAREST,
NEAREST = GL_NEAREST, NEAREST = GL_NEAREST,
NEAREST_MIPMAP_LINEAR = GL_NEAREST_MIPMAP_LINEAR, NEAREST_MIPMAP_LINEAR = GL_NEAREST_MIPMAP_LINEAR,
NEAREST_MIPMAP_NEAREST = GL_NEAREST_MIPMAP_NEAREST NEAREST_MIPMAP_NEAREST = GL_NEAREST_MIPMAP_NEAREST,
ANISOTROPIC = GL_TEXTURE_MAX_ANISOTROPY_EXT
}; };
/** Set the texture filter mode.*/ /** Set the texture filter mode.*/
void setFilter(FilterParameter which, FilterMode filter); void setFilter(const FilterParameter which, const FilterMode filter);
/** Get the texture filter mode.*/ /** Get the texture filter mode.*/
FilterMode getFilter(FilterParameter which) const; const FilterMode getFilter(const FilterParameter which) const;
/** Enable OpenGL texturing.*/ enum InternalFormatMode {
static void enable( void ); USE_IMAGE_DATA_FORMAT,
/** Disable OpenGL texturing.*/ USE_USER_DEFINED_FORMAT,
static void disable( void ); USE_ARB_COMPRESSION,
USE_S3TC_DXT1_COMPRESSION,
USE_S3TC_DXT3_COMPRESSION,
USE_S3TC_DXT5_COMPRESSION
};
/** Set the internal format mode.
* Note, If the mode is set USE_IMAGE_DATA_FORMAT, USE_ARB_COMPRESSION,
* USE_S3TC_COMPRESSION the internalFormat is automatically selected,
* and will overwrite the previous _internalFormatValue.
*/
inline void setInternalFormatMode(const InternalFormatMode mode) { _internalFormatMode = mode; }
/** Get the internal format mode.*/
inline const InternalFormatMode getInternalFormatMode() const { return _internalFormatMode; }
/** Set the internal format to use when creating OpenGL textures.
* Also sets the internalFormatMode to USE_USER_DEFINED_FORMAT.
*/
inline void setInternalFormatValue(const int internalFormat)
{
_internalFormatMode = USE_USER_DEFINED_FORMAT;
_internalFormatValue = internalFormat;
}
/** Get the internal format to use when creating OpenGL textures.*/
inline const int getInternalFormatValue() const { return _internalFormatValue; }
/** return the OpenGL texture object for specified context.*/
inline const uint getTextureObject(const uint contextID) const { if (contextID<_handleList.size()) return _handleList[contextID]; else return 0;}
/** return the memory size of texture object.
* Texture object size can be used for estimating the cost of
* uploading the texture to graphics hardware, which inturn can
* be used for setting texture residence priorities. */
inline const uint getTextureObjectSize() const { return _textureObjectSize; }
enum SubloadMode {
OFF,
AUTO,
IF_DIRTY
};
/** Set the texture subload mode. */
inline void setSubloadMode(const SubloadMode mode) { _subloadMode = mode; }
/** Get the texture subload mode. */
inline const SubloadMode getSubloadMode() const { return _subloadMode; }
/** Set the texture subload offsets. */
inline void setSubloadOffset(const int x, const int y) {
_subloadOffsX = x;
_subloadOffsY = y;
}
/** Get the texture subload offsets. */
inline void getSubloadOffset(int& x, int& y) const {
x = _subloadOffsX;
y = _subloadOffsY;
}
/** Get the handle to the texture object for the current context.*/
inline uint& getHandle(const uint contextID) const
{
// pad out handle list if required.
while (_handleList.size()<=contextID)
_handleList.push_back(0);
// get the globj for the current contextID.
return _handleList[contextID];
}
/** Force a recompile on next apply() of associated OpenGL texture objects.*/
void dirtyTextureObject();
/** On first apply (unless already compiled), create the minmapped
* texture and bind it, subsequent apply will simple bind to texture.*/
virtual void apply(State& state) const;
/** Compile the texture mip maps. Implemented by simply calling apply().*/
virtual void compile(State& state) const;
/** Method which does the creation of the texture itself, and
* does not set or use texture binding. */
virtual void applyImmediateMode(State& state) const;
/** use deleteTextureObject instead of glDeleteTextures to allow
* OpenGL texture objects to cached until they can be deleted
* by the OpenGL context in which they were created, specified
* by contextID.*/
static void deleteTextureObject(uint contextID,uint handle);
/** flush all the cached display list which need to be deleted
* in the OpenGL context related to contextID.*/
static void flushDeletedTextureObjects(uint contextID);
/** On first apply, create the minmapped texture and bind it,
subsequent apply will simple bind to texture.*/
void apply( void );
protected : protected :
virtual ~Texture(); virtual ~Texture();
virtual bool readLocalData(Input& fr); typedef std::vector<uint> TextureNameList;
virtual bool writeLocalData(Output& fw); mutable TextureNameList _handleList;
uint _handle; typedef std::vector<uint> ImageModifiedTag;
mutable ImageModifiedTag _modifiedTag;
ref_ptr<Image> _image; // size of the created OpenGL texture object, may be estimated.
mutable uint _textureObjectSize;
bool matchWrapStr(const char* str,WrapMode& wrap); // not ideal that _image is mutable, but its required since
const char* getWrapStr(WrapMode wrap); // Image::ensureDimensionsArePowerOfTwo() can only be called
// in a valid OpenGL context, a therefore within an Texture::apply
// which is const...
mutable ref_ptr<Image> _image;
bool matchFilterStr(const char* str,FilterMode& filter); unsigned int _textureUnit;
const char* getFilterStr(FilterMode filter);
WrapMode _wrap_s; WrapMode _wrap_s;
WrapMode _wrap_t; WrapMode _wrap_t;
WrapMode _wrap_r; WrapMode _wrap_r;
FilterMode _min_filter; FilterMode _min_filter;
FilterMode _mag_filter; FilterMode _mag_filter;
InternalFormatMode _internalFormatMode;
int _internalFormatValue;
// subloaded images can have different texture and image sizes.
mutable unsigned int _textureWidth, _textureHeight;
SubloadMode _subloadMode;
unsigned int _subloadOffsX, _subloadOffsY;
// static cache of deleted display lists which can only
// by completely deleted once the appropriate OpenGL context
// is set.
typedef std::map<uint,std::set<uint> > DeletedTextureObjectCache;
static DeletedTextureObjectCache s_deletedTextureObjectCache;
}; };
}; };

View File

@ -3,14 +3,22 @@
#include <osg/Export> #include <osg/Export>
#ifdef macintosh
//#define __TIMESIZE_DOUBLE__
#include <ctime>
#endif
namespace osg { namespace osg {
#ifdef WIN32 #ifdef WIN32
typedef __int64 Timer_t; typedef __int64 Timer_t;
#elif defined macintosh
typedef double Timer_t;
#else #else
typedef unsigned long long Timer_t; typedef unsigned long long Timer_t;
#endif #endif
/** A high resolution, low latency time stamper.*/
class SG_EXPORT Timer { class SG_EXPORT Timer {
public: public:
@ -42,13 +50,19 @@ class SG_EXPORT Timer {
} }
#pragma optimize("",on) #pragma optimize("",on)
#endif #endif
#ifdef __linux #if defined(__linux) || defined(__FreeBSD__)
#define CLK(x) __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x)) #define CLK(x) __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x))
inline Timer_t tick( void ) {Timer_t x;CLK(x);return x;} inline Timer_t tick( void ) {Timer_t x;CLK(x);return x;}
#endif #endif
#ifdef __sgi #ifdef __sgi
inline Timer_t tick( void ) { return *clk; } inline Timer_t tick( void ) { return *clk; }
#endif #endif
#ifdef macintosh
// because __TIMESIZE_DOUBLE__ is defined
// clock resolution is now: 100000 CLOCKS_PER_SEC instead of 60
inline Timer_t tick( void ) { return std::clock(); }
#endif
double delta_s( Timer_t t1, Timer_t t2 ); double delta_s( Timer_t t1, Timer_t t2 );
double delta_m( Timer_t t1, Timer_t t2 ); double delta_m( Timer_t t1, Timer_t t2 );

View File

@ -1,17 +1,28 @@
#ifndef OSG_TRANSPARENCY #ifndef OSG_TRANSPARENCY
#define OSG_TRANSPARENCY 1 #define OSG_TRANSPARENCY 1
#include <osg/Export> #include <osg/StateAttribute>
#include <osg/Object> #include <osg/StateSet>
#include <osg/GL>
namespace osg { namespace osg {
/** Transparancy - encapsulates the OpenGL transparancy state.*/
class SG_EXPORT Transparency : public Object class SG_EXPORT Transparency : public StateAttribute
{ {
public : public :
Transparency();
virtual Object* clone() const { return new Transparency(); }
virtual bool isSameKindAs(const Object* obj) const { return dynamic_cast<const Transparency*>(obj)!=0L; }
virtual const char* className() const { return "Transparency"; }
virtual const Type getType() const { return TRANSPARENCY; }
virtual void setStateSetModes(StateSet& ds,const GLModeValue value) const
{
ds.setMode(GL_BLEND,value);
}
enum TransparencyMode { enum TransparencyMode {
DST_ALPHA = GL_DST_ALPHA, DST_ALPHA = GL_DST_ALPHA,
DST_COLOR = GL_DST_COLOR, DST_COLOR = GL_DST_COLOR,
@ -26,16 +37,19 @@ class SG_EXPORT Transparency : public Object
ZERO = GL_ZERO ZERO = GL_ZERO
}; };
Transparency(); inline void setFunction( const int source, const int destination )
static Transparency * instance(); {
virtual Object* clone() const { return new Transparency(); } _source_factor = source;
virtual bool isSameKindAs(Object* obj) { return dynamic_cast<Transparency*>(obj)!=NULL; } _destination_factor = destination;
virtual const char* className() const { return "Transparency"; } }
void setFunction( int source, int destination ); void setSource(const int source) { _source_factor = source; }
static void enable( void ); inline const int getSource() const { return _source_factor; }
static void disable( void );
void apply( void ); void setDestination(const int destination) { _destination_factor = destination; }
inline const int getDestination() const { return _destination_factor; }
virtual void apply(State& state) const;
protected : protected :

View File

@ -1,9 +1,6 @@
#ifndef OSG_TYPES #ifndef OSG_TYPES
#define OSG_TYPES 1 #define OSG_TYPES 1
#include <osg/Export>
#include <osg/Vec3>
namespace osg { namespace osg {
typedef unsigned int uint; typedef unsigned int uint;
@ -11,7 +8,7 @@ typedef unsigned short ushort;
typedef unsigned char uchar; typedef unsigned char uchar;
typedef uchar ubyte; typedef uchar ubyte;
#ifdef WIN32 #if defined(WIN32) || defined (macintosh)
#define M_E 2.7182818284590452354 #define M_E 2.7182818284590452354
#define M_LOG2E 1.4426950408889634074 #define M_LOG2E 1.4426950408889634074
#define M_LOG10E 0.43429448190325182765 #define M_LOG10E 0.43429448190325182765

View File

@ -1,7 +1,6 @@
#ifndef OSG_VEC2 #ifndef OSG_VEC2
#define OSG_VEC2 1 #define OSG_VEC2 1
#include <osg/Export>
#include <math.h> #include <math.h>
#ifdef OSG_USE_IO_DOT_H #ifdef OSG_USE_IO_DOT_H
@ -29,7 +28,14 @@ class Vec2
float _v[2]; float _v[2];
bool operator == (const Vec2& v) const { return _v[0]==v._v[0] && _v[1]==v._v[1]; } const bool operator == (const Vec2& v) const { return _v[0]==v._v[0] && _v[1]==v._v[1]; }
const bool operator < (const Vec2& v) const
{
if (_v[0]<v._v[0]) return true;
else if (_v[0]>v._v[0]) return false;
else return (_v[1]<v._v[1]);
}
inline float* ptr() { return _v; } inline float* ptr() { return _v; }
inline const float* ptr() const { return _v; } inline const float* ptr() const { return _v; }
@ -37,22 +43,22 @@ class Vec2
inline void set( float x, float y ) { _v[0]=x; _v[1]=y; } inline void set( float x, float y ) { _v[0]=x; _v[1]=y; }
inline float& operator [] (int i) { return _v[i]; } inline float& operator [] (int i) { return _v[i]; }
inline float operator [] (int i) const { return _v[i]; } inline const float operator [] (int i) const { return _v[i]; }
inline float& x() { return _v[0]; } inline float& x() { return _v[0]; }
inline float& y() { return _v[1]; } inline float& y() { return _v[1]; }
inline float x() const { return _v[0]; } inline const float x() const { return _v[0]; }
inline float y() const { return _v[1]; } inline const float y() const { return _v[1]; }
/// dot product /// dot product
inline float operator * (const Vec2& rhs) const inline const float operator * (const Vec2& rhs) const
{ {
return _v[0]*rhs._v[0]+_v[1]*rhs._v[1]; return _v[0]*rhs._v[0]+_v[1]*rhs._v[1];
} }
/// multiply by scalar /// multiply by scalar
inline Vec2 operator * (const float& rhs) const inline const Vec2 operator * (const float& rhs) const
{ {
return Vec2(_v[0]*rhs, _v[1]*rhs); return Vec2(_v[0]*rhs, _v[1]*rhs);
} }
@ -66,7 +72,7 @@ class Vec2
} }
/// divide by scalar /// divide by scalar
inline Vec2 operator / (const float& rhs) const inline const Vec2 operator / (const float& rhs) const
{ {
return Vec2(_v[0]/rhs, _v[1]/rhs); return Vec2(_v[0]/rhs, _v[1]/rhs);
} }
@ -80,7 +86,7 @@ class Vec2
} }
/// binary vector add /// binary vector add
inline Vec2 operator + (const Vec2& rhs) const inline const Vec2 operator + (const Vec2& rhs) const
{ {
return Vec2(_v[0]+rhs._v[0], _v[1]+rhs._v[1]); return Vec2(_v[0]+rhs._v[0], _v[1]+rhs._v[1]);
} }
@ -95,7 +101,7 @@ class Vec2
} }
/// binary vector subract /// binary vector subract
inline Vec2 operator - (const Vec2& rhs) const inline const Vec2 operator - (const Vec2& rhs) const
{ {
return Vec2(_v[0]-rhs._v[0], _v[1]-rhs._v[1]); return Vec2(_v[0]-rhs._v[0], _v[1]-rhs._v[1]);
} }
@ -109,26 +115,26 @@ class Vec2
} }
/// negation operator. Returns the negative of the Vec2 /// negation operator. Returns the negative of the Vec2
inline Vec2 operator - () const inline const Vec2 operator - () const
{ {
return Vec2 (-_v[0], -_v[1]); return Vec2 (-_v[0], -_v[1]);
} }
/// Length of the vector = sqrt( vec . vec ) /// Length of the vector = sqrt( vec . vec )
inline float length() const inline const float length() const
{ {
return sqrtf( _v[0]*_v[0] + _v[1]*_v[1] ); return sqrtf( _v[0]*_v[0] + _v[1]*_v[1] );
} }
/// Length squared of the vector = vec . vec /// Length squared of the vector = vec . vec
inline float length2( void ) const inline const float length2( void ) const
{ {
return _v[0]*_v[0] + _v[1]*_v[1]; return _v[0]*_v[0] + _v[1]*_v[1];
} }
/** normalize the vector so that it has length unity /** normalize the vector so that it has length unity
returns the previous length of the vector*/ returns the previous length of the vector*/
inline float normalize() inline const float normalize()
{ {
float norm = Vec2::length(); float norm = Vec2::length();
_v[0] /= norm; _v[0] /= norm;

View File

@ -1,7 +1,6 @@
#ifndef OSG_VEC3 #ifndef OSG_VEC3
#define OSG_VEC3 1 #define OSG_VEC3 1
#include <osg/Export>
#include <math.h> #include <math.h>
#ifdef OSG_USE_IO_DOT_H #ifdef OSG_USE_IO_DOT_H
@ -28,7 +27,16 @@ class Vec3
float _v[3]; float _v[3];
bool operator == (const Vec3& v) const { return _v[0]==v._v[0] && _v[1]==v._v[1] && _v[2]==v._v[2]; } inline const bool operator == (const Vec3& v) const { return _v[0]==v._v[0] && _v[1]==v._v[1] && _v[2]==v._v[2]; }
inline const bool operator < (const Vec3& v) const
{
if (_v[0]<v._v[0]) return true;
else if (_v[0]>v._v[0]) return false;
else if (_v[1]<v._v[1]) return true;
else if (_v[1]>v._v[1]) return false;
else return (_v[2]<v._v[2]);
}
inline float* ptr() { return _v; } inline float* ptr() { return _v; }
inline const float* ptr() const { return _v; } inline const float* ptr() const { return _v; }
@ -39,15 +47,15 @@ class Vec3
} }
inline float& operator [] (int i) { return _v[i]; } inline float& operator [] (int i) { return _v[i]; }
inline float operator [] (int i) const { return _v[i]; } inline const float operator [] (int i) const { return _v[i]; }
inline float& x() { return _v[0]; } inline float& x() { return _v[0]; }
inline float& y() { return _v[1]; } inline float& y() { return _v[1]; }
inline float& z() { return _v[2]; } inline float& z() { return _v[2]; }
inline float x() const { return _v[0]; } inline const float x() const { return _v[0]; }
inline float y() const { return _v[1]; } inline const float y() const { return _v[1]; }
inline float z() const { return _v[2]; } inline const float z() const { return _v[2]; }
/// dot product /// dot product
inline float operator * (const Vec3& rhs) const inline float operator * (const Vec3& rhs) const
@ -56,7 +64,7 @@ class Vec3
} }
/// cross product /// cross product
inline Vec3 operator ^ (const Vec3& rhs) const inline const Vec3 operator ^ (const Vec3& rhs) const
{ {
return Vec3(_v[1]*rhs._v[2]-_v[2]*rhs._v[1], return Vec3(_v[1]*rhs._v[2]-_v[2]*rhs._v[1],
_v[2]*rhs._v[0]-_v[0]*rhs._v[2] , _v[2]*rhs._v[0]-_v[0]*rhs._v[2] ,
@ -64,7 +72,7 @@ class Vec3
} }
/// multiply by scalar /// multiply by scalar
inline Vec3 operator * (const float& rhs) const inline const Vec3 operator * (const float& rhs) const
{ {
return Vec3(_v[0]*rhs, _v[1]*rhs, _v[2]*rhs); return Vec3(_v[0]*rhs, _v[1]*rhs, _v[2]*rhs);
} }
@ -79,7 +87,7 @@ class Vec3
} }
/// divide by scalar /// divide by scalar
inline Vec3 operator / (const float& rhs) const inline const Vec3 operator / (const float& rhs) const
{ {
return Vec3(_v[0]/rhs, _v[1]/rhs, _v[2]/rhs); return Vec3(_v[0]/rhs, _v[1]/rhs, _v[2]/rhs);
} }
@ -94,7 +102,7 @@ class Vec3
} }
/// binary vector add /// binary vector add
inline Vec3 operator + (const Vec3& rhs) const inline const Vec3 operator + (const Vec3& rhs) const
{ {
return Vec3(_v[0]+rhs._v[0], _v[1]+rhs._v[1], _v[2]+rhs._v[2]); return Vec3(_v[0]+rhs._v[0], _v[1]+rhs._v[1], _v[2]+rhs._v[2]);
} }
@ -110,7 +118,7 @@ class Vec3
} }
/// binary vector subract /// binary vector subract
inline Vec3 operator - (const Vec3& rhs) const inline const Vec3 operator - (const Vec3& rhs) const
{ {
return Vec3(_v[0]-rhs._v[0], _v[1]-rhs._v[1], _v[2]-rhs._v[2]); return Vec3(_v[0]-rhs._v[0], _v[1]-rhs._v[1], _v[2]-rhs._v[2]);
} }
@ -125,26 +133,26 @@ class Vec3
} }
/// negation operator. Returns the negative of the Vec3 /// negation operator. Returns the negative of the Vec3
inline Vec3 operator - () const inline const Vec3 operator - () const
{ {
return Vec3 (-_v[0], -_v[1], -_v[2]); return Vec3 (-_v[0], -_v[1], -_v[2]);
} }
/// Length of the vector = sqrt( vec . vec ) /// Length of the vector = sqrt( vec . vec )
inline float length( void ) const inline const float length() const
{ {
return sqrtf( _v[0]*_v[0] + _v[1]*_v[1] + _v[2]*_v[2] ); return sqrtf( _v[0]*_v[0] + _v[1]*_v[1] + _v[2]*_v[2] );
} }
/// Length squared of the vector = vec . vec /// Length squared of the vector = vec . vec
inline float length2( void ) const inline const float length2() const
{ {
return _v[0]*_v[0] + _v[1]*_v[1] + _v[2]*_v[2]; return _v[0]*_v[0] + _v[1]*_v[1] + _v[2]*_v[2];
} }
/** normalize the vector so that it has length unity /** normalize the vector so that it has length unity
returns the previous length of the vector*/ returns the previous length of the vector*/
inline float normalize() inline const float normalize()
{ {
float norm = Vec3::length(); float norm = Vec3::length();
_v[0] /= norm; _v[0] /= norm;
@ -153,15 +161,17 @@ class Vec3
return( norm ); return( norm );
} }
friend inline ostream& operator << (ostream& output, const Vec3& vec) friend inline ostream& operator << (ostream& output, const Vec3& vec);
{
}; // end of class Vec3
inline ostream& operator << (ostream& output, const Vec3& vec)
{
output << vec._v[0] << " " output << vec._v[0] << " "
<< vec._v[1] << " " << vec._v[1] << " "
<< vec._v[2]; << vec._v[2];
return output; // to enable cascading return output; // to enable cascading
} }
}; // end of class Vec3
} // end of namespace osg } // end of namespace osg

View File

@ -1,7 +1,6 @@
#ifndef OSG_VEC4 #ifndef OSG_VEC4
#define OSG_VEC4 1 #define OSG_VEC4 1
#include <osg/Export>
#include <math.h> #include <math.h>
#ifdef OSG_USE_IO_DOT_H #ifdef OSG_USE_IO_DOT_H
@ -33,7 +32,18 @@ class Vec4
float _v[4]; float _v[4];
bool operator == (const Vec4& v) const { return _v[0]==v._v[0] && _v[1]==v._v[1] && _v[2]==v._v[2] && _v[3]==v._v[3]; } inline const bool operator == (const Vec4& v) const { return _v[0]==v._v[0] && _v[1]==v._v[1] && _v[2]==v._v[2] && _v[3]==v._v[3]; }
inline const bool operator < (const Vec4& v) const
{
if (_v[0]<v._v[0]) return true;
else if (_v[0]>v._v[0]) return false;
else if (_v[1]<v._v[1]) return true;
else if (_v[1]>v._v[1]) return false;
else if (_v[2]<v._v[2]) return true;
else if (_v[2]>v._v[2]) return false;
else return (_v[3]<v._v[3]);
}
inline float* ptr() { return _v; } inline float* ptr() { return _v; }
inline const float* ptr() const { return _v; } inline const float* ptr() const { return _v; }
@ -43,8 +53,8 @@ class Vec4
_v[0]=x; _v[1]=y; _v[2]=z; _v[3]=w; _v[0]=x; _v[1]=y; _v[2]=z; _v[3]=w;
} }
inline float& operator [] (int i) { return _v[i]; } inline float& operator [] (const int i) { return _v[i]; }
inline float operator [] (int i) const { return _v[i]; } inline float operator [] (const int i) const { return _v[i]; }
inline float& x() { return _v[0]; } inline float& x() { return _v[0]; }
inline float& y() { return _v[1]; } inline float& y() { return _v[1]; }
@ -133,26 +143,26 @@ class Vec4
} }
/// negation operator. Returns the negative of the Vec4 /// negation operator. Returns the negative of the Vec4
inline Vec4 operator - () const inline const Vec4 operator - () const
{ {
return Vec4 (-_v[0], -_v[1], -_v[2], -_v[3]); return Vec4 (-_v[0], -_v[1], -_v[2], -_v[3]);
} }
/// Length of the vector = sqrt( vec . vec ) /// Length of the vector = sqrt( vec . vec )
inline float length( void ) const inline const float length() const
{ {
return sqrtf( _v[0]*_v[0] + _v[1]*_v[1] + _v[2]*_v[2] + _v[3]*_v[3]); return sqrtf( _v[0]*_v[0] + _v[1]*_v[1] + _v[2]*_v[2] + _v[3]*_v[3]);
} }
/// Length squared of the vector = vec . vec /// Length squared of the vector = vec . vec
inline float length2( void ) const inline const float length2() const
{ {
return _v[0]*_v[0] + _v[1]*_v[1] + _v[2]*_v[2] + _v[3]*_v[3]; return _v[0]*_v[0] + _v[1]*_v[1] + _v[2]*_v[2] + _v[3]*_v[3];
} }
/** normalize the vector so that it has length unity /** normalize the vector so that it has length unity
returns the previous length of the vector*/ returns the previous length of the vector*/
inline float normalize() inline const float normalize()
{ {
float norm = Vec4::length(); float norm = Vec4::length();
_v[0] /= norm; _v[0] /= norm;

View File

@ -0,0 +1,72 @@
#ifndef OSGDB_DOTOSGWRAPPER
#define OSGDB_DOTOSGWRAPPER 1
#include <osg/ref_ptr>
#include <osg/Object>
#include <osgDB/Input>
#include <osgDB/Output>
#include <string>
#include <vector>
//#include <stdlib.h>
namespace osgDB {
/** Wrapper class for specifing read and write functions for extending
* the .osg file format. */
class OSGDB_EXPORT DotOsgWrapper : public osg::Referenced
{
public:
typedef std::vector<std::string> Associates;
typedef bool (*ReadFunc)(osg::Object&,osgDB::Input&);
typedef bool (*WriteFunc)(const osg::Object&,osgDB::Output&);
enum ReadWriteMode
{
READ_AND_WRITE,
READ_ONLY
};
DotOsgWrapper(osg::Object* proto,
const std::string& name,
const std::string& associates,
ReadFunc readFunc,
WriteFunc writeFunc,
ReadWriteMode readWriteMode=READ_AND_WRITE);
inline const osg::Object* getPrototype() const { return _prototype.get(); }
inline const std::string& getName() const { return _name; }
inline const Associates& getAssociates() const { return _associates; }
inline ReadFunc getReadFunc() const { return _readFunc; }
inline WriteFunc getWriteFunc() const { return _writeFunc; }
inline ReadWriteMode getReadWriteMode() const { return _readWriteMode; }
protected:
/// protected to prevent inappropriate creation of wrappers.
DotOsgWrapper() {}
/// protected to prevent inappropriate creation of wrappers.
DotOsgWrapper(DotOsgWrapper&):osg::Referenced() {}
/// protected to prevent wrapper being created on stack.
virtual ~DotOsgWrapper() {}
osg::ref_ptr<osg::Object> _prototype;
std::string _name;
Associates _associates;
ReadFunc _readFunc;
WriteFunc _writeFunc;
ReadWriteMode _readWriteMode;
};
};
#endif

View File

@ -0,0 +1,63 @@
#ifndef OSG_DYNAMICLIBRARY
#define OSG_DYNAMICLIBRARY 1
#include <osg/Referenced>
#include <osgDB/Export>
#include <string>
namespace osgDB {
/** DynamicLibrary - encapsulates the loading and unloading of dynamic libraries,
typically used for loading ReaderWriter plug-ins.
*/
class OSGDB_EXPORT DynamicLibrary : public osg::Referenced
{
public:
typedef void* HANDLE;
typedef void* PROC_ADDRESS;
/** returns a pointer to a DynamicLibrary object on successfully
* opening of library returns NULL on failure.
*/
static DynamicLibrary* loadLibrary(const std::string& libraryName);
/** return name of library stripped of path.*/
const std::string& getName() const { return _name; }
/** return name of library including full path to it.*/
const std::string& getFullName() const { return _fullName; }
/** return handle to .dso/.dll dynamic library itself.*/
HANDLE getHandle() const { return _handle; }
/** return address of function located in library.*/
PROC_ADDRESS getProcAddress(const std::string& procName);
protected:
/** disallow default constructor.*/
DynamicLibrary():osg::Referenced() {}
/** disallow copy constructor.*/
DynamicLibrary(const DynamicLibrary&):osg::Referenced() {}
/** disallow copy operator.*/
DynamicLibrary& operator == (const DynamicLibrary&) { return *this; }
/** Disallow public construction so that users have to go
* through loadLibrary() above which returns NULL on
* failure, a valid DynamicLibrary object on success.
*/
DynamicLibrary(const std::string& name,HANDLE handle);
~DynamicLibrary();
HANDLE _handle;
std::string _name;
std::string _fullName;
};
};
#endif // __DYNAMIC_LIBRARY_H

21
include/osgDB/Export Normal file
View File

@ -0,0 +1,21 @@
#ifndef OSGDB_EXPORT_
#define OSGDB_EXPORT_ 1
#ifdef WIN32
#pragma warning( disable : 4251 )
#pragma warning( disable : 4275 )
#pragma warning( disable : 4786 )
#endif
#if defined(_MSC_VER)
# ifdef OSGDB_LIBRARY
# define OSGDB_EXPORT __declspec(dllexport)
# else
# define OSGDB_EXPORT __declspec(dllimport)
# endif /* OSGDBSG_LIBRARY */
#else
# define OSGDB_EXPORT
#endif
#endif

106
include/osgDB/Field Normal file
View File

@ -0,0 +1,106 @@
#ifndef OSGDB_FIELD
#define OSGDB_FIELD 1
#include <osg/Types>
#include <osgDB/Export>
#include <string>
#include <stdlib.h>
namespace osgDB {
class OSGDB_EXPORT Field
{
public:
enum {
MIN_CACHE_SIZE = 256
};
Field();
Field(const Field& field);
virtual ~Field();
virtual Field& operator = (const Field& ic);
void reset();
void addChar(char c);
int getNoCharacters() const { return _fieldCacheSize; }
void setWithinQuotes(bool withinQuotes=true);
bool getWithinQuotes();
void setNoNestedBrackets(int no);
int getNoNestedBrackets();
enum FieldType
{
OPEN_BRACKET,
CLOSE_BRACKET,
STRING,
WORD,
REAL,
INTEGER,
BLANK,
UNINTIALISED
};
FieldType getFieldType() const;
bool isValid() const;
bool isOpenBracket() const;
bool isCloseBracket() const;
bool isWord() const;
bool matchWord(const char* str) const;
bool matchWord(const char* str,int noCharacters) const;
bool isString() const;
bool matchString(const char* str) const;
bool matchString(const char* str,int noCharacters) const;
bool isQuotedString() const;
const char* getStr() const;
char* takeStr();
bool isInt() const;
bool matchInt(int i) const;
bool getInt(int& i) const;
bool isUInt() const;
bool matchUInt(osg::uint i) const;
bool getUInt(osg::uint& i) const;
bool isFloat() const;
bool matchFloat(float f) const;
bool getFloat(float& f) const;
bool isDouble() const;
bool matchDouble(double f) const;
bool getDouble(double& d) const;
static FieldType calculateFieldType(const char* str,bool withinQuotes=false);
protected:
void _init();
void _free();
void _copy(const Field& ic);
int _fieldCacheCapacity;
int _fieldCacheSize;
char* _fieldCache;
mutable FieldType _fieldType;
bool _withinQuotes;
int _noNestedBrackets;
};
};
#endif // __SG_FIELD_H

63
include/osgDB/FieldReader Normal file
View File

@ -0,0 +1,63 @@
#ifndef OSGDB_FIELDREADER
#define OSGDB_FIELDREADER 1
#include <osgDB/Export>
#include <string.h>
#include <stdlib.h>
#ifdef OSG_USE_IO_DOT_H
#include <iostream.h>
#else
#include <iostream>
using namespace std;
#endif
namespace osgDB {
class Field;
class OSGDB_EXPORT FieldReader
{
public:
FieldReader();
FieldReader(const FieldReader& ic);
virtual ~FieldReader();
virtual FieldReader& operator = (const FieldReader& ic);
void attach(istream* input);
void detach();
virtual bool eof() const;
bool readField(Field& fieldPtr);
void ignoreField();
/** no of unmatched `{' encounterd so far in file*/
int getNoNestedBrackets() const;
private:
bool _readField(Field* fieldPtr);
void _init();
void _free();
void _copy(const FieldReader& ic);
istream* _fin;
bool _eof;
bool findStartOfNextField();
int _noNestedBrackets;
bool _delimiterEatLookUp[256];
bool _delimiterKeepLookUp[256];
};
};
#endif // __SG_FIELD_READER_H

View File

@ -0,0 +1,68 @@
#ifndef OSGDB_FIELDREADERITERATOR
#define OSGDB_FIELDREADERITERATOR 1
#include <osgDB/Field>
#include <osgDB/FieldReader>
namespace osgDB {
class OSGDB_EXPORT FieldReaderIterator
{
public:
enum {
MINIMUM_FIELD_READER_QUEUE_SIZE = 10
};
FieldReaderIterator();
FieldReaderIterator(const FieldReaderIterator& ic);
virtual ~FieldReaderIterator();
virtual FieldReaderIterator& operator = (const FieldReaderIterator& ic);
void attach(istream* input);
void detach();
virtual bool eof() const;
FieldReader& getFieldReader() { return _reader; }
void insert(int pos,Field* field);
void insert(int pos,const char* str);
Field& operator [] (int pos);
Field& field (int pos);
FieldReaderIterator& operator ++ ();
FieldReaderIterator& operator += (int no);
/** increments the itetor of the next simple field or
whole block if the current field[0] is an open bracket */
void advanceOverCurrentFieldOrBlock();
void advanceToEndOfCurrentBlock();
void advanceToEndOfBlock(int noNestBrackets);
bool matchSequence(const char* str);
private:
void _init();
void _free();
void _copy(const FieldReaderIterator& ic);
FieldReader _reader;
Field _blank;
Field* _previousField;
Field** _fieldQueue;
int _fieldQueueSize;
int _fieldQueueCapacity;
};
};
#endif // __OSGDB_FIELD_READER_QUEUE_H

View File

@ -0,0 +1,21 @@
#ifndef OSGDB_FILENAMEUTILS
#define OSGDB_FILENAMEUTILS 1
#include <osgDB/Export>
#include <string>
namespace osgDB {
OSGDB_EXPORT extern std::string getFilePath(const std::string& filename);
OSGDB_EXPORT extern std::string getFileExtension(const std::string& filename);
OSGDB_EXPORT extern std::string getLowerCaseFileExtension(const std::string& filename);
OSGDB_EXPORT extern std::string getSimpleFileName(const std::string& fileName);
OSGDB_EXPORT extern std::string getStrippedName(const std::string& fileName);
OSGDB_EXPORT extern bool equalCaseInsensitive(const std::string& lhs,const std::string& rhs);
OSGDB_EXPORT extern bool equalCaseInsensitive(const std::string& lhs,const char* rhs);
};
#endif

46
include/osgDB/FileUtils Normal file
View File

@ -0,0 +1,46 @@
#ifndef OSGDB_FILEUTILS
#define OSGDB_FILEUTILS 1
#include <osgDB/Export>
#include <vector>
#include <string>
namespace osgDB {
/** initialize the data file path,
* uses OSGFILEPATH environmental
* variable to defined.*/
OSGDB_EXPORT extern void initFilePath( void );
/** set the data file path.*/
OSGDB_EXPORT extern void setFilePath( const char *_path );
/** set the data file path.*/
OSGDB_EXPORT extern const char* getFilePath();
/** find specified file on the set data file path.*/
OSGDB_EXPORT extern char *findFile( const char *file );
/** find specified dso/dll.*/
OSGDB_EXPORT extern char *findDSO( const char *name );
/** simple list of names to represent a directory's contents. */
typedef std::vector<std::string> DirectoryContents;
/** return the directory/filename of a file if its is contained within specified directory.
* return "" if directory does not contain file. If caseInsensitive is set to true then
* a case insenstive comparision is used to compare fileName to directory contents.
* This is useful when unix programs attempt read case insentive windows filenames.
*/
OSGDB_EXPORT extern std::string findFileInDirectory(const std::string& fileName,const std::string& dirName,bool caseInsensitive=false);
/** return the contents of a directory.
* returns an empty array on any error.*/
OSGDB_EXPORT extern DirectoryContents getDirectoryContents(const std::string& dirName);
};
#endif

48
include/osgDB/Input Normal file
View File

@ -0,0 +1,48 @@
#ifndef OSGDB_INPUT
#define OSGDB_INPUT 1
#include <osg/Image>
#include <osg/Node>
#include <osg/Drawable>
#include <osg/StateAttribute>
#include <osgDB/FieldReaderIterator>
#include <map>
#include <string>
namespace osgDB {
/** Class for managing the reading of ASCII .osg files.*/
class OSGDB_EXPORT Input : public FieldReaderIterator
{
public:
Input();
virtual ~Input();
virtual osg::Object* readObjectOfType(const osg::Object& compObj);
virtual osg::Object* readObject();
virtual osg::Image* readImage();
virtual osg::Drawable* readDrawable();
virtual osg::StateAttribute* readStateAttribute();
virtual osg::Node* readNode();
virtual osg::Object* readObject(const std::string& fileName);
virtual osg::Image* readImage(const std::string& fileName);
virtual osg::Node* readNode(const std::string& fileName);
virtual osg::Object* getObjectForUniqueID(const std::string& uniqueID);
virtual void regisiterUniqueIDForObject(const std::string& uniqueID,osg::Object* obj);
private:
typedef std::map<std::string,osg::Object*> UniqueIDToObjectMapping;
UniqueIDToObjectMapping _uniqueIDToObjectMap;
};
};
#endif // __SG_INPUT_H

120
include/osgDB/Output Normal file
View File

@ -0,0 +1,120 @@
#ifndef OSGDB_OUTPUT
#define OSGDB_OUTPUT 1
#include <osg/Object>
#include <osgDB/Export>
#include <string>
#include <map>
#ifdef OSG_USE_IO_DOT_H
#include <fstream.h>
#else
#include <fstream>
using namespace std;
#endif
namespace osgDB {
/** ofstream wrapper class for adding support for indenting.
Used in output of .osg ASCII files to improve their readability.*/
class OSGDB_EXPORT Output : public ofstream
{
public:
Output();
Output(const char* name);
virtual ~Output();
void open(const char *name);
void open(const char *name,int mode);
Output& indent();
inline const int getIndentStep() const { return _indentStep; }
inline void setIndentStep(int step) { _indentStep = step; }
inline const int getIndent() const { return _indent; }
inline void setIndent(int indent) { _indent = indent; }
inline const int getNumIndicesPerLine() const { return _numIndicesPerLine; }
inline void setNumIndicesPerLine(int num) { _numIndicesPerLine = num; }
void moveIn();
void moveOut();
virtual bool writeObject(const osg::Object& obj);
bool getUniqueIDForObject(const osg::Object* obj,std::string& uniqueID);
bool createUniqueIDForObject(const osg::Object* obj,std::string& uniqueID);
bool registerUniqueIDForObject(const osg::Object* obj,std::string& uniqueID);
enum PathNameHint
{
AS_IS,
FULL_PATH,
RELATIVE_PATH,
FILENAME_ONLY
};
inline void setPathNameHint(const PathNameHint pnh) { _pathNameHint = pnh; }
inline const PathNameHint getPathNameHint() const { return _pathNameHint; }
virtual const std::string getFileNameForOutput(const std::string& filename) const;
protected:
// prevent copy construction and assignment.
Output(const Output&) : ofstream() {}
Output& operator = (const Output&) { return *this; }
virtual void init();
int _indent;
int _indentStep;
int _numIndicesPerLine;
typedef std::map<const osg::Object*,std::string> UniqueIDToLabelMapping;
UniqueIDToLabelMapping _objectToUniqueIDMap;
std::string _filename;
PathNameHint _pathNameHint;
};
template<class T>
bool writeArrayBlock(Output& fw,T* start,T* finish)
{
fw.indent() << "{" << endl;
fw.moveIn();
int numIndicesThisLine = 0;
for(T* itr=start;itr!=finish;++itr)
{
if (numIndicesThisLine>=fw.getNumIndicesPerLine())
{
fw << endl;
numIndicesThisLine = 0;
}
if (numIndicesThisLine==0) fw.indent();
else fw << " ";
fw << *itr;
++numIndicesThisLine;
}
fw << endl;
fw.moveOut();
fw.indent() << "}" << endl;
return true;
}
};
#endif // __SG_OUTPUT_H

39
include/osgDB/ReadFile Normal file
View File

@ -0,0 +1,39 @@
#ifndef OSGDB_READFILE
#define OSGDB_READFILE 1
#include <osg/Node>
#include <osg/Image>
#include <osgDB/Export>
#include <string>
namespace osgDB {
/** Read an osg::Object from file.
* Return valid osg::Object on sucess,
* return NULL on failure.
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
* for the filename extension, and this plugin then handles the request
* to read the specified file.*/
OSGDB_EXPORT extern osg::Object* readObjectFile(const std::string& filename);
/** Read an osg::Image from file.
* Return valid osg::Image on sucess,
* return NULL on failure.
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
* for the filename extension, and this plugin then handles the request
* to read the specified file.*/
OSGDB_EXPORT extern osg::Image* readImageFile(const std::string& filename);
/** Read an osg::Node from file.
* Return valid osg::Node on sucess,
* return NULL on failure.
* The osgDB::Registry is used to load the appropriate ReaderWriter plugin
* for the filename extension, and this plugin then handles the request
* to read the specified file.*/
OSGDB_EXPORT extern osg::Node* readNodeFile(const std::string& filename);
};
#endif

Some files were not shown because too many files have changed in this diff Show More