Removed old iv plugin
This commit is contained in:
@@ -2127,27 +2127,6 @@ Package=<4>
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "osgPlugin iv"=.\osgPlugins\iv\iv.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name Core osg
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name Core osgDB
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name Core osgUtil
|
||||
End Project Dependency
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "osgPlugin ive"=.\osgPlugins\ive\ive.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
|
||||
@@ -1,218 +0,0 @@
|
||||
# Microsoft Developer Studio Project File - Name="osgPlugin iv" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
|
||||
|
||||
CFG=osgPlugin iv - 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 "iv.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 "iv.mak" CFG="osgPlugin iv - Win32 Release"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "osgPlugin iv - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE "osgPlugin iv - 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)" == "osgPlugin iv - 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 ""
|
||||
F90=df.exe
|
||||
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c
|
||||
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /I "../../../../OpenThreads/include" /I "../../../../Producer/include" /I "../../../../3rdParty/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 MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x414 /d "NDEBUG"
|
||||
# ADD RSC /l 0x417 /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 OpenThreadsWin32.lib /nologo /dll /pdb:none /machine:I386 /out:"../../../bin/osgdb_iv.dll" /libpath:"../../../lib" /libpath:"../../../../OpenThreads/lib/win32" /libpath:"../../../../Producer/lib" /libpath:"../../../../3rdParty/lib"
|
||||
|
||||
!ELSEIF "$(CFG)" == "osgPlugin iv - 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 ""
|
||||
F90=df.exe
|
||||
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /Zi /Od /I "../../../include" /I "../../../../OpenThreads/include" /I "../../../../Producer/include" /I "../../../../3rdParty/include" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FLT_LIBRARY" /D "WIN32" /D "_DEBUG" /YX /FD /GZ /c
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x414 /d "_DEBUG"
|
||||
# ADD RSC /l 0x417 /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 OpenThreadsWin32d.lib /nologo /dll /pdb:"../../../bin/osgdb_ivd.pdb" /debug /machine:I386 /out:"../../../bin/osgdb_ivd.dll" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../../OpenThreads/lib/win32" /libpath:"../../../../Producer/lib" /libpath:"../../../../3rdParty/lib"
|
||||
# SUBTRACT LINK32 /pdb:none /incremental:no
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "osgPlugin iv - Win32 Release"
|
||||
# Name "osgPlugin iv - 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\iv\nodecache.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\normals.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\osgvisitor.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\parser.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\readerwriter.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\scanner.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"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\atrfloat.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\atrstring.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\atrvec.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\atrvec3list.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\attribute.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\coordinate3.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\geometry.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\indexedfaceset.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\indexedtristripset.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\ltstr.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\material.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\matrixtransform.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\mynode.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\mynodevisitor.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\nodecache.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\normals.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\osgvisitor.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\readerwriter.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\separator.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\texture2.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\texturecoordinate.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\src\osgPlugins\iv\transform.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -1,481 +0,0 @@
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the library GPL. It is
|
||||
numbered 2 because it goes with version 2 of the ordinary GPL.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Library General Public License, applies to some
|
||||
specially designated Free Software Foundation software, and to any
|
||||
other libraries whose authors decide to use it. You can use it for
|
||||
your libraries, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if
|
||||
you distribute copies of the library, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link a program with the library, you must provide
|
||||
complete object files to the recipients so that they can relink them
|
||||
with the library, after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
Our method of protecting your rights has two steps: (1) copyright
|
||||
the library, and (2) offer you this license which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
Also, for each distributor's protection, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
library. If the library is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original
|
||||
version, so that any problems introduced by others will not reflect on
|
||||
the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that companies distributing free
|
||||
software will individually obtain patent licenses, thus in effect
|
||||
transforming the program into proprietary software. To prevent this,
|
||||
we have made it clear that any patent must be licensed for everyone's
|
||||
free use or not licensed at all.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the ordinary
|
||||
GNU General Public License, which was designed for utility programs. This
|
||||
license, the GNU Library General Public License, applies to certain
|
||||
designated libraries. This license is quite different from the ordinary
|
||||
one; be sure to read it in full, and don't assume that anything in it is
|
||||
the same as in the ordinary license.
|
||||
|
||||
The reason we have a separate public license for some libraries is that
|
||||
they blur the distinction we usually make between modifying or adding to a
|
||||
program and simply using it. Linking a program with a library, without
|
||||
changing the library, is in some sense simply using the library, and is
|
||||
analogous to running a utility program or application program. However, in
|
||||
a textual and legal sense, the linked executable is a combined work, a
|
||||
derivative of the original library, and the ordinary General Public License
|
||||
treats it as such.
|
||||
|
||||
Because of this blurred distinction, using the ordinary General
|
||||
Public License for libraries did not effectively promote software
|
||||
sharing, because most developers did not use the libraries. We
|
||||
concluded that weaker conditions might promote sharing better.
|
||||
|
||||
However, unrestricted linking of non-free programs would deprive the
|
||||
users of those programs of all benefit from the free status of the
|
||||
libraries themselves. This Library General Public License is intended to
|
||||
permit developers of non-free programs to use free libraries, while
|
||||
preserving your freedom as a user of such programs to change the free
|
||||
libraries that are incorporated in them. (We have not seen how to achieve
|
||||
this as regards changes in header files, but we have achieved it as regards
|
||||
changes in the actual functions of the Library.) The hope is that this
|
||||
will lead to faster development of free libraries.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, while the latter only
|
||||
works together with the library.
|
||||
|
||||
Note that it is possible for a library to be covered by the ordinary
|
||||
General Public License rather than by this special one.
|
||||
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library which
|
||||
contains a notice placed by the copyright holder or other authorized
|
||||
party saying it may be distributed under the terms of this Library
|
||||
General Public License (also called "this License"). Each licensee is
|
||||
addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also compile or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
c) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
d) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the source code distributed need not include anything that is normally
|
||||
distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Library General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
@@ -1,21 +0,0 @@
|
||||
TOPDIR = ../../..
|
||||
include $(TOPDIR)/Make/makedefs
|
||||
|
||||
CXXFILES =\
|
||||
nodecache.cpp\
|
||||
normals.cpp\
|
||||
osgvisitor.cpp\
|
||||
readerwriter.cpp\
|
||||
scanner.cpp\
|
||||
parser.cpp\
|
||||
|
||||
INC += -I$(THISDIR)
|
||||
|
||||
LIBS += $(OSG_LIBS) $(OTHER_LIBS)
|
||||
|
||||
TARGET_BASENAME = iv
|
||||
|
||||
include $(TOPDIR)/Make/cygwin_plugin_def
|
||||
PLUGIN = $(PLUGIN_PREFIX)$(TARGET_BASENAME).$(PLUGIN_EXT)
|
||||
|
||||
include $(TOPDIR)/Make/makerules
|
||||
@@ -1,21 +0,0 @@
|
||||
This shared library can load both VRML1.0 and Inventor (they are practically
|
||||
the same, only changes the header).
|
||||
|
||||
Features:
|
||||
|
||||
* Polygonal geometry (IndexedFaceSet)
|
||||
* Materials
|
||||
* Transformations
|
||||
* External Textures (no inline ones)
|
||||
* Doesn't crash when unknown nodes or attributes are found, only ignores
|
||||
them.
|
||||
|
||||
To-Do:
|
||||
|
||||
* Use the new Geometry node of osg 0.9.0 that has support of vertex arrays
|
||||
* Use the front face attribute (clockwise/counterclockwise)
|
||||
* Implement more nodes. Maybe the cone, sphere, etc could be implemented
|
||||
with a fixed number of polygons, always the same, or maybe as a LOD node,
|
||||
that uses more or less polys depending on the distance to the camera.
|
||||
|
||||
Ruben lopez <ryu@gpul.org>
|
||||
@@ -1,33 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __ATR_FLOAT_H__
|
||||
#define __ATR_FLOAT_H__
|
||||
|
||||
#include "attribute.h"
|
||||
|
||||
class AtrFloat: public Attribute {
|
||||
float value;
|
||||
public:
|
||||
AtrFloat(char *name, float val):Attribute(name) { value=val; }
|
||||
virtual char *type() { return "AtrFloat"; }
|
||||
float getValue() { return value; }
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,34 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __ATR_STRING_H__
|
||||
#define __ATR_STRING_H__
|
||||
|
||||
#include "attribute.h"
|
||||
|
||||
class AtrString: public Attribute {
|
||||
char *value;
|
||||
public:
|
||||
AtrString(char *name, char *value):Attribute(name) { this->value=strdup(value); }
|
||||
~AtrString() { free (value); }
|
||||
virtual char *type() { return "AtrString"; }
|
||||
char *getValue() { return value; }
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,53 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __ATR_VEC_H__
|
||||
#define __ATR_VEC_H__
|
||||
|
||||
#include "attribute.h"
|
||||
|
||||
class AtrVec: public Attribute {
|
||||
std::vector<float> values;
|
||||
public:
|
||||
AtrVec(char *name):Attribute(name) { }
|
||||
AtrVec(char *name, float x, float y):Attribute(name) {
|
||||
values.push_back(x);
|
||||
values.push_back(y);
|
||||
}
|
||||
AtrVec(char *name, float x, float y, float z):Attribute(name) {
|
||||
values.push_back(x);
|
||||
values.push_back(y);
|
||||
values.push_back(z);
|
||||
}
|
||||
AtrVec(char *name, float x, float y, float z, float k):Attribute(name) {
|
||||
values.push_back(x);
|
||||
values.push_back(y);
|
||||
values.push_back(z);
|
||||
values.push_back(k);
|
||||
}
|
||||
void addVal(float val) { values.push_back(val); }
|
||||
float getVal(int pos) { return values[pos]; }
|
||||
float getValABS(int pos) { return values[pos]>0?values[pos]:-values[pos]; }
|
||||
float getValCut(int pos) { return values[pos]>0?values[pos]:0.0f; }
|
||||
int getSize() { return values.size(); }
|
||||
virtual char *type() { return "AtrVec"; }
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
@@ -1,39 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __ATR_VEC3_LIST_H__
|
||||
#define __ATR_VEC3_LIST_H__
|
||||
|
||||
#include "attribute.h"
|
||||
#include "geometry.h"
|
||||
|
||||
class AtrVec3List: public Attribute {
|
||||
VertexList *list;
|
||||
public:
|
||||
AtrVec3List(char *name):Attribute(name) { list=0; }
|
||||
AtrVec3List(char *name, VertexList *vlist):Attribute(name) {
|
||||
this->list=vlist;
|
||||
}
|
||||
VertexList *getList() { return list; }
|
||||
int getSize() { return list->size(); }
|
||||
virtual char *type() { return "AtrVec3List"; }
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
@@ -1,36 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __ATTRIBUTE_H__
|
||||
#define __ATTRIBUTE_H__
|
||||
|
||||
#include <osg/Referenced>
|
||||
|
||||
class Attribute: public osg::Referenced {
|
||||
public:
|
||||
char *name;
|
||||
virtual char *type()=0;
|
||||
char *getName() { return name; }
|
||||
|
||||
protected:
|
||||
Attribute(char *name) {this->name=strdup(name); }
|
||||
~Attribute() {free(name); }
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,39 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __COORDINATE3_H__
|
||||
#define __COORDINATE3_H__
|
||||
|
||||
#include "geometry.h"
|
||||
#include "mynode.h"
|
||||
|
||||
class Coordinate3: public MyNode {
|
||||
VertexList vertices;
|
||||
public:
|
||||
Coordinate3(VertexList *vertices) {
|
||||
this->vertices=*vertices;
|
||||
}
|
||||
virtual char *type() { return "Coordinate3"; }
|
||||
virtual void accept(MyNodeVisitor *v) { v->applyCoordinate3(this); }
|
||||
VertexList getVertices() { return vertices; }
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
@@ -1,32 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __GEOMETRY_H__
|
||||
#define __GEOMETRY_H__
|
||||
|
||||
#include <vector>
|
||||
#include <osg/Vec3>
|
||||
|
||||
typedef std::vector<osg::Vec3> VertexList;
|
||||
typedef std::vector<int> VertexIndexList;
|
||||
typedef std::pair<float,float> TextureCoordVal;
|
||||
typedef std::vector<TextureCoordVal > TextureCoordList;
|
||||
typedef std::vector<VertexIndexList*> PolygonList;
|
||||
typedef float Matrix[16];
|
||||
#endif
|
||||
@@ -1,52 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __INDEXED_FACE_SET_H__
|
||||
#define __INDEXED_FACE_SET_H__
|
||||
|
||||
#include "mynode.h"
|
||||
|
||||
class IndexedFaceSet: public MyNode {
|
||||
PolygonList polys;
|
||||
PolygonList textureIndices; // Indexed texture set.
|
||||
bool _hasTextureIndices;
|
||||
public:
|
||||
IndexedFaceSet() {}
|
||||
|
||||
IndexedFaceSet(PolygonList *p) {
|
||||
polys=*p;
|
||||
_hasTextureIndices=false;
|
||||
}
|
||||
|
||||
IndexedFaceSet(PolygonList *p, PolygonList *t) {
|
||||
polys=*p;
|
||||
textureIndices=*t;
|
||||
_hasTextureIndices=true;
|
||||
}
|
||||
|
||||
bool hasTextureIndices() { return _hasTextureIndices; }
|
||||
PolygonList getPolygons() { return polys; }
|
||||
PolygonList getTextureIndices() { return textureIndices; }
|
||||
virtual char *type() { return "IndexedFaceSet"; }
|
||||
virtual void accept(MyNodeVisitor *v) { v->applyIndexedFaceSet(this); }
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
@@ -1,52 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __INDEXED_TRI_STRIP_SET_H__
|
||||
#define __INDEXED_TRI_STRIP_SET_H__
|
||||
|
||||
#include "mynode.h"
|
||||
|
||||
class IndexedTriStripSet: public MyNode {
|
||||
PolygonList polys;
|
||||
PolygonList textureIndices; // Indexed texture set.
|
||||
bool _hasTextureIndices;
|
||||
public:
|
||||
IndexedTriStripSet() {}
|
||||
|
||||
IndexedTriStripSet(PolygonList *p) {
|
||||
polys=*p;
|
||||
_hasTextureIndices=false;
|
||||
}
|
||||
|
||||
IndexedTriStripSet(PolygonList *p, PolygonList *t) {
|
||||
polys=*p;
|
||||
textureIndices=*t;
|
||||
_hasTextureIndices=true;
|
||||
}
|
||||
|
||||
bool hasTextureIndices() { return _hasTextureIndices; }
|
||||
PolygonList getPolygons() { return polys; }
|
||||
PolygonList getTextureIndices() { return textureIndices; }
|
||||
virtual char *type() { return "IndexedTriStripSet"; }
|
||||
virtual void accept(MyNodeVisitor *v) { v->applyIndexedTriStripSet(this); }
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
@@ -1,38 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __LTSTR_H__
|
||||
#define __LTSTR_H__
|
||||
|
||||
#include <string.h>
|
||||
|
||||
/** @class ltstr
|
||||
*
|
||||
* @brief clase/estructura que implementa un algoritmo de comparacion
|
||||
* de dos cadenas para mapas cuyo indice es una cadena.
|
||||
*/
|
||||
struct ltstr
|
||||
{
|
||||
bool operator()(const char* s1, const char* s2) const
|
||||
{
|
||||
return strcmp(s1, s2) < 0;
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,33 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __MATERIAL_H__
|
||||
#define __MATERIAL_H__
|
||||
|
||||
#include "mynode.h"
|
||||
|
||||
class Material: public MyNode {
|
||||
public:
|
||||
Material() {}
|
||||
Material(MyNode *n): MyNode(n) {}
|
||||
virtual char *type() { return "Material"; }
|
||||
virtual void accept(MyNodeVisitor *v) { v->applyMaterial(this); }
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,36 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __MATRIX_TRANSFORM_H__
|
||||
#define __MATRIX_TRANSFORM_H__
|
||||
|
||||
#include "mynode.h"
|
||||
#include "geometry.h"
|
||||
|
||||
class MatrixTransform: public MyNode {
|
||||
Matrix m;
|
||||
public:
|
||||
MatrixTransform(Matrix m) {memcpy(this->m,m,sizeof(float)*16);}
|
||||
float getElem(int i) { return m[i]; }
|
||||
virtual char *type() { return "MatrixTransform"; }
|
||||
virtual void accept(MyNodeVisitor *v) { v->applyMatrixTransform(this); }
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,77 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __NODE_H__
|
||||
#define __NODE_H__
|
||||
|
||||
#include <osg/Referenced>
|
||||
#include <osg/ref_ptr>
|
||||
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <iostream>
|
||||
#include "attribute.h"
|
||||
#include "mynodevisitor.h"
|
||||
#include "ltstr.h"
|
||||
|
||||
#ifdef WIN32
|
||||
# pragma warning (disable:4786)
|
||||
#endif
|
||||
|
||||
class MyNode : public osg::Referenced {
|
||||
public:
|
||||
typedef std::vector< osg::ref_ptr<MyNode> > MyNodeList;
|
||||
typedef std::map< const char*, osg::ref_ptr<Attribute>, ltstr > AttributeMap;
|
||||
protected:
|
||||
MyNodeList children;
|
||||
AttributeMap attributes;
|
||||
bool two_sided;
|
||||
public:
|
||||
MyNode() {two_sided=false;}
|
||||
MyNode(const MyNode *other) { children=other->children; attributes=other->attributes; two_sided=false; }
|
||||
virtual char *type() { return "MyNode"; } ///< Returns generic type
|
||||
void addAttribute(char *name, Attribute *atr) { attributes[name]=atr; }
|
||||
void addChild(MyNode *node) { children.push_back(node); }
|
||||
MyNodeList getChildren() { return children; }
|
||||
AttributeMap getAttributes() { return attributes; }
|
||||
Attribute *getAttribute(char *name) {
|
||||
if (attributes.find(name) != attributes.end()) {
|
||||
return attributes[name].get();
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
void setChildren(MyNodeList children) { this->children=children; }
|
||||
void setAttributes(AttributeMap attributes) { this->attributes=attributes; }
|
||||
|
||||
void print(int indent) {
|
||||
for (int i=0;i<indent;i++) std::cout << " ";
|
||||
std::cout << type() << std::endl;
|
||||
MyNodeList::iterator iter;
|
||||
for (iter=children.begin();iter!=children.end();iter++) {
|
||||
osg::ref_ptr<MyNode> node = *iter;
|
||||
node->print(indent+4);
|
||||
}
|
||||
}
|
||||
void setTwoSided() { two_sided=true; }
|
||||
bool getTwoSided() { return two_sided; }
|
||||
virtual void accept(MyNodeVisitor *v) { v->applyMyNode(this); }
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,52 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __MY_NODE_VISITOR_H__
|
||||
#define __MY_NODE_VISITOR_H__
|
||||
|
||||
class MyNode;
|
||||
class Material;
|
||||
class Coordinate3;
|
||||
class MatrixTransform;
|
||||
class Separator;
|
||||
class IndexedFaceSet;
|
||||
class IndexedTriStripSet;
|
||||
class TextureCoordinate;
|
||||
class Texture2;
|
||||
class Transform;
|
||||
|
||||
#include <osg/Referenced>
|
||||
|
||||
class MyNodeVisitor: public osg::Referenced {
|
||||
public:
|
||||
virtual void applyMyNode(MyNode *node)=0;
|
||||
virtual void applyMaterial(Material *material)=0;
|
||||
virtual void applyCoordinate3(Coordinate3 *coord)=0;
|
||||
virtual void applyMatrixTransform(MatrixTransform *tr)=0;
|
||||
virtual void applySeparator(Separator *sep)=0;
|
||||
virtual void applyIndexedFaceSet(IndexedFaceSet *ifs)=0;
|
||||
virtual void applyIndexedTriStripSet(IndexedTriStripSet *its)=0;
|
||||
virtual void applyTextureCoordinate(TextureCoordinate *texc)=0;
|
||||
virtual void applyTexture2(Texture2 *tex)=0;
|
||||
virtual void applyTransform(Transform *trans)=0;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "nodecache.h"
|
||||
|
||||
NodeCache::NodeMap NodeCache::nodes;
|
||||
@@ -1,44 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __CACHE_NODOS_H__
|
||||
#define __CACHE_NODOS_H__
|
||||
|
||||
#include <map>
|
||||
#include "mynode.h"
|
||||
#include "ltstr.h"
|
||||
|
||||
class NodeCache {
|
||||
typedef std::map<char *, osg::ref_ptr<MyNode>, ltstr > NodeMap;
|
||||
static NodeMap nodes;
|
||||
public:
|
||||
static void addNode(char *name, MyNode *node) {
|
||||
nodes[name]=node;
|
||||
}
|
||||
static MyNode* getNode(char *name) {
|
||||
if (nodes.find(name) != nodes.end()) {
|
||||
return nodes[name].get();
|
||||
} else {
|
||||
std::cerr << "Node does not exist" << std::endl;
|
||||
return new MyNode();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,109 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
|
||||
#include <osg/Matrix>
|
||||
#include <osg/Notify>
|
||||
|
||||
#include "normals.h"
|
||||
|
||||
#define CREASE_ANGLE 3.14159265356 * 45 / 180
|
||||
|
||||
float difAng(osg::Vec3 a, osg::Vec3 b) {
|
||||
float div = a.length() * b.length();
|
||||
return (div != 0.0f ? acosf( (a*b) / div) : 0.0f );
|
||||
}
|
||||
|
||||
osg::Vec3 calcNormal(osg::Vec3 &a, osg::Vec3 &b, osg::Vec3 &c) {
|
||||
osg::Vec3 norm;
|
||||
osg::Vec3 v1;
|
||||
osg::Vec3 v2;
|
||||
v1=b-c;
|
||||
v2=a-b;
|
||||
norm=v1 ^ v2; // cross product
|
||||
norm.normalize();
|
||||
return norm;
|
||||
}
|
||||
|
||||
void get3v(VertexList &vertices, VertexIndexList &vindex, int &a, int &b, int &c) {
|
||||
unsigned tam=vindex.size();
|
||||
unsigned i;
|
||||
b=0;c=0;
|
||||
a=vindex[0];
|
||||
for (i=1;i<tam;i++) {
|
||||
if (vertices[vindex[i]] != vertices[a]) { b=vindex[i];break; }
|
||||
}
|
||||
for (i=1;i<tam;i++) {
|
||||
if (vertices[vindex[i]] != vertices[a] && vertices[vindex[i]] != vertices[b]) { c=vindex[i];break; }
|
||||
}
|
||||
}
|
||||
|
||||
osg::Vec3 *calcNormals(VertexList &vertices, PolygonList &polygons, unsigned nvert_total) {
|
||||
unsigned nPoly=polygons.size();
|
||||
osg::Vec3 *normales_polys = new osg::Vec3[nPoly];
|
||||
osg::Vec3 *normales = new osg::Vec3[nvert_total];
|
||||
unsigned pos=0;
|
||||
unsigned poly;
|
||||
/* Phase 1: Get flat normals */
|
||||
for (poly=0;poly<nPoly;poly++) {
|
||||
VertexIndexList vindex=*polygons[poly];
|
||||
if (vindex.size() > 2) {
|
||||
int v0,v1,v2;
|
||||
get3v(vertices,vindex,v0,v1,v2);
|
||||
if (v0 == v1 || v0 == v2) {
|
||||
osg::notify(osg::WARN) << "ERROR: Vertices alineados: nv=" << vindex.size() << std::endl;
|
||||
}
|
||||
normales_polys[poly] = calcNormal(vertices[v0],
|
||||
vertices[v1],
|
||||
vertices[v2]);
|
||||
if (normales_polys[poly] == osg::Vec3(0,0,0) && vindex.size() > 2) {
|
||||
osg::notify(osg::WARN) << "##***" << "Normal nula VERTICES=" << vindex.size() << " " << vertices[v0] << " " << vertices[v1] << " " << vertices[v2] << std::endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Phase 2: Selective smooth depending on crease angle */
|
||||
for (poly=0;poly<nPoly;poly++) {
|
||||
VertexIndexList vindex=*polygons[poly];
|
||||
unsigned j;
|
||||
osg::Vec3 pnormal=normales_polys[poly];
|
||||
for (j=0;j<vindex.size();j++) {
|
||||
int vertice=vindex[j];
|
||||
normales[pos]=osg::Vec3(pnormal[0],pnormal[1],pnormal[2]);
|
||||
unsigned poly2;
|
||||
for (poly2=0;poly2<nPoly;poly2++) {
|
||||
if (poly2 == poly) continue;
|
||||
VertexIndexList vindex2=*polygons[poly2];
|
||||
unsigned k;
|
||||
osg::Vec3 pnormal2=normales_polys[poly2];
|
||||
for (k=0;k<vindex2.size();k++) {
|
||||
if (vindex2[k] == vertice) {
|
||||
float ang=difAng(pnormal,pnormal2);
|
||||
if (ang < CREASE_ANGLE) {
|
||||
normales[pos]+=osg::Vec3(pnormal2[0],pnormal2[1],pnormal2[2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
normales[pos].normalize();
|
||||
pos++;
|
||||
}
|
||||
}
|
||||
/* Phase 3: All done ;) */
|
||||
return normales;
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <osg/Matrix>
|
||||
#include "geometry.h"
|
||||
|
||||
osg::Vec3 calcNormal(osg::Vec3 &a, osg::Vec3 &b, osg::Vec3 &c);
|
||||
|
||||
osg::Vec3 *calcNormals(VertexList &vertices,
|
||||
PolygonList &polygons,
|
||||
unsigned nvert_total);
|
||||
@@ -1,414 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <osg/Notify>
|
||||
|
||||
#include <iostream>
|
||||
#include "osgvisitor.h"
|
||||
#include "material.h"
|
||||
#include "coordinate3.h"
|
||||
#include "separator.h"
|
||||
#include "matrixtransform.h"
|
||||
#include "indexedfaceset.h"
|
||||
#include "indexedtristripset.h"
|
||||
#include "texturecoordinate.h"
|
||||
#include "texture2.h"
|
||||
#include "transform.h"
|
||||
|
||||
#include <osg/Geode>
|
||||
#include <osg/StateSet>
|
||||
#include <osg/Material>
|
||||
#include <osg/Texture2D>
|
||||
#include <osg/MatrixTransform>
|
||||
#include <osg/BlendFunc>
|
||||
#include <osg/CullFace>
|
||||
#include <osg/FrontFace>
|
||||
#include <osg/PolygonMode>
|
||||
|
||||
#include <osgDB/ReadFile>
|
||||
#include <osgUtil/SmoothingVisitor> ///< Para calcular normals
|
||||
#include <osgUtil/TriStripVisitor> ///< Para convertir a tristrip
|
||||
|
||||
|
||||
#include "atrvec.h"
|
||||
#include "atrfloat.h"
|
||||
#include "atrstring.h"
|
||||
#include "atrvec3list.h"
|
||||
|
||||
#include "ltstr.h"
|
||||
#include "normals.h"
|
||||
|
||||
#define CREASE_ANGLE 2//3.14159265359 * 2.0 / 3.0
|
||||
|
||||
class ObjectCache {
|
||||
typedef std::map<osg::ref_ptr<Material>, osg::ref_ptr<osg::Material> > MaterialMap;
|
||||
typedef std::map<const char*, osg::ref_ptr<osg::Texture2D>, ltstr> TextureMap;
|
||||
typedef std::map<osg::ref_ptr<MyNode>, osg::ref_ptr<osg::Node> > NodeMap;
|
||||
|
||||
static MaterialMap materials;
|
||||
static TextureMap textures;
|
||||
static NodeMap nodos;
|
||||
public:
|
||||
static osg::Node* getMyNode(MyNode*) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static osg::Material* getMaterial(Material* _material) {
|
||||
if (materials.find(_material) == materials.end()) {
|
||||
AtrVec *ambient=dynamic_cast<AtrVec*>(_material->getAttribute("ambientColor"));
|
||||
AtrVec *diffuse=dynamic_cast<AtrVec*>(_material->getAttribute("diffuseColor"));
|
||||
AtrVec *specular=dynamic_cast<AtrVec*>(_material->getAttribute("specularColor"));
|
||||
AtrFloat *shininess=dynamic_cast<AtrFloat*>(_material->getAttribute("shininess"));
|
||||
AtrFloat *transparency=dynamic_cast<AtrFloat*>(_material->getAttribute("transparency"));
|
||||
osg::Material *material=new osg::Material();
|
||||
if (ambient) material->setAmbient(osg::Material::FRONT_AND_BACK,osg::Vec4(ambient->getValCut(0),ambient->getValCut(1),ambient->getValCut(2),1.0f));
|
||||
if (diffuse) material->setDiffuse(osg::Material::FRONT_AND_BACK,osg::Vec4(diffuse->getValCut(0),diffuse->getValCut(1),diffuse->getValCut(2),1.0f));
|
||||
if (specular) material->setSpecular(osg::Material::FRONT_AND_BACK,osg::Vec4(specular->getValCut(0),specular->getValCut(1),specular->getValCut(2),1.0f));
|
||||
if (shininess) material->setShininess(osg::Material::FRONT_AND_BACK,shininess->getValue());
|
||||
if (transparency) material->setTransparency(osg::Material::FRONT_AND_BACK,transparency->getValue());
|
||||
if (ambient || diffuse || specular || transparency)
|
||||
materials[_material]=material;
|
||||
else return 0;
|
||||
}
|
||||
return materials[_material].get();
|
||||
}
|
||||
|
||||
static osg::Texture2D* getTextura(const char* _texture) {
|
||||
if (textures.find(_texture) == textures.end()) {
|
||||
osg::Texture2D *texture=new osg::Texture2D();
|
||||
texture->setImage(osgDB::readImageFile(_texture));
|
||||
texture->setWrap(osg::Texture2D::WRAP_S,osg::Texture2D::REPEAT);
|
||||
texture->setWrap(osg::Texture2D::WRAP_T,osg::Texture2D::REPEAT);
|
||||
osg::notify(osg::INFO) << "Loading texture " << _texture << std::endl;
|
||||
textures[_texture]=texture;
|
||||
}
|
||||
return textures[_texture].get();
|
||||
}
|
||||
};
|
||||
|
||||
ObjectCache::MaterialMap ObjectCache::materials;
|
||||
ObjectCache::TextureMap ObjectCache::textures;
|
||||
ObjectCache::NodeMap ObjectCache::nodos;
|
||||
|
||||
static void makeTransform(MatrixTransform *matriz_active, osg::MatrixTransform *nodo) {
|
||||
// Original
|
||||
osg::Matrix m(matriz_active->getElem(0),matriz_active->getElem(1),matriz_active->getElem(2),matriz_active->getElem(3),
|
||||
matriz_active->getElem(4),matriz_active->getElem(5),matriz_active->getElem(6),matriz_active->getElem(7),
|
||||
matriz_active->getElem(8),matriz_active->getElem(9),matriz_active->getElem(10),matriz_active->getElem(11),
|
||||
matriz_active->getElem(12),matriz_active->getElem(13),matriz_active->getElem(14),matriz_active->getElem(15));
|
||||
nodo->setMatrix(m);
|
||||
}
|
||||
|
||||
OSGVisitor::OSGVisitor(MyNode *nodo) {
|
||||
root=0;
|
||||
parent=0;
|
||||
coord3_active=0;
|
||||
tcoord_active=0;
|
||||
texture_active=0;
|
||||
material_active=0;
|
||||
total_vert=0;
|
||||
two_sided=false;
|
||||
nodo->accept(this);
|
||||
osg::notify(osg::INFO) << "Model of " << total_vert << " vertices" << std::endl;
|
||||
}
|
||||
|
||||
void OSGVisitor::applyMyNode(MyNode *) {
|
||||
}
|
||||
|
||||
void OSGVisitor::applyMaterial(Material *material) {
|
||||
material_active=material;
|
||||
}
|
||||
|
||||
void OSGVisitor::applyCoordinate3(Coordinate3 *coord) {
|
||||
coord3_active=coord;
|
||||
}
|
||||
|
||||
void OSGVisitor::applyMatrixTransform(MatrixTransform *tr)
|
||||
{
|
||||
makeTransform(tr,parent);
|
||||
}
|
||||
|
||||
void OSGVisitor::applySeparator(Separator *sep)
|
||||
{
|
||||
osg::MatrixTransform *group=new osg::MatrixTransform();
|
||||
if (root==0) {
|
||||
root=group;
|
||||
}
|
||||
if (parent!=0) {
|
||||
parent->addChild(group);
|
||||
}
|
||||
two_sided=false;
|
||||
MyNode::MyNodeList hijos=sep->getChildren();
|
||||
for (MyNode::MyNodeList::iterator iter=hijos.begin();iter!=hijos.end();iter++) {
|
||||
osg::ref_ptr<MyNode> hijo=*iter;
|
||||
parent=group;
|
||||
hijo->accept(this);
|
||||
}
|
||||
}
|
||||
|
||||
osg::PrimitiveSet *generatePrimitive(PolygonList &polys, unsigned primsize, unsigned numvertices) {
|
||||
unsigned i,j;
|
||||
osg::PrimitiveSet *p=0;
|
||||
// Fisrt of all count the number of polygons
|
||||
unsigned count=0;
|
||||
for (i=0;i<polys.size();i++) {
|
||||
VertexIndexList vindex=*polys[i];
|
||||
if (vindex.size() == primsize) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if (count==0) return 0; ///If no polys, no primitive :)
|
||||
|
||||
// The type of primitive
|
||||
osg::PrimitiveSet::Mode mode;
|
||||
switch (primsize) {
|
||||
case 1: mode=osg::PrimitiveSet::POINTS;break;
|
||||
case 2: mode=osg::PrimitiveSet::LINES;break;
|
||||
case 3: mode=osg::PrimitiveSet::TRIANGLES;break;
|
||||
case 4: mode=osg::PrimitiveSet::QUADS;break;
|
||||
default: mode=osg::PrimitiveSet::QUADS;
|
||||
}
|
||||
// Now will generate the indices and the primitive
|
||||
if (numvertices < 65536) {
|
||||
GLushort *indices=new GLushort[count*primsize];
|
||||
unsigned int count2=0;
|
||||
for (i=0;i<polys.size();i++) {
|
||||
VertexIndexList vindex=*polys[i];
|
||||
if (vindex.size() == primsize) {
|
||||
for (j=0;j<vindex.size();j++) {
|
||||
indices[count2*primsize+j]=vindex[j];
|
||||
}
|
||||
count2++;
|
||||
}
|
||||
}
|
||||
p=new osg::DrawElementsUShort(mode,count*primsize,indices);
|
||||
delete indices;
|
||||
} else {
|
||||
GLuint *indices=new GLuint[count*primsize];
|
||||
unsigned int count2=0;
|
||||
for (i=0;i<polys.size();i++) {
|
||||
VertexIndexList vindex=*polys[i];
|
||||
if (vindex.size() == primsize) {
|
||||
for (j=0;j<vindex.size();j++) {
|
||||
indices[count2*primsize+j]=vindex[j];
|
||||
}
|
||||
count2++;
|
||||
}
|
||||
}
|
||||
p=new osg::DrawElementsUInt(mode,count*primsize,indices);
|
||||
delete indices;
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
void OSGVisitor::makeGeode(osg::Geode *geode, osg::Geometry *geometry, bool twoSided) {
|
||||
osg::StateSet *state=new osg::StateSet();
|
||||
osg::FrontFace *frontface=new osg::FrontFace();
|
||||
frontface->setMode(osg::FrontFace::CLOCKWISE);
|
||||
state->setAttributeAndModes(frontface,osg::StateAttribute::ON);
|
||||
osg::CullFace *cull=new osg::CullFace();
|
||||
cull->setMode(osg::CullFace::BACK);
|
||||
if (!twoSided) {
|
||||
state->setAttributeAndModes(cull,osg::StateAttribute::ON);
|
||||
} else {
|
||||
//osg::notify(osg::INFO) << "Deactivating culling for this object" << std::endl;
|
||||
state->setAttributeAndModes(cull,osg::StateAttribute::OFF);
|
||||
osg::BlendFunc *transp=new osg::BlendFunc();
|
||||
transp->setFunction(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
|
||||
state->setAttribute(transp);
|
||||
state->setMode(GL_BLEND,osg::StateAttribute::ON);
|
||||
state->setRenderingHint(osg::StateSet::TRANSPARENT_BIN);
|
||||
}
|
||||
geode->setStateSet(state);
|
||||
/** Applying the material */
|
||||
if (material_active!=0) {
|
||||
osg::Material *material = ObjectCache::getMaterial(material_active);
|
||||
state->setAttributeAndModes(material,osg::StateAttribute::ON);
|
||||
}
|
||||
/** Applying the texture */
|
||||
if (texture_active!=0) {
|
||||
AtrString *filename=(AtrString*)texture_active->getAttribute("filename");
|
||||
if (filename) {
|
||||
osg::Texture2D *texture=ObjectCache::getTextura(filename->getValue());
|
||||
state->setTextureAttributeAndModes(0,texture,osg::StateAttribute::ON);
|
||||
}
|
||||
}
|
||||
|
||||
/* If needed, apply per-vertex colors */
|
||||
if (material_active) {
|
||||
AtrVec3List *diffuse=dynamic_cast<AtrVec3List*>(material_active->getAttribute("diffuseColor"));
|
||||
if (diffuse) { // Has per-vertex colors
|
||||
osg::notify(osg::INFO) << "Per vertex colors" << std::endl;
|
||||
VertexList *colors=diffuse->getList();
|
||||
osg::Vec3Array *colors_osg=new osg::Vec3Array();
|
||||
for (unsigned i=0;i<colors->size();i++) {
|
||||
colors_osg->push_back((*colors)[i]);
|
||||
}
|
||||
osg::notify(osg::INFO) << colors->size() << " colors" << std::endl;
|
||||
geometry->setColorArray(colors_osg);
|
||||
geometry->setColorBinding(osg::Geometry::BIND_PER_VERTEX);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OSGVisitor::applyIndexedFaceSet(IndexedFaceSet *ifs) {
|
||||
unsigned i;
|
||||
if (coord3_active == 0) {
|
||||
std::cerr << "ERROR: IndexedFaceSet without previous Coordinate3!" << std::endl;
|
||||
throw -1;
|
||||
}
|
||||
osg::Geode *geode=new osg::Geode();
|
||||
osg::Geometry *geometry=new osg::Geometry();
|
||||
makeGeode(geode,geometry,ifs->getTwoSided());
|
||||
/* Converting list of vertices to the OSG way (mostly the same) */
|
||||
VertexList vertices=coord3_active->getVertices();
|
||||
osg::Vec3Array *vertices_osg=new osg::Vec3Array();
|
||||
for (i=0;i<vertices.size();i++) {
|
||||
vertices_osg->push_back(vertices[i]);
|
||||
}
|
||||
geometry->setVertexArray(vertices_osg);
|
||||
total_vert+=vertices.size();
|
||||
|
||||
/* Converting list of polys */
|
||||
PolygonList polys=ifs->getPolygons();
|
||||
for (i=1;i<=4;i++) {
|
||||
osg::PrimitiveSet *p=generatePrimitive(polys,i,vertices.size());
|
||||
if (p!=0) {
|
||||
geometry->addPrimitiveSet(p);
|
||||
}
|
||||
}
|
||||
TextureCoordList tcoord;
|
||||
if (tcoord_active) tcoord=tcoord_active->getTextureCoords();
|
||||
PolygonList textureIndices = ifs->getTextureIndices();
|
||||
if (tcoord_active) {
|
||||
if (ifs->hasTextureIndices()) {
|
||||
std::cerr << "texture indices are not supported!" << std::endl;
|
||||
} else {
|
||||
osg::Vec2Array *texCoords=new osg::Vec2Array();
|
||||
for (i=0;i<vertices.size();i++) {
|
||||
texCoords->push_back(osg::Vec2(tcoord[i].first,tcoord[i].second));
|
||||
}
|
||||
geometry->setTexCoordArray(0,texCoords);
|
||||
}
|
||||
}
|
||||
|
||||
osgUtil::SmoothingVisitor v;
|
||||
v.smooth(*geometry);
|
||||
|
||||
// As SmoothingVisitor doesn't take the front face into account:
|
||||
osg::Vec3Array *norm=geometry->getNormalArray();
|
||||
for (i=0;i<norm->size();i++) {
|
||||
(*norm)[i] = - (*norm)[i];
|
||||
}
|
||||
|
||||
geode->addDrawable(geometry);
|
||||
parent->addChild(geode);
|
||||
}
|
||||
|
||||
void OSGVisitor::applyIndexedTriStripSet(IndexedTriStripSet *its) {
|
||||
unsigned i,j;
|
||||
if (coord3_active == 0) {
|
||||
std::cerr << "ERROR: IndexedFaceSet without previous Coordinate3!" << std::endl;
|
||||
throw -1;
|
||||
}
|
||||
osg::Geode *geode=new osg::Geode();
|
||||
osg::Geometry *geometry=new osg::Geometry();
|
||||
makeGeode(geode,geometry,its->getTwoSided());
|
||||
/* Converting list of vertices to the OSG way (mostly the same) */
|
||||
VertexList vertices=coord3_active->getVertices();
|
||||
osg::Vec3Array *vertices_osg=new osg::Vec3Array();
|
||||
for (i=0;i<vertices.size();i++) {
|
||||
vertices_osg->push_back(vertices[i]);
|
||||
}
|
||||
geometry->setVertexArray(vertices_osg);
|
||||
total_vert+=vertices.size();
|
||||
|
||||
/* Converting list of polys */
|
||||
PolygonList polys=its->getPolygons();
|
||||
for (i=0;i<polys.size();i++) {
|
||||
VertexIndexList vindex=*polys[i];
|
||||
unsigned short *indices=new unsigned short[vindex.size()];
|
||||
for (j=0;j<vindex.size();j++) {
|
||||
indices[j]=vindex[j];
|
||||
}
|
||||
geometry->addPrimitiveSet(new osg::DrawElementsUShort(osg::PrimitiveSet::TRIANGLE_STRIP,vindex.size(),indices));
|
||||
}
|
||||
|
||||
|
||||
TextureCoordList tcoord;
|
||||
if (tcoord_active) tcoord=tcoord_active->getTextureCoords();
|
||||
PolygonList textureIndices = its->getTextureIndices();
|
||||
if (tcoord_active) {
|
||||
if (its->hasTextureIndices()) {
|
||||
std::cerr << "texture indices are not supported!" << std::endl;
|
||||
} else {
|
||||
osg::Vec2Array *texCoords=new osg::Vec2Array();
|
||||
for (i=0;i<vertices.size();i++) {
|
||||
texCoords->push_back(osg::Vec2(tcoord[i].first,tcoord[i].second));
|
||||
}
|
||||
geometry->setTexCoordArray(0,texCoords);
|
||||
}
|
||||
}
|
||||
|
||||
osgUtil::SmoothingVisitor v;
|
||||
v.smooth(*geometry);
|
||||
|
||||
// As SmoothingVisitor doesn't take the front face into account:
|
||||
osg::Vec3Array *norm=geometry->getNormalArray();
|
||||
for (i=0;i<norm->size();i++) {
|
||||
(*norm)[i] = - (*norm)[i];
|
||||
}
|
||||
|
||||
geode->addDrawable(geometry);
|
||||
parent->addChild(geode);
|
||||
}
|
||||
|
||||
|
||||
void OSGVisitor::applyTextureCoordinate(TextureCoordinate *texc) {
|
||||
tcoord_active=texc;
|
||||
}
|
||||
|
||||
void OSGVisitor::applyTexture2(Texture2 *tex) {
|
||||
texture_active=tex;
|
||||
}
|
||||
|
||||
void OSGVisitor::applyTransform(Transform *trans) {
|
||||
osg::Matrix scale;
|
||||
osg::Matrix rotate;
|
||||
osg::Matrix translate;
|
||||
AtrVec *_scale=(AtrVec*)trans->getAttribute("scaleFactor");
|
||||
AtrVec *_rotate=(AtrVec*)trans->getAttribute("rotation");
|
||||
AtrVec *_translate=(AtrVec*)trans->getAttribute("translation");
|
||||
if (_scale) {
|
||||
scale.makeScale(_scale->getVal(0),_scale->getVal(1),_scale->getVal(2));
|
||||
}
|
||||
if (_rotate) {
|
||||
rotate.makeRotate(_rotate->getVal(3),_rotate->getVal(0),_rotate->getVal(1),_rotate->getVal(2));
|
||||
}
|
||||
if (_translate) {
|
||||
translate.makeTranslate(_translate->getVal(0),_translate->getVal(1),_translate->getVal(2));
|
||||
}
|
||||
parent->setMatrix(scale*rotate*translate);
|
||||
}
|
||||
|
||||
|
||||
osg::Node* OSGVisitor::getRoot() {
|
||||
return root;
|
||||
}
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __VISITANTE_OSG_H__
|
||||
#define __VISITANTE_OSG_H__
|
||||
|
||||
#include "mynodevisitor.h"
|
||||
#include <osg/Group>
|
||||
#include <osg/MatrixTransform>
|
||||
#include <osg/Geometry>
|
||||
|
||||
class OSGVisitor: public MyNodeVisitor {
|
||||
osg::Node *root;
|
||||
osg::MatrixTransform *parent;
|
||||
Coordinate3 *coord3_active;
|
||||
TextureCoordinate *tcoord_active;
|
||||
Texture2 *texture_active;
|
||||
Material *material_active;
|
||||
int total_vert;
|
||||
bool two_sided;
|
||||
public:
|
||||
OSGVisitor(MyNode *node);
|
||||
|
||||
virtual void applyMyNode(MyNode* node);
|
||||
virtual void applyMaterial(Material *material);
|
||||
virtual void applyCoordinate3(Coordinate3 *coord);
|
||||
virtual void applyMatrixTransform(MatrixTransform *tr);
|
||||
virtual void applySeparator(Separator *sep);
|
||||
virtual void applyIndexedFaceSet(IndexedFaceSet *ifs);
|
||||
virtual void applyIndexedTriStripSet(IndexedTriStripSet *its);
|
||||
virtual void applyTextureCoordinate(TextureCoordinate *texc);
|
||||
virtual void applyTexture2(Texture2 *tex);
|
||||
virtual void applyTransform(Transform *trans);
|
||||
osg::Node* getRoot();
|
||||
private:
|
||||
void makeGeode(osg::Geode *geode, osg::Geometry *geometry, bool twoSided);
|
||||
};
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,51 +0,0 @@
|
||||
#ifndef BISON_PARSER_HPP
|
||||
# define BISON_PARSER_HPP
|
||||
|
||||
#ifndef YYSTYPE
|
||||
typedef union {
|
||||
char *s_value;
|
||||
float f_value;
|
||||
MyNode *nodo;
|
||||
Attribute *attribute;
|
||||
VertexList *vlist;
|
||||
VertexIndexList *vindex;
|
||||
TextureCoordList *tcoord;
|
||||
PolygonList *plist;
|
||||
Matrix matrix;
|
||||
int i_value;
|
||||
} yystype;
|
||||
# define YYSTYPE yystype
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
#endif
|
||||
|
||||
# define STRING 257
|
||||
# define QUOTED_STRING 258
|
||||
# define FLOAT 259
|
||||
# define INT 260
|
||||
# define SEPARATOR 261
|
||||
# define DEF 262
|
||||
# define UN_MATERIAL 263
|
||||
# define DIFFUSE_COLOR 264
|
||||
# define COORDINATE3 265
|
||||
# define INDEXED_FACE_SET 266
|
||||
# define INDEXED_TRIANGLE_STRIP_SET 267
|
||||
# define A_POINT 268
|
||||
# define COORD_INDEX 269
|
||||
# define TEXTURE_COORD_INDEX 270
|
||||
# define NORMAL_INDEX 271
|
||||
# define TEXTURE_COORDINATE 272
|
||||
# define TEXTURE2 273
|
||||
# define MATRIX_TRANSFORM 274
|
||||
# define MATRIX 275
|
||||
# define LISTA_VACIA 276
|
||||
# define FINPOLY 277
|
||||
# define TWO_SIDED 278
|
||||
# define VECTOR 279
|
||||
# define VRML_HEADER 280
|
||||
# define TRANSFORM 281
|
||||
# define USE 282
|
||||
|
||||
|
||||
extern YYSTYPE yylval;
|
||||
|
||||
#endif /* not BISON_PARSER_HPP */
|
||||
@@ -1,170 +0,0 @@
|
||||
%{
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
# pragma warning (disable:4786)
|
||||
# pragma warning (disable:4541)
|
||||
#endif
|
||||
|
||||
// Where is malloc.h really needed?
|
||||
#if !defined(__APPLE__) && !defined(macintosh)
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
|
||||
#include "mynode.h"
|
||||
#include <stdlib.h>
|
||||
#include "geometry.h"
|
||||
#include "nodecache.h"
|
||||
|
||||
#include "material.h"
|
||||
#include "coordinate3.h"
|
||||
#include "separator.h"
|
||||
#include "matrixtransform.h"
|
||||
#include "indexedfaceset.h"
|
||||
#include "indexedtristripset.h"
|
||||
#include "texturecoordinate.h"
|
||||
#include "texture2.h"
|
||||
#include "transform.h"
|
||||
|
||||
#include "atrfloat.h"
|
||||
#include "atrstring.h"
|
||||
#include "atrvec.h"
|
||||
#include "atrvec3list.h"
|
||||
#include "string.h"
|
||||
extern int yyline;
|
||||
extern int yylex();
|
||||
void yyerror(char *str,...);
|
||||
static MyNode *root_node;
|
||||
|
||||
%}
|
||||
|
||||
%union {
|
||||
char *s_value;
|
||||
float f_value;
|
||||
MyNode *nodo;
|
||||
Attribute *attribute;
|
||||
VertexList *vlist;
|
||||
VertexIndexList *vindex;
|
||||
TextureCoordList *tcoord;
|
||||
PolygonList *plist;
|
||||
Matrix matrix;
|
||||
int i_value;
|
||||
};
|
||||
|
||||
%token <s_value> STRING
|
||||
%token <s_value> QUOTED_STRING
|
||||
%token <f_value> FLOAT
|
||||
%token <i_value> INT
|
||||
%token SEPARATOR DEF UN_MATERIAL DIFFUSE_COLOR COORDINATE3 INDEXED_FACE_SET INDEXED_TRIANGLE_STRIP_SET
|
||||
%token A_POINT COORD_INDEX TEXTURE_COORD_INDEX NORMAL_INDEX TEXTURE_COORDINATE TEXTURE2
|
||||
%token MATRIX_TRANSFORM MATRIX
|
||||
%token LISTA_VACIA FINPOLY
|
||||
%token TWO_SIDED
|
||||
%token VECTOR
|
||||
%token VRML_HEADER
|
||||
%token TRANSFORM
|
||||
%token USE
|
||||
|
||||
%type <vlist> points
|
||||
%type <plist> polylist
|
||||
%type <vindex> vertexilist
|
||||
%type <tcoord> coords
|
||||
%type <nodo> node_contents
|
||||
%type <nodo> node
|
||||
%type <attribute> attr
|
||||
%type <matrix> matrix
|
||||
%start vrml_file
|
||||
|
||||
|
||||
%%
|
||||
|
||||
vrml_file: VRML_HEADER node { root_node=$2; }
|
||||
;
|
||||
|
||||
node:
|
||||
UN_MATERIAL '{' node_contents '}' { $$=new Material($3); delete $3;}
|
||||
| TEXTURE2 '{' node_contents '}' { $$=new Texture2($3); delete $3;}
|
||||
| COORDINATE3 '{' A_POINT '[' points ']' '}' { $$=new Coordinate3($5); delete $5; }
|
||||
| INDEXED_FACE_SET '{' COORD_INDEX '[' polylist ']' '}' {$$=new IndexedFaceSet($5); delete $5; }
|
||||
| INDEXED_FACE_SET '{' COORD_INDEX '[' polylist ']' TEXTURE_COORD_INDEX '[' polylist ']' '}' {$$=new IndexedFaceSet($5,$9); delete $5; delete $9; }
|
||||
| INDEXED_FACE_SET '{' COORD_INDEX '[' polylist ']' NORMAL_INDEX '[' polylist ']' '}' {$$=new IndexedFaceSet($5); delete $5; delete $9; }
|
||||
| INDEXED_FACE_SET '{' TWO_SIDED COORD_INDEX '[' polylist ']' '}' {$$=new IndexedFaceSet($6); delete $6; $$->setTwoSided(); }
|
||||
| INDEXED_FACE_SET '{' TWO_SIDED COORD_INDEX '[' polylist ']' TEXTURE_COORD_INDEX '[' polylist ']' '}' {$$=new IndexedFaceSet($6,$10); delete $6; delete $10; $$->setTwoSided(); $$->setTwoSided(); }
|
||||
| INDEXED_FACE_SET '{' TWO_SIDED COORD_INDEX '[' polylist ']' NORMAL_INDEX '[' polylist ']' '}' {$$=new IndexedFaceSet($6); delete $6; delete $10; $$->setTwoSided(); }
|
||||
|
||||
| INDEXED_TRIANGLE_STRIP_SET '{' COORD_INDEX '[' polylist ']' '}' {$$=new IndexedTriStripSet($5); delete $5; }
|
||||
| INDEXED_TRIANGLE_STRIP_SET '{' COORD_INDEX '[' polylist ']' TEXTURE_COORD_INDEX '[' polylist ']' '}' {$$=new IndexedTriStripSet($5,$9); delete $5; delete $9; }
|
||||
| INDEXED_TRIANGLE_STRIP_SET '{' COORD_INDEX '[' polylist ']' NORMAL_INDEX '[' polylist ']' '}' {$$=new IndexedTriStripSet($5); delete $5; delete $9; }
|
||||
| MATRIX_TRANSFORM '{' MATRIX matrix '}' { $$=new MatrixTransform($4); }
|
||||
| TEXTURE_COORDINATE '{' A_POINT '[' coords ']' '}' { $$=new TextureCoordinate($5); delete $5; }
|
||||
| TRANSFORM '{' node_contents '}' { $$=new Transform($3); delete $3; }
|
||||
| STRING '{' node_contents '}' { $$=$3; }
|
||||
| SEPARATOR '{' node_contents '}' {$$=new Separator($3); delete $3; }
|
||||
;
|
||||
|
||||
node_contents: { $$=new MyNode(); }
|
||||
| node_contents attr { $1->addAttribute($2->getName(), $2); $$=$1; }
|
||||
| node_contents DEF STRING node { NodeCache::addNode($3,$4); $1->addChild($4); $$=$1; }
|
||||
| node_contents node { $1->addChild($2); $$=$1; }
|
||||
| node_contents USE STRING {$1->addChild(NodeCache::getNode($3)); $$=$1; }
|
||||
| VECTOR '[' points ']' { delete $3;$$=new MyNode(); }
|
||||
;
|
||||
|
||||
points: points FLOAT FLOAT FLOAT { $1->push_back(osg::Vec3($2,$3,$4)); $$=$1; }
|
||||
| { $$=new VertexList(); }
|
||||
;
|
||||
|
||||
polylist: polylist vertexilist { $1->push_back($2);$$=$1; }
|
||||
| { $$=new PolygonList(); }
|
||||
;
|
||||
|
||||
vertexilist: INT vertexilist { $2->push_back($1);$$=$2; }
|
||||
| FINPOLY { $$=new VertexIndexList(); }
|
||||
;
|
||||
|
||||
matrix:
|
||||
FLOAT FLOAT FLOAT FLOAT
|
||||
FLOAT FLOAT FLOAT FLOAT
|
||||
FLOAT FLOAT FLOAT FLOAT
|
||||
FLOAT FLOAT FLOAT FLOAT {Matrix m; m[0]=$1; m[1]=$2; m[2]=$3;m[3]=$4;m[4]=$5;m[5]=$6;m[6]=$7;m[7]=$8;m[8]=$9;m[9]=$10;m[10]=$11;m[11]=$12;m[12]=$13;m[13]=$14;m[14]=$15;m[15]=$16; memcpy($$,m,sizeof(m));}
|
||||
|
||||
;
|
||||
|
||||
attr: STRING FLOAT { $$=new AtrFloat($1,$2); }
|
||||
| STRING STRING { $$=new AtrString($1,$2); }
|
||||
| STRING FLOAT FLOAT { $$=new AtrVec($1,$2,$3); }
|
||||
| STRING FLOAT FLOAT FLOAT { $$=new AtrVec($1,$2,$3,$4); }
|
||||
| STRING FLOAT FLOAT FLOAT FLOAT { $$=new AtrVec($1,$2,$3,$4,$5); }
|
||||
| STRING QUOTED_STRING { $$=new AtrString($1,$2); }
|
||||
| STRING '[' points ']' { $$=new AtrVec3List($1,$3); }
|
||||
;
|
||||
|
||||
coords: coords FLOAT FLOAT { $1->push_back(TextureCoordVal($2,$3));$$=$1; }
|
||||
| { $$=new TextureCoordList(); }
|
||||
;
|
||||
|
||||
%%
|
||||
|
||||
void yyerror(char *str,...)
|
||||
{
|
||||
printf("There was an error near line %d : \"%s\"!!!\n",yyline,str);fflush(stdout);
|
||||
}
|
||||
|
||||
MyNode *getRoot() { return root_node; }
|
||||
@@ -1,70 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
# pragma warning (disable:4786)
|
||||
# pragma warning (disable:4541)
|
||||
#endif
|
||||
#include "readerwriter.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <iostream>
|
||||
|
||||
#include <osg/Notify>
|
||||
|
||||
#include "mynode.h"
|
||||
#include "osgvisitor.h"
|
||||
|
||||
extern int yyparse();
|
||||
extern int yydebug;
|
||||
extern MyNode *getRoot();
|
||||
extern FILE *yyin;
|
||||
int isatty(int) { return 0; }
|
||||
extern void flush_scanner();
|
||||
|
||||
|
||||
osgDB::ReaderWriter::ReadResult VrmlReaderWriter::readNode(const std::string& fileName,
|
||||
const osgDB::ReaderWriter::Options*)
|
||||
{
|
||||
std::string ext = osgDB::getFileExtension(fileName);
|
||||
if (!acceptsExtension(ext)) return ReadResult::FILE_NOT_HANDLED;
|
||||
|
||||
yydebug=0;
|
||||
yyin=fopen(fileName.c_str(),"r");
|
||||
osg::notify(osg::INFO) << "Parsing..." << std::endl;
|
||||
if (yyparse()!=0)
|
||||
{
|
||||
flush_scanner();
|
||||
return ReadResult::FILE_NOT_HANDLED;
|
||||
}
|
||||
osg::ref_ptr<MyNode> n=getRoot();
|
||||
try
|
||||
{
|
||||
osg::notify(osg::INFO) << "Generating OSG tree..." << std::endl;
|
||||
osg::ref_ptr<OSGVisitor> visitante=new OSGVisitor(n.get());
|
||||
return visitante->getRoot();
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
osg::notify(osg::INFO) << "VRML: error reading" << std::endl;
|
||||
return ReadResult::ERROR_IN_READING_FILE;
|
||||
}
|
||||
}
|
||||
|
||||
osgDB::RegisterReaderWriterProxy<VrmlReaderWriter> g_readerWriter_VRML_Proxy;
|
||||
@@ -1,41 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __LECTOR_ESCRITOR_H__
|
||||
#define __LECTOR_ESCRITOR_H__
|
||||
|
||||
#include <osgDB/FileNameUtils>
|
||||
#include <osgDB/Registry>
|
||||
#include <osgDB/ReadFile>
|
||||
#include <osgDB/FileUtils>
|
||||
#include <osgDB/ReaderWriter>
|
||||
|
||||
class VrmlReaderWriter: public osgDB::ReaderWriter {
|
||||
public:
|
||||
VrmlReaderWriter() { }
|
||||
virtual const char* className() { return "VRML"; }
|
||||
virtual bool acceptsExtension(const std::string& extension)
|
||||
{
|
||||
return osgDB::equalCaseInsensitive(extension,"wrl") ||
|
||||
osgDB::equalCaseInsensitive(extension,"iv");
|
||||
}
|
||||
virtual ReadResult readNode(const std::string& fileName,const osgDB::ReaderWriter::Options*);
|
||||
};
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,91 +0,0 @@
|
||||
%{
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#include "mynode.h"
|
||||
#include "geometry.h"
|
||||
#include "parser.hpp"
|
||||
#include <string.h>
|
||||
int yyline=1;
|
||||
%}
|
||||
|
||||
DIGIT [0-9]
|
||||
%x cindex
|
||||
%x def
|
||||
%%
|
||||
<INITIAL,cindex>[ \t\r,]
|
||||
<INITIAL,cindex>"\n" { yyline++; }
|
||||
DEF { BEGIN def;return DEF; }
|
||||
Coordinate3 { return COORDINATE3; }
|
||||
Texture2 { return TEXTURE2; }
|
||||
Separator { return SEPARATOR; }
|
||||
Material { return UN_MATERIAL; }
|
||||
IndexedFaceSet { return INDEXED_FACE_SET; }
|
||||
IndexedTriangleStripSet { return INDEXED_TRIANGLE_STRIP_SET; }
|
||||
TextureCoordinate2 { return TEXTURE_COORDINATE; }
|
||||
Transform { return TRANSFORM; }
|
||||
MatrixTransform { return MATRIX_TRANSFORM; }
|
||||
TwoSided { return TWO_SIDED; }
|
||||
matrix { return MATRIX; }
|
||||
point { return A_POINT; }
|
||||
coordIndex { BEGIN cindex;return COORD_INDEX; }
|
||||
textureCoordIndex { BEGIN cindex;return TEXTURE_COORD_INDEX; }
|
||||
normalIndex { BEGIN cindex;return NORMAL_INDEX; }
|
||||
vector { return VECTOR; }
|
||||
<cindex>-1 { return FINPOLY; }
|
||||
<INITIAL,cindex>\] { BEGIN INITIAL; return ']'; }
|
||||
USE { BEGIN def;return USE; }
|
||||
"#VRML\ V1.0 ascii" { return VRML_HEADER; }
|
||||
"#Inventor\ V2."." ascii" { return VRML_HEADER; }
|
||||
#[^\n\r]*
|
||||
"-"?{DIGIT}+"."{DIGIT}* {
|
||||
yylval.f_value=strtod(yytext,NULL);
|
||||
return FLOAT;
|
||||
}
|
||||
"-"?{DIGIT}+"."{DIGIT}*[Ee][\+-]{DIGIT}+ {
|
||||
yylval.f_value=strtod(yytext,NULL);
|
||||
return FLOAT;
|
||||
}
|
||||
"-"?{DIGIT}+[Ee][\+-]{DIGIT}+ {
|
||||
yylval.f_value=strtod(yytext,NULL);
|
||||
return FLOAT;
|
||||
}
|
||||
<INITIAL>"-"?{DIGIT}+ {
|
||||
yylval.f_value=(float)strtol(yytext,NULL,10);
|
||||
return FLOAT;
|
||||
}
|
||||
<cindex>"-"?{DIGIT}+ {
|
||||
yylval.i_value=strtol(yytext,NULL,10);
|
||||
return INT;
|
||||
}
|
||||
<INITIAL,cindex>[,{}\[\]] { return yytext[0]; }
|
||||
[a-zA-Z0-9\-\_\*]*\ *\[\]
|
||||
<INITIAL,def>[a-zA-Z0-9\-\_\*\!\.]* { BEGIN INITIAL;yylval.s_value=strdup(yytext);return STRING; }
|
||||
\"[^\"]*\" { yylval.s_value=strdup(yytext+1);yylval.s_value[strlen(yylval.s_value)-1]=0;return QUOTED_STRING; }
|
||||
|
||||
%%
|
||||
|
||||
int yywrap(void)
|
||||
{
|
||||
return (1);
|
||||
}
|
||||
|
||||
void flush_scanner(void) {
|
||||
yy_flush_buffer(YY_CURRENT_BUFFER);
|
||||
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __SEPARATOR_H__
|
||||
#define __SEPARATOR_H__
|
||||
|
||||
#include "mynode.h"
|
||||
|
||||
class Separator: public MyNode {
|
||||
public:
|
||||
Separator() {}
|
||||
Separator(MyNode *n): MyNode(n) {}
|
||||
virtual char *type() { return "Separator"; }
|
||||
virtual void accept(MyNodeVisitor *v) { v->applySeparator(this); }
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,33 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __TEXTURE2_H__
|
||||
#define __TEXTURE2_H__
|
||||
|
||||
#include "mynode.h"
|
||||
|
||||
class Texture2: public MyNode {
|
||||
public:
|
||||
Texture2() {}
|
||||
Texture2(MyNode *n): MyNode(n) {}
|
||||
virtual char *type() { return "Texture2"; }
|
||||
virtual void accept(MyNodeVisitor *v) { v->applyTexture2(this); }
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,37 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __TEXTURE_COORDINATE_H__
|
||||
#define __TEXTURE_COORDINATE_H__
|
||||
|
||||
#include "mynode.h"
|
||||
|
||||
class TextureCoordinate: public MyNode {
|
||||
TextureCoordList tcoords;
|
||||
public:
|
||||
TextureCoordinate() {}
|
||||
TextureCoordinate(TextureCoordList *t) {
|
||||
tcoords=*t;
|
||||
}
|
||||
virtual char *type() { return "TextureCoordinate"; }
|
||||
virtual void accept(MyNodeVisitor *v) { v->applyTextureCoordinate(this); }
|
||||
TextureCoordList getTextureCoords() { return tcoords; }
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,33 +0,0 @@
|
||||
/*
|
||||
* osgDB::wrl - a VRML 1.0 loader for OpenSceneGraph
|
||||
* Copyright (C) 2002 Ruben Lopez <ryu@gpul.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __TRANSFORM_H__
|
||||
#define __TRANSFORM_H__
|
||||
|
||||
#include "mynode.h"
|
||||
|
||||
class Transform: public MyNode {
|
||||
public:
|
||||
Transform() {}
|
||||
Transform(MyNode *n): MyNode(n) {}
|
||||
virtual char *type() { return "Transform"; }
|
||||
virtual void accept(MyNodeVisitor *v) { v->applyTransform(this); }
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user