You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(34) |
Oct
(55) |
Nov
(1) |
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(3) |
Jun
(9) |
Jul
(2) |
Aug
(2) |
Sep
|
Oct
(2) |
Nov
|
Dec
|
2008 |
Jan
|
Feb
(4) |
Mar
(13) |
Apr
(1) |
May
(3) |
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
(2) |
Nov
(3) |
Dec
|
2009 |
Jan
(1) |
Feb
(4) |
Mar
(1) |
Apr
|
May
(4) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <bru...@us...> - 2008-03-15 11:02:12
|
Revision: 141 http://freepv.svn.sourceforge.net/freepv/?rev=141&view=rev Author: brunopostle Date: 2008-03-15 04:02:11 -0700 (Sat, 15 Mar 2008) Log Message: ----------- add more pkg-config possibilities (Stephan Hegel) Modified Paths: -------------- freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake Modified: freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake =================================================================== --- freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake 2008-03-14 23:14:16 UTC (rev 140) +++ freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake 2008-03-15 11:02:11 UTC (rev 141) @@ -15,10 +15,12 @@ _FIREFOX-PLUGINLinkFlags _FIREFOX-PLUGINCflags) PKGCONFIG(mozilla-plugin _MOZILLA-PLUGINIncDir _MOZILLA-PLUGINLinkDir _MOZILLA-PLUGINLinkFlags _MOZILLA-PLUGINCflags) + PKGCONFIG(xulrunner-plugin _XULRUNNER-PLUGINIncDir _XULRUNNER-PLUGINLinkDir + _XULRUNNER-PLUGINLinkFlags _XULRUNNER-PLUGINCflags) PKGCONFIG(nspr _NSPRIncDir _NSPRLinkDir _NSPRLinkFlags _NSPRCflags) FIND_PATH(GECKO_ROOT_DIR npapi.h npupp.h /usr/include/firefox /usr/local/include/firefox - /usr/include/xulrunner /usr/include/iceape + /usr/include/xulrunner /usr/include/iceape ${_XULRUNNER-PLUGINIncDir} ${_FIREFOX-PLUGINIncDir} ${_MOZILLA-PLUGINIncDir}) FIND_PATH(GECKO_NSPR_DIR prthread.h ${GECKO_ROOT_DIR}/nspr ${_NSPRIncDir} /usr/include/nspr4 ${GECKO_ROOT_DIR}) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-03-14 23:14:10
|
Revision: 140 http://freepv.svn.sourceforge.net/freepv/?rev=140&view=rev Author: brunopostle Date: 2008-03-14 16:14:16 -0700 (Fri, 14 Mar 2008) Log Message: ----------- Add nspr library location for opensuse (Stephan Hegel) Modified Paths: -------------- freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake Modified: freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake =================================================================== --- freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake 2008-03-12 17:31:14 UTC (rev 139) +++ freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake 2008-03-14 23:14:16 UTC (rev 140) @@ -21,7 +21,7 @@ /usr/include/xulrunner /usr/include/iceape ${_FIREFOX-PLUGINIncDir} ${_MOZILLA-PLUGINIncDir}) FIND_PATH(GECKO_NSPR_DIR prthread.h ${GECKO_ROOT_DIR}/nspr - ${_NSPRIncDir} ${GECKO_ROOT_DIR}) + ${_NSPRIncDir} /usr/include/nspr4 ${GECKO_ROOT_DIR}) FIND_LIBRARY( Xt_LIBRARY NAMES Xt /usr/lib /usr/local/lib ) SET(GECKO_INCLUDE_DIR ${GECKO_ROOT_DIR} ${GECKO_NSPR_DIR}) SET(GECKO_LIBRARY ${Xt_LIBRARY}) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-03-12 17:31:19
|
Revision: 139 http://freepv.svn.sourceforge.net/freepv/?rev=139&view=rev Author: brunopostle Date: 2008-03-12 10:31:14 -0700 (Wed, 12 Mar 2008) Log Message: ----------- Another debian place where gecko might live (Felix Hagemann) Modified Paths: -------------- freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake Modified: freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake =================================================================== --- freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake 2008-03-11 17:33:22 UTC (rev 138) +++ freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake 2008-03-12 17:31:14 UTC (rev 139) @@ -18,7 +18,7 @@ PKGCONFIG(nspr _NSPRIncDir _NSPRLinkDir _NSPRLinkFlags _NSPRCflags) FIND_PATH(GECKO_ROOT_DIR npapi.h npupp.h /usr/include/firefox /usr/local/include/firefox - /usr/include/iceape + /usr/include/xulrunner /usr/include/iceape ${_FIREFOX-PLUGINIncDir} ${_MOZILLA-PLUGINIncDir}) FIND_PATH(GECKO_NSPR_DIR prthread.h ${GECKO_ROOT_DIR}/nspr ${_NSPRIncDir} ${GECKO_ROOT_DIR}) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-03-11 17:33:25
|
Revision: 138 http://freepv.svn.sourceforge.net/freepv/?rev=138&view=rev Author: brunopostle Date: 2008-03-11 10:33:22 -0700 (Tue, 11 Mar 2008) Log Message: ----------- Add debian iceape include path (Felix Hagemann) Modified Paths: -------------- freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake Modified: freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake =================================================================== --- freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake 2008-03-09 22:34:48 UTC (rev 137) +++ freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake 2008-03-11 17:33:22 UTC (rev 138) @@ -18,6 +18,7 @@ PKGCONFIG(nspr _NSPRIncDir _NSPRLinkDir _NSPRLinkFlags _NSPRCflags) FIND_PATH(GECKO_ROOT_DIR npapi.h npupp.h /usr/include/firefox /usr/local/include/firefox + /usr/include/iceape ${_FIREFOX-PLUGINIncDir} ${_MOZILLA-PLUGINIncDir}) FIND_PATH(GECKO_NSPR_DIR prthread.h ${GECKO_ROOT_DIR}/nspr ${_NSPRIncDir} ${GECKO_ROOT_DIR}) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-03-09 22:34:50
|
Revision: 137 http://freepv.svn.sourceforge.net/freepv/?rev=137&view=rev Author: brunopostle Date: 2008-03-09 15:34:48 -0700 (Sun, 09 Mar 2008) Log Message: ----------- nspr has separate pkgconfig on f8 Modified Paths: -------------- freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake Modified: freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake =================================================================== --- freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake 2008-03-02 23:06:34 UTC (rev 136) +++ freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake 2008-03-09 22:34:48 UTC (rev 137) @@ -15,10 +15,12 @@ _FIREFOX-PLUGINLinkFlags _FIREFOX-PLUGINCflags) PKGCONFIG(mozilla-plugin _MOZILLA-PLUGINIncDir _MOZILLA-PLUGINLinkDir _MOZILLA-PLUGINLinkFlags _MOZILLA-PLUGINCflags) + PKGCONFIG(nspr _NSPRIncDir _NSPRLinkDir _NSPRLinkFlags _NSPRCflags) FIND_PATH(GECKO_ROOT_DIR npapi.h npupp.h /usr/include/firefox /usr/local/include/firefox ${_FIREFOX-PLUGINIncDir} ${_MOZILLA-PLUGINIncDir}) - FIND_PATH(GECKO_NSPR_DIR prthread.h ${GECKO_ROOT_DIR}/nspr) + FIND_PATH(GECKO_NSPR_DIR prthread.h ${GECKO_ROOT_DIR}/nspr + ${_NSPRIncDir} ${GECKO_ROOT_DIR}) FIND_LIBRARY( Xt_LIBRARY NAMES Xt /usr/lib /usr/local/lib ) SET(GECKO_INCLUDE_DIR ${GECKO_ROOT_DIR} ${GECKO_NSPR_DIR}) SET(GECKO_LIBRARY ${Xt_LIBRARY}) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-03-02 23:06:32
|
Revision: 136 http://freepv.svn.sourceforge.net/freepv/?rev=136&view=rev Author: brunopostle Date: 2008-03-02 15:06:34 -0800 (Sun, 02 Mar 2008) Log Message: ----------- Update build instructions Modified Paths: -------------- freepv/branches/branch_leonox/INSTALL freepv/branches/branch_leonox/README Modified: freepv/branches/branch_leonox/INSTALL =================================================================== --- freepv/branches/branch_leonox/INSTALL 2008-03-02 22:48:51 UTC (rev 135) +++ freepv/branches/branch_leonox/INSTALL 2008-03-02 23:06:34 UTC (rev 136) @@ -1,167 +1,55 @@ -Basic Installation -================== +Using the CMake build system under Unix +======================================= - These are generic installation instructions. +briefly, do the following: - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). +cmake -DCMAKE_INSTALL_PREFIX=/usr/local . +make +make install - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. +alternatively, you can also do an out of source build, if +you don't want to clutter the source tree with object files etc. - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. +$ cd freepv +$ mkdir mybuild +$ cd mybuild +$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local ../ +$ make +$ make install -The simplest way to compile this package is: +Please report any problems to the Freepv-devel mailing list: +https://lists.sourceforge.net/lists/listinfo/freepv-devel - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - Running `configure' takes a while. While running, it prints some - messages telling which features it is checking for. +Missing dependencies +======================= +If cmake failed to pick up some dependencies, make sure you have +installed the corresponding development packages (often named: +libjpeg-dev and so on). If cmake still fails to find the libraries, +for example if you have installed them into a non-standard directory, +you can specify the path to libraries and include files using the +ccmake program: +$ cmake . +[some failure] +$ ccmake . - 2. Type `make' to compile the package. - - 3. Type `make install' to install the programs and any data files and - documentation. - - 4. You can remove the program binaries and object files from the - source code directory by typing `make clean'. - -Compilers and Options +Configuring the build ===================== - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure +Upon cmake invocation, several variables can be set with the -D command line +parameter. Important variables include: -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure +CMAKE_INSTALL_PREFIX Destination directory of make install + (default: /usr/local) +LIB_SUFFIX Specifies suffix used for library paths. For AMD64, + usually 64 is used as prefix. Default: empty. + Setting to 64 results in: $CMAKE_INSTALL_PREFIX/lib64 -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not supports the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features +For distributors: ================= +CMake supports the DESTDIR variable during make install, this +might be helpful to install into a temporary directory during +package creation - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. +$ make install DESTDIR=mytmp_package_dir - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' can not figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: - CPU-COMPANY-SYSTEM - -See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the host type. - - If you are building compiler tools for cross-compiling, you can also -use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Operation Controls -================== - - `configure' recognizes the following options to control how it -operates. - -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - -`--help' - Print a summary of the options to `configure', and exit. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`configure' also accepts some other, not widely useful, options. - Modified: freepv/branches/branch_leonox/README =================================================================== --- freepv/branches/branch_leonox/README 2008-03-02 22:48:51 UTC (rev 135) +++ freepv/branches/branch_leonox/README 2008-03-02 23:06:34 UTC (rev 136) @@ -12,3 +12,19 @@ libxmu-dev x11proto-xf86vidmode-dev libxxf86vm-dev + +fedora f8: + +firefox-devel +libjpeg-devel +zlib-devel +cmake +pkgconfig +gcc-c++ +libXxf86vm-devel +freeglut-devel +libXt-devel +libXmu-devel +libxml2-devel +libpng-devel + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-03-02 22:48:46
|
Revision: 135 http://freepv.svn.sourceforge.net/freepv/?rev=135&view=rev Author: brunopostle Date: 2008-03-02 14:48:51 -0800 (Sun, 02 Mar 2008) Log Message: ----------- Arrow key navigation Modified Paths: -------------- freepv/branches/branch_leonox/src/libfreepv/Controller.h Modified: freepv/branches/branch_leonox/src/libfreepv/Controller.h =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/Controller.h 2008-03-02 00:17:50 UTC (rev 134) +++ freepv/branches/branch_leonox/src/libfreepv/Controller.h 2008-03-02 22:48:51 UTC (rev 135) @@ -45,7 +45,8 @@ m_yawSpeed(0), m_pitchSpeed(0), m_fovSpeed(0), m_setFovOnce(false), m_setYaw(false), m_setPitch(false), m_setFov(false), - m_keyZoomOut(false), m_keyZoomIn(false) + m_keyZoomOut(false), m_keyZoomIn(false), + m_keyLeft(false), m_keyRight(false), m_keyUp(false), m_keyDown(false) { } virtual ~Controller() {}; @@ -107,23 +108,60 @@ { bool animate = false; // TODO: implement keyboard control - if ((event.keysym == FPV_Shift_L || event.keysym == FPV_Up) && event.down) { + if ((event.keysym == FPV_Shift_L || event.keysym == FPV_equal) && event.down) { m_keyZoomIn = true; animate = true; }; - if ((event.keysym == FPV_Shift_L || event.keysym == FPV_Up) && !event.down) { + if ((event.keysym == FPV_Shift_L || event.keysym == FPV_equal) && !event.down) { m_keyZoomIn = false; animate = true; } - if ((event.keysym == FPV_Control_L || event.keysym == FPV_Down) && event.down) { + if ((event.keysym == FPV_Control_L || event.keysym == FPV_minus) && event.down) { m_keyZoomOut = true; animate = true; }; - if ((event.keysym == FPV_Control_L || event.keysym == FPV_Down) && !event.down) { + if ((event.keysym == FPV_Control_L || event.keysym == FPV_minus) && !event.down) { m_keyZoomOut = false; animate = true; } + + if ((event.keysym == FPV_Left) && event.down) { + m_keyLeft = true; + animate = true; + }; + if ((event.keysym == FPV_Left) && !event.down) { + m_keyLeft = false; + animate = true; + }; + + if ((event.keysym == FPV_Right) && event.down) { + m_keyRight = true; + animate = true; + }; + if ((event.keysym == FPV_Right) && !event.down) { + m_keyRight = false; + animate = true; + }; + + if ((event.keysym == FPV_Up) && event.down) { + m_keyUp = true; + animate = true; + }; + if ((event.keysym == FPV_Up) && !event.down) { + m_keyUp = false; + animate = true; + }; + + if ((event.keysym == FPV_Down) && event.down) { + m_keyDown = true; + animate = true; + }; + if ((event.keysym == FPV_Down) && !event.down) { + m_keyDown = false; + animate = true; + }; + return animate; } @@ -148,6 +186,22 @@ m_fovSpeed = -2.0f*(2.0f*r2d(atan(0.5f*tan(d2r(m_scene->getCamera()->get_fov())/2.0f))) - m_scene->getCamera()->get_fov()); m_scene->getCamera()->setFovSpeed(m_fovSpeed, time); } + if (m_keyLeft) { + m_yawSpeed = -0.75f * m_scene->getCamera()->get_fov(); + m_scene->getCamera()->setYawSpeed(m_yawSpeed, time); + } + if (m_keyRight) { + m_yawSpeed = 0.75f * m_scene->getCamera()->get_fov(); + m_scene->getCamera()->setYawSpeed(m_yawSpeed, time); + } + if (m_keyUp) { + m_pitchSpeed = -0.75f * m_scene->getCamera()->get_fov(); + m_scene->getCamera()->setPitchSpeed(m_pitchSpeed, time); + } + if (m_keyDown) { + m_pitchSpeed = 0.75f * m_scene->getCamera()->get_fov(); + m_scene->getCamera()->setPitchSpeed(m_pitchSpeed, time); + } bool redrawNeeded = m_scene->getCamera()->onTimer(time); @@ -164,6 +218,7 @@ bool m_setFovOnce; bool m_setYaw, m_setPitch, m_setFov; bool m_keyZoomOut, m_keyZoomIn; + bool m_keyLeft, m_keyRight, m_keyUp, m_keyDown; }; } // namespace This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-03-02 00:17:45
|
Revision: 134 http://freepv.svn.sourceforge.net/freepv/?rev=134&view=rev Author: brunopostle Date: 2008-03-01 16:17:50 -0800 (Sat, 01 Mar 2008) Log Message: ----------- Don't put /testcases/ in tarball Modified Paths: -------------- freepv/branches/branch_leonox/CMakeLists.txt Modified: freepv/branches/branch_leonox/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/CMakeLists.txt 2008-03-02 00:07:04 UTC (rev 133) +++ freepv/branches/branch_leonox/CMakeLists.txt 2008-03-02 00:17:50 UTC (rev 134) @@ -138,6 +138,7 @@ SET(CPACK_SOURCE_IGNORE_FILES "/_CPack_Packages/" "/CMakeFiles/" +"/testcases/" "/cmake_install\\\\.cmake" "/CMakeCache.txt$" "\\\\.dir/" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-03-02 00:07:00
|
Revision: 133 http://freepv.svn.sourceforge.net/freepv/?rev=133&view=rev Author: brunopostle Date: 2008-03-01 16:07:04 -0800 (Sat, 01 Mar 2008) Log Message: ----------- Fix some messed-up line-endings, no other changes. Modified Paths: -------------- freepv/branches/branch_leonox/src/freepv-mozilla/plugin.cpp freepv/branches/branch_leonox/src/freepv-mozilla/plugin_unix.cpp freepv/branches/branch_leonox/src/freepv-mozilla/plugin_windows.cpp freepv/branches/branch_leonox/src/libfreepv/Parameters.cpp freepv/branches/branch_leonox/src/libfreepv/Parameters.h Modified: freepv/branches/branch_leonox/src/freepv-mozilla/plugin.cpp =================================================================== --- freepv/branches/branch_leonox/src/freepv-mozilla/plugin.cpp 2008-03-01 23:32:06 UTC (rev 132) +++ freepv/branches/branch_leonox/src/freepv-mozilla/plugin.cpp 2008-03-02 00:07:04 UTC (rev 133) @@ -193,8 +193,8 @@ void nsPluginInstance::StreamAsFile(NPStream* stream, const char* fname) { - DEBUG_TRACE(fname); - std::cerr<<"File requested: "<<m_fpvCurrentURL<<std::endl; + DEBUG_TRACE(fname); + std::cerr<<"File requested: "<<m_fpvCurrentURL<<std::endl; std::cerr<<"The downloaded file is "<<fname<<std::endl; m_eventListener->onDownloadComplete( fname ); NPN_DestroyStream(mInstance, stream, NPRES_DONE); @@ -225,7 +225,7 @@ bool nsPluginInstance::startDownloadURLToFile(const std::string & url) { DEBUG_TRACE(url); - m_fpvCurrentURL = url; + m_fpvCurrentURL = url; std::cerr<<"Downloading: "<<m_fpvCurrentURL<<std::endl; // request a download m_fpvIgnoreStreams = false; Modified: freepv/branches/branch_leonox/src/freepv-mozilla/plugin_unix.cpp =================================================================== --- freepv/branches/branch_leonox/src/freepv-mozilla/plugin_unix.cpp 2008-03-01 23:32:06 UTC (rev 132) +++ freepv/branches/branch_leonox/src/freepv-mozilla/plugin_unix.cpp 2008-03-02 00:07:04 UTC (rev 133) @@ -21,7 +21,7 @@ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ - + #include "config.h" #include <npapi.h> @@ -42,7 +42,7 @@ //#define FPV_MIME_TYPES_DESCRIPTION FPV_MIME_TYPES_HANDLED":mov;png;jpg:"FPV_PLUGIN_NAME #define FPV_PLUGIN_DESCRIPTION FPV_PLUGIN_NAME " Opensource software, licensed under LGPL 2.1" -#define FPV_MIME_TYPES_DESCRIPTION "application/freepv-plugin:jpg:FreePV;" \ +#define FPV_MIME_TYPES_DESCRIPTION "application/freepv-plugin:jpg:FreePV;" \ "application/freepv-plugin:png:FreePV;" \ "video/quicktime:mov:Quicktime;" \ "video/x-quicktime:mov:Quicktime;" \ @@ -52,7 +52,7 @@ "application/x-quicktimeplayer:mov:Quicktime;" \ "graphics/pangeavr:mov,qtvr,*:PangeaVR;" \ "graphics/pangeavr2:mov,qtvr,*:PangeaVR 2;" \ - "application/glpanoview:mov,qtvr,*:glpanoview;"\ + "application/glpanoview:mov,qtvr,*:glpanoview;"\ "application/x-director:dcr:Schockwave" static Display *gxDisplay = NULL; Modified: freepv/branches/branch_leonox/src/freepv-mozilla/plugin_windows.cpp =================================================================== --- freepv/branches/branch_leonox/src/freepv-mozilla/plugin_windows.cpp 2008-03-01 23:32:06 UTC (rev 132) +++ freepv/branches/branch_leonox/src/freepv-mozilla/plugin_windows.cpp 2008-03-02 00:07:04 UTC (rev 133) @@ -21,7 +21,7 @@ #include <GL/glu.h> #include "plugin_windows.h" -#include <libfreepv/PanoViewer.cpp> +#include <libfreepv/PanoViewer.cpp> static LRESULT CALLBACK PluginWinProc(HWND, UINT, WPARAM, LPARAM); static WNDPROC lpOldProc = NULL; Modified: freepv/branches/branch_leonox/src/libfreepv/Parameters.cpp =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/Parameters.cpp 2008-03-01 23:32:06 UTC (rev 132) +++ freepv/branches/branch_leonox/src/libfreepv/Parameters.cpp 2008-03-02 00:07:04 UTC (rev 133) @@ -27,12 +27,12 @@ #include <ctype.h> #include "Parameters.h" -#include "utils.h" +#include "utils.h" #include "Utils/getPath.h" -using namespace FPV; +using namespace FPV; -bool isStandalone; +bool isStandalone; Parameters::Parameters(void) { @@ -50,8 +50,7 @@ // used by command line void Parameters::parse( int argc, char* argv[] ) { //The first argument is the present work directory (pwd) - //pwd is ignored by the parser - + //pwd is ignored by the parser isStandalone=true; for( int i = 1; i < argc; i++ ) { // add src, if not on commandline @@ -105,9 +104,9 @@ if( name == "CUBE_BACK" ) m_cubeSrc[2] = value; if( name == "CUBE_LEFT" ) m_cubeSrc[3] = value; if( name == "CUBE_TOP" ) m_cubeSrc[4] = value; - if( name == "CUBE_BOTTOM" ) m_cubeSrc[5] = value; - - if((m_src.size()>0)&&isStandalone) + if( name == "CUBE_BOTTOM" ) m_cubeSrc[5] = value; + + if((m_src.size()>0)&&isStandalone) m_path=Utils::getPath(m_src.c_str()); if( name == "QUALITY" ) { @@ -140,7 +139,7 @@ m_renderQuality = RQ_HIGH; m_panoType = PANO_UNKNOWN; m_panoHFOV = 360; - m_maxTexMem = 256 * 1024 * 1024; + m_maxTexMem = 256 * 1024 * 1024; m_path=""; } Modified: freepv/branches/branch_leonox/src/libfreepv/Parameters.h =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/Parameters.h 2008-03-01 23:32:06 UTC (rev 132) +++ freepv/branches/branch_leonox/src/libfreepv/Parameters.h 2008-03-02 00:07:04 UTC (rev 133) @@ -76,7 +76,7 @@ int m_width, m_height; // size of the viewer std::string m_src; // main file to be downloaded - std::string m_sw_src; // the main file for shockwave applications + std::string m_sw_src; // the main file for shockwave applications std::string m_path; // this is the path where the main file is std::string m_waitImage; // url of an optional wait image std::string m_cubeSrc[6]; // urls of the cube images. @@ -96,9 +96,9 @@ const std::string & getSrc(void) const { return m_src; } //! returns the schockwave URL of the main data file - const std::string & get_SW_Src(void) const { return m_sw_src; } - - //! returns the path of the main file + const std::string & get_SW_Src(void) const { return m_sw_src; } + + //! returns the path of the main file const std::string & getPath() const{ return m_path; } //! returns the URL of an optional wait image This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-03-01 23:32:05
|
Revision: 132 http://freepv.svn.sourceforge.net/freepv/?rev=132&view=rev Author: brunopostle Date: 2008-03-01 15:32:06 -0800 (Sat, 01 Mar 2008) Log Message: ----------- Fix bug #1832092 - Missing .desktop files for linux. Added a .desktop file for freepv-glut, not sure if one for freepv-glx is required. Modified Paths: -------------- freepv/branches/branch_leonox/src/freepv-glut/CMakeLists.txt Added Paths: ----------- freepv/branches/branch_leonox/src/freepv-glut/freepv-glut.desktop Modified: freepv/branches/branch_leonox/src/freepv-glut/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/src/freepv-glut/CMakeLists.txt 2008-03-01 22:50:40 UTC (rev 131) +++ freepv/branches/branch_leonox/src/freepv-glut/CMakeLists.txt 2008-03-01 23:32:06 UTC (rev 132) @@ -15,4 +15,5 @@ ${OPENGL_LIBRARIES} ${FREEGLUT_LIBRARIES} ${PNG_LIBRARIES}) INSTALL(TARGETS freepv-glut DESTINATION bin) +INSTALL(FILES freepv-glut.desktop DESTINATION share/applications) Added: freepv/branches/branch_leonox/src/freepv-glut/freepv-glut.desktop =================================================================== --- freepv/branches/branch_leonox/src/freepv-glut/freepv-glut.desktop (rev 0) +++ freepv/branches/branch_leonox/src/freepv-glut/freepv-glut.desktop 2008-03-01 23:32:06 UTC (rev 132) @@ -0,0 +1,10 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=FreePV QTVR viewer +GenericName=QTVR viewer (GLUT) +Comment=View Quicktime QTVR panoramas +Exec=freepv-glut %f +Terminal=false +Type=Application +Categories=Graphics; +MimeType=video/quicktime; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-03-01 22:50:35
|
Revision: 131 http://freepv.svn.sourceforge.net/freepv/?rev=131&view=rev Author: brunopostle Date: 2008-03-01 14:50:40 -0800 (Sat, 01 Mar 2008) Log Message: ----------- Fix for bug #1809812 - branch_leonox cmake fails to find GECKO. Works here (centos4) but will probably need tweaking for other systems. Modified Paths: -------------- freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake Modified: freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake =================================================================== --- freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake 2008-03-01 00:23:21 UTC (rev 130) +++ freepv/branches/branch_leonox/CMakeScripts/FindGECKO.cmake 2008-03-01 22:50:40 UTC (rev 131) @@ -10,7 +10,14 @@ ######################################################################### IF(UNIX) - FIND_PATH(GECKO_ROOT_DIR npapi.h npupp.h /usr/include/firefox /usr/local/include/firefox) + INCLUDE(UsePkgConfig) + PKGCONFIG(firefox-plugin _FIREFOX-PLUGINIncDir _FIREFOX-PLUGINLinkDir + _FIREFOX-PLUGINLinkFlags _FIREFOX-PLUGINCflags) + PKGCONFIG(mozilla-plugin _MOZILLA-PLUGINIncDir _MOZILLA-PLUGINLinkDir + _MOZILLA-PLUGINLinkFlags _MOZILLA-PLUGINCflags) + + FIND_PATH(GECKO_ROOT_DIR npapi.h npupp.h /usr/include/firefox /usr/local/include/firefox + ${_FIREFOX-PLUGINIncDir} ${_MOZILLA-PLUGINIncDir}) FIND_PATH(GECKO_NSPR_DIR prthread.h ${GECKO_ROOT_DIR}/nspr) FIND_LIBRARY( Xt_LIBRARY NAMES Xt /usr/lib /usr/local/lib ) SET(GECKO_INCLUDE_DIR ${GECKO_ROOT_DIR} ${GECKO_NSPR_DIR}) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-03-01 00:23:16
|
Revision: 130 http://freepv.svn.sourceforge.net/freepv/?rev=130&view=rev Author: brunopostle Date: 2008-02-29 16:23:21 -0800 (Fri, 29 Feb 2008) Log Message: ----------- Fix mixed unix/dos text files Modified Paths: -------------- freepv/branches/branch_leonox/CMakeLists.txt freepv/branches/branch_leonox/src/freepv-mozilla/CMakeLists.txt Modified: freepv/branches/branch_leonox/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/CMakeLists.txt 2008-03-01 00:18:30 UTC (rev 129) +++ freepv/branches/branch_leonox/CMakeLists.txt 2008-03-01 00:23:21 UTC (rev 130) @@ -75,9 +75,9 @@ find_package(FREEGLUT REQUIRED) find_package(OpenGL REQUIRED) find_package(X11 REQUIRED) -find_package(GECKO REQUIRED) -find_package(LibXml2 REQUIRED) -find_package(PNG REQUIRED) +find_package(GECKO REQUIRED) +find_package(LibXml2 REQUIRED) +find_package(PNG REQUIRED) find_package(XF86VM REQUIRED) @@ -92,9 +92,9 @@ ${OPENGL_INCLUDE_DIR} ${FREEGLUT_INCLUDE_DIR} ${X11_INCLUDE_DIR} - ${GECKO_INCLUDE_DIR} - ${LIBXML2_INCLUDE_DIR} - ${PNG_INCLUDE_DIR} + ${GECKO_INCLUDE_DIR} + ${LIBXML2_INCLUDE_DIR} + ${PNG_INCLUDE_DIR} ${XF86VM_INCLUDE_DIR}) ######################################################################### Modified: freepv/branches/branch_leonox/src/freepv-mozilla/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/src/freepv-mozilla/CMakeLists.txt 2008-03-01 00:18:30 UTC (rev 129) +++ freepv/branches/branch_leonox/src/freepv-mozilla/CMakeLists.txt 2008-03-01 00:23:21 UTC (rev 130) @@ -10,11 +10,11 @@ ) TARGET_LINK_LIBRARIES(npfreepv freepv ${ZLIB_LIBRARIES} - ${JPEG_LIBRARIES} + ${JPEG_LIBRARIES} ${LIBXML2_LIBRARIES} ${OPENGL_LIBRARIES} ${X11_LIBRARIES} - ${GECKO_LIBRARIES} + ${GECKO_LIBRARIES} ${PNG_LIBRARIES}) INSTALL(TARGETS npfreepv DESTINATION ${LIBDIR}/mozilla/plugins) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-03-01 00:18:27
|
Revision: 129 http://freepv.svn.sourceforge.net/freepv/?rev=129&view=rev Author: brunopostle Date: 2008-02-29 16:18:30 -0800 (Fri, 29 Feb 2008) Log Message: ----------- stuff for install target (probably) Modified Paths: -------------- freepv/branches/branch_leonox/CMakeLists.txt freepv/branches/branch_leonox/src/freepv-glut/CMakeLists.txt freepv/branches/branch_leonox/src/freepv-glx/CMakeLists.txt freepv/branches/branch_leonox/src/freepv-mozilla/CMakeLists.txt freepv/branches/branch_leonox/src/libfreepv/CMakeLists.txt freepv/branches/branch_leonox/src/utils/CMakeLists.txt Modified: freepv/branches/branch_leonox/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/CMakeLists.txt 2008-02-29 22:57:29 UTC (rev 128) +++ freepv/branches/branch_leonox/CMakeLists.txt 2008-03-01 00:18:30 UTC (rev 129) @@ -33,6 +33,9 @@ set(V_MINOR 2) set(V_PATCH 0) +# set destination dirs relative to PREFIX +SET(LIBDIR lib${LIB_SUFFIX}) + ######################################################################### # MACROS # #***********************************************************************# Modified: freepv/branches/branch_leonox/src/freepv-glut/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/src/freepv-glut/CMakeLists.txt 2008-02-29 22:57:29 UTC (rev 128) +++ freepv/branches/branch_leonox/src/freepv-glut/CMakeLists.txt 2008-03-01 00:18:30 UTC (rev 129) @@ -14,3 +14,5 @@ ${ZLIB_LIBRARIES} ${JPEG_LIBRARIES} ${LIBXML2_LIBRARIES} ${OPENGL_LIBRARIES} ${FREEGLUT_LIBRARIES} ${PNG_LIBRARIES}) +INSTALL(TARGETS freepv-glut DESTINATION bin) + Modified: freepv/branches/branch_leonox/src/freepv-glx/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/src/freepv-glx/CMakeLists.txt 2008-02-29 22:57:29 UTC (rev 128) +++ freepv/branches/branch_leonox/src/freepv-glx/CMakeLists.txt 2008-03-01 00:18:30 UTC (rev 129) @@ -16,3 +16,5 @@ ${GECKO_LIBRARIES} ${XF86VM_LIBRARIES} ) +INSTALL(TARGETS freepv-glx DESTINATION bin) + Modified: freepv/branches/branch_leonox/src/freepv-mozilla/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/src/freepv-mozilla/CMakeLists.txt 2008-02-29 22:57:29 UTC (rev 128) +++ freepv/branches/branch_leonox/src/freepv-mozilla/CMakeLists.txt 2008-03-01 00:18:30 UTC (rev 129) @@ -17,3 +17,4 @@ ${GECKO_LIBRARIES} ${PNG_LIBRARIES}) +INSTALL(TARGETS npfreepv DESTINATION ${LIBDIR}/mozilla/plugins) Modified: freepv/branches/branch_leonox/src/libfreepv/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/CMakeLists.txt 2008-02-29 22:57:29 UTC (rev 128) +++ freepv/branches/branch_leonox/src/libfreepv/CMakeLists.txt 2008-03-01 00:18:30 UTC (rev 129) @@ -14,3 +14,7 @@ glutfont/freeglut_glutfont_definitions.c Math/Matrix4.cpp Math/quaternion.cpp) +INSTALL(FILES Controller.h FPV_keysyms.h Image.h PanoViewer.h Parameters.h Platform.h QTVRDecoder.h Renderer.h Scene.h SPiVparser.h utils.h DESTINATION include/libfreepv) + +INSTALL(TARGETS freepv DESTINATION ${LIBDIR}) + Modified: freepv/branches/branch_leonox/src/utils/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/src/utils/CMakeLists.txt 2008-02-29 22:57:29 UTC (rev 128) +++ freepv/branches/branch_leonox/src/utils/CMakeLists.txt 2008-03-01 00:18:30 UTC (rev 129) @@ -1,3 +1,6 @@ INCLUDE_DIRECTORIES(${FreePV_SOURCE_DIR}/src/libfreepv) ADD_EXECUTABLE(qtvr2img qtvr2img.cpp) TARGET_LINK_LIBRARIES(qtvr2img freepv ${ZLIB_LIBRARIES} ${JPEG_LIBRARIES}) + +INSTALL(TARGETS qtvr2img DESTINATION bin) + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-02-29 22:58:04
|
Revision: 128 http://freepv.svn.sourceforge.net/freepv/?rev=128&view=rev Author: brunopostle Date: 2008-02-29 14:57:29 -0800 (Fri, 29 Feb 2008) Log Message: ----------- Fix some XML errors Modified Paths: -------------- website/index.shtml Modified: website/index.shtml =================================================================== --- website/index.shtml 2008-02-25 23:02:07 UTC (rev 127) +++ website/index.shtml 2008-02-29 22:57:29 UTC (rev 128) @@ -45,13 +45,16 @@ <h3>Linux</h3> <p> <a href="http://sourceforge.net/project/showfiles.php?group_id=148373">Download the source package</a>. -Currently, no prebuild packages are available. Hugin can be build with the usual +Currently, no prebuild packages are available. FreePV can be build with the usual +</p> <pre> $ ./configure $ make $ make install </pre> +<p> process. For building, the following packages are required (including development packages!): +</p> <ul> <li>OpenGL (Mesa3D or other)</li> <li>glut or freeglut</li> @@ -59,7 +62,6 @@ <li>zlib</li> <li>mozilla or firefox development package</li> </ul> -</p> <h3>Windows</h3> <p> @@ -72,10 +74,12 @@ <p> Currently only basic functionality of a viewer is supported. The following parameters can be added to the <embed> or <object> tags used to a panoramic image in a web page. The same parameters can be specified on the command line when invoking the standalone viewer. +</p> <ul> <li><b>src=url</b> Specify panorama file, either a Quicktime mov or a jpeg file</li> <li><b>quality=(low|medium|high)</b> specify the render quality used. A lower render quality might improve the responsiveness of the viewer. Default is high. The low quality setting is optimized for software rendering with MESA (OpenGL implementation for Unix). +</li> <li><b>cube_front=url</b> Specify the front face of a cubic panorama</li> <li><b>cube_right=url</b> Specify the right face of a cubic panorama</li> <li><b>cube_back=url</b> Specify the back face of a cubic panorama</li> @@ -83,7 +87,6 @@ <li><b>cube_top=url</b> Specify the top face of a cubic panorama</li> <li><b>cube_bottom=url</b> Specify the bottom face of a cubic panorama</li> </ul> -</p> <p> All parameters can also be specified in a configuration file in the home directory of the user, ($HOME/.freepv, under unix). The configuration file overwrites any parameters specified in the webpage or the command line. This is especially useful for specifying the render quality, since it doesn't make much sense to hardcode this into the webpage. @@ -95,8 +98,8 @@ <p> Example command line usage for viewing a QTVR file with low rendering quality: +</p> <pre>$ freepv-glut quality=low src=my_panorama.mov </pre> -</p> <h2>Support and mailing lists</h2> @@ -115,6 +118,7 @@ src="http://sourceforge.net/sflogo.php?group_id=148373&type=5" width="210" height="62" border="0" alt="SourceForge.net Logo" /></a></p> +</div> </body> </html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-02-25 23:02:12
|
Revision: 127 http://freepv.svn.sourceforge.net/freepv/?rev=127&view=rev Author: brunopostle Date: 2008-02-25 15:02:07 -0800 (Mon, 25 Feb 2008) Log Message: ----------- Fix bug #1809816 Modified Paths: -------------- freepv/branches/branch_leonox/CMakeLists.txt Modified: freepv/branches/branch_leonox/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/CMakeLists.txt 2008-02-25 22:31:58 UTC (rev 126) +++ freepv/branches/branch_leonox/CMakeLists.txt 2008-02-25 23:02:07 UTC (rev 127) @@ -125,3 +125,40 @@ # continue processing in src subdirectory add_subdirectory (src) +SET(CPACK_PACKAGE_VERSION_MAJOR "${V_MAJOR}") +SET(CPACK_PACKAGE_VERSION_MINOR "${V_MINOR}") +SET(CPACK_PACKAGE_VERSION_PATCH "${V_PATCH}") +SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${V_MAJOR}.${V_MINOR}") +SET(CPACK_SOURCE_PACKAGE_FILE_NAME +"freepv-${V_MAJOR}.${V_MINOR}.${V_PATCH}") +SET(CPACK_SOURCE_GENERATOR "TGZ") +SET(CPACK_SOURCE_IGNORE_FILES +"/_CPack_Packages/" +"/CMakeFiles/" +"/cmake_install\\\\.cmake" +"/CMakeCache.txt$" +"\\\\.dir/" +"\\\\.tar\\\\.gz$" +"\\\\.tar\\\\.Z$" +"\\\\.svn/" +"\\\\.cvsignore$" +"\\\\.swp$" +"~$" +"\\\\.#" +"/#" +"/freepv-glut$" +"/freepv-glx$" +"/qtvr2img$" +"/build/" +"/CVS/" +"/\\\\.libs/" +"/\\\\.deps/" +"\\\\.o$" +"\\\\.a$" +"\\\\.lo$" +"\\\\.so$" +"\\\\.la$" +"/Makefile\\\\.in$" +"/Makefile$" + ) +INCLUDE(CPack) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-02-25 22:31:55
|
Revision: 126 http://freepv.svn.sourceforge.net/freepv/?rev=126&view=rev Author: brunopostle Date: 2008-02-25 14:31:58 -0800 (Mon, 25 Feb 2008) Log Message: ----------- Fix bug #1811163 Using "\0\0\0\0moov" to identify a typical QuickTime atom doesn't work because the \0\0\0\0 atom length is a special case meaning 'read to the end of file' that doesn't necessarily apply to the moov atom. Fix by matching just "moov" - see mime.magic etc... for other examples of this pattern in use. Modified Paths: -------------- freepv/branches/branch_leonox/src/libfreepv/Utils/signatures.cpp Modified: freepv/branches/branch_leonox/src/libfreepv/Utils/signatures.cpp =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/Utils/signatures.cpp 2008-02-25 22:19:00 UTC (rev 125) +++ freepv/branches/branch_leonox/src/libfreepv/Utils/signatures.cpp 2008-02-25 22:31:58 UTC (rev 126) @@ -34,8 +34,8 @@ char png_size=4; short png_sig[]={0x5089, 0x474E, 0x0A0D, 0x0A1A}; //MOV Signature - char mov_size=4; - short mov_sig[]={0x0000,0x0000,0x6F6D, 0x766F}; + char mov_size=2; + short mov_sig[]={0x6F6D, 0x766F}; //XML Signature char xml_size=3; short xml_sig[]={0x3F3C, 0x6D78, 0x206C}; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-02-25 22:19:11
|
Revision: 125 http://freepv.svn.sourceforge.net/freepv/?rev=125&view=rev Author: brunopostle Date: 2008-02-25 14:19:00 -0800 (Mon, 25 Feb 2008) Log Message: ----------- Build qtvr2img, fixes bug #1811160 Modified Paths: -------------- freepv/branches/branch_leonox/src/CMakeLists.txt Added Paths: ----------- freepv/branches/branch_leonox/src/utils/CMakeLists.txt Modified: freepv/branches/branch_leonox/src/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/src/CMakeLists.txt 2007-11-02 18:36:21 UTC (rev 124) +++ freepv/branches/branch_leonox/src/CMakeLists.txt 2008-02-25 22:19:00 UTC (rev 125) @@ -3,6 +3,7 @@ add_subdirectory (libfreepv) add_subdirectory (freepv-glut) +add_subdirectory (utils) if(UNIX) add_subdirectory (freepv-mozilla) add_subdirectory (freepv-glx) Added: freepv/branches/branch_leonox/src/utils/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/src/utils/CMakeLists.txt (rev 0) +++ freepv/branches/branch_leonox/src/utils/CMakeLists.txt 2008-02-25 22:19:00 UTC (rev 125) @@ -0,0 +1,3 @@ +INCLUDE_DIRECTORIES(${FreePV_SOURCE_DIR}/src/libfreepv) +ADD_EXECUTABLE(qtvr2img qtvr2img.cpp) +TARGET_LINK_LIBRARIES(qtvr2img freepv ${ZLIB_LIBRARIES} ${JPEG_LIBRARIES}) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <le...@us...> - 2007-10-16 04:43:52
|
Revision: 123 http://freepv.svn.sourceforge.net/freepv/?rev=123&view=rev Author: leonox Date: 2007-10-15 21:43:56 -0700 (Mon, 15 Oct 2007) Log Message: ----------- arreglo a CMake Added Paths: ----------- freepv/branches/branch_leonox/CMakeScripts/FindXF86VM.cmake Added: freepv/branches/branch_leonox/CMakeScripts/FindXF86VM.cmake =================================================================== --- freepv/branches/branch_leonox/CMakeScripts/FindXF86VM.cmake (rev 0) +++ freepv/branches/branch_leonox/CMakeScripts/FindXF86VM.cmake 2007-10-16 04:43:56 UTC (rev 123) @@ -0,0 +1,30 @@ +######################################################################### +# # +# FreePV's Script # +# # +#***********************************************************************# +# This FreePV script tries to find freeglut library and header files # +# FREEGLUT_INCLUDE_DIR, headers path. # +# FREEGLUT_LIBRARIES, libraries needed. # +# FREEGLUT_FOUND, either true or false. # +######################################################################### + +IF(WIN32) +ELSE(WIN32) + FIND_PATH(XF86VM_INCLUDE_DIR X11/extensions/xf86vmode.h /usr/include /usr/local/include) + FIND_LIBRARY(XF86VM_LIBRARY NAMES Xxf86vm + /usr/lib + /usr/local/lib + ) +ENDIF(WIN32) + +IF (XF86VM_INCLUDE_DIR AND XF86VM_LIBRARY) + SET(XF86VM_FOUND TRUE) + SET(XF86VM_LIBRARIES ${XF86VM_LIBRARY}) +ENDIF (XF86VM_INCLUDE_DIR AND XF86VM_LIBRARY) + +IF(NOT XF86VM_FOUND) + IF (XF86VM_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find Xxf86vm") + ENDIF (XF86VM_FIND_REQUIRED) +ENDIF(NOT XF86VM_FOUND) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <le...@us...> - 2007-10-15 21:01:05
|
Revision: 122 http://freepv.svn.sourceforge.net/freepv/?rev=122&view=rev Author: leonox Date: 2007-10-15 13:54:14 -0700 (Mon, 15 Oct 2007) Log Message: ----------- arreglo a CMake Modified Paths: -------------- freepv/branches/branch_leonox/CMakeLists.txt freepv/branches/branch_leonox/src/freepv-glx/CMakeLists.txt Modified: freepv/branches/branch_leonox/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/CMakeLists.txt 2007-08-22 01:50:55 UTC (rev 121) +++ freepv/branches/branch_leonox/CMakeLists.txt 2007-10-15 20:54:14 UTC (rev 122) @@ -74,7 +74,8 @@ find_package(X11 REQUIRED) find_package(GECKO REQUIRED) find_package(LibXml2 REQUIRED) -find_package(PNG REQUIRED) +find_package(PNG REQUIRED) +find_package(XF86VM REQUIRED) # check for gettimeofday @@ -90,7 +91,8 @@ ${X11_INCLUDE_DIR} ${GECKO_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR} - ${PNG_INCLUDE_DIR}) + ${PNG_INCLUDE_DIR} + ${XF86VM_INCLUDE_DIR}) ######################################################################### # CONFIGURE # Modified: freepv/branches/branch_leonox/src/freepv-glx/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/src/freepv-glx/CMakeLists.txt 2007-08-22 01:50:55 UTC (rev 121) +++ freepv/branches/branch_leonox/src/freepv-glx/CMakeLists.txt 2007-10-15 20:54:14 UTC (rev 122) @@ -12,5 +12,7 @@ # Link the executable to the Hello library. TARGET_LINK_LIBRARIES(freepv-glx freepv ${ZLIB_LIBRARIES} ${JPEG_LIBRARIES} ${LIBXML2_LIBRARIES} - ${OPENGL_LIBRARIES} ${X11_LIBRARIES} ${PNG_LIBRARIES}) + ${OPENGL_LIBRARIES} ${X11_LIBRARIES} ${PNG_LIBRARIES} + ${GECKO_LIBRARIES} ${XF86VM_LIBRARIES} + ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Le...@us...> - 2007-08-22 01:50:52
|
Revision: 121 http://freepv.svn.sourceforge.net/freepv/?rev=121&view=rev Author: Leonox Date: 2007-08-21 18:50:55 -0700 (Tue, 21 Aug 2007) Log Message: ----------- Basic support for SPi-V behaviors has been added. At this revision you can create SceneElements that behave like hotspots to change the current scene. At this revision the mozilla plugin crashes, this bug needs to be fixed, also there is the need to work in the scene's changing transitions. Modified Paths: -------------- freepv/branches/branch_leonox/src/freepv-glx/glx_platform.cpp freepv/branches/branch_leonox/src/freepv-glx/main.cpp freepv/branches/branch_leonox/src/freepv-mozilla/plugin_unix.cpp Modified: freepv/branches/branch_leonox/src/freepv-glx/glx_platform.cpp =================================================================== --- freepv/branches/branch_leonox/src/freepv-glx/glx_platform.cpp 2007-08-22 01:50:40 UTC (rev 120) +++ freepv/branches/branch_leonox/src/freepv-glx/glx_platform.cpp 2007-08-22 01:50:55 UTC (rev 121) @@ -98,6 +98,7 @@ default: break; } + std::cerr<<"Type="<<event->type<<std::endl; }; GLXPlatformStandalone::GLXPlatformStandalone(int argc, char ** argv) @@ -301,7 +302,7 @@ { /* create a window in window mode*/ m_glwin.attr.event_mask = ExposureMask | KeyPressMask | KeyReleaseMask | ButtonPressMask | - ButtonReleaseMask | ButtonMotionMask | StructureNotifyMask; + ButtonReleaseMask | ButtonMotionMask | StructureNotifyMask | PointerMotionMask; m_glwin.win = XCreateWindow(m_glwin.dpy, RootWindow(m_glwin.dpy, vi->screen), 0, 0, width, height, 0, vi->depth, InputOutput, vi->visual, CWBorderPixel | CWColormap | CWEventMask, &m_glwin.attr); Modified: freepv/branches/branch_leonox/src/freepv-glx/main.cpp =================================================================== --- freepv/branches/branch_leonox/src/freepv-glx/main.cpp 2007-08-22 01:50:40 UTC (rev 120) +++ freepv/branches/branch_leonox/src/freepv-glx/main.cpp 2007-08-22 01:50:55 UTC (rev 121) @@ -33,13 +33,13 @@ fprintf(stderr,"before processing events\n"); // setup viewer - PanoViewer viewer; + PanoViewer* viewer=PanoViewer::Instance(); FPV::Parameters para; para.parse(argc, argv); - viewer.init(platform, para); - viewer.start(); + viewer->init(platform, para); + viewer->start(); // run event loop platform.ProcessEvents(); return 0; Modified: freepv/branches/branch_leonox/src/freepv-mozilla/plugin_unix.cpp =================================================================== --- freepv/branches/branch_leonox/src/freepv-mozilla/plugin_unix.cpp 2007-08-22 01:50:40 UTC (rev 120) +++ freepv/branches/branch_leonox/src/freepv-mozilla/plugin_unix.cpp 2007-08-22 01:50:55 UTC (rev 121) @@ -39,10 +39,11 @@ #define FPV_MIME_TYPES_HANDLED "application/freepv-plugin" #define FPV_PLUGIN_NAME "FreePV interactive panoramic viewer plugin, QuickTime, SPi-V" -//#define FPV_MIME_TYPES_DESCRIPTION FPV_MIME_TYPES_HANDLED":mov;jpg:"FPV_PLUGIN_NAME +//#define FPV_MIME_TYPES_DESCRIPTION FPV_MIME_TYPES_HANDLED":mov;png;jpg:"FPV_PLUGIN_NAME #define FPV_PLUGIN_DESCRIPTION FPV_PLUGIN_NAME " Opensource software, licensed under LGPL 2.1" -#define FPV_MIME_TYPES_DESCRIPTION "application/freepv-plugin:jpg:FreePV;" \ +#define FPV_MIME_TYPES_DESCRIPTION "application/freepv-plugin:jpg:FreePV;" \ + "application/freepv-plugin:png:FreePV;" \ "video/quicktime:mov:Quicktime;" \ "video/x-quicktime:mov:Quicktime;" \ "image/x-quicktime:mov:Quicktime;" \ @@ -202,7 +203,7 @@ } } - m_viewer = new PanoViewer(); + m_viewer = PanoViewer::Instance(); m_viewer->init( *this, *m_fpvParam); } @@ -247,7 +248,7 @@ { DEBUG_TRACE(""); - delete (m_viewer); + //delete (m_viewer); destroyGLXContext(); mInitialized = FALSE; } @@ -302,7 +303,7 @@ long event_mask = ExposureMask | KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | - StructureNotifyMask; + StructureNotifyMask| PointerMotionMask; XSelectInput(mDisplay, mWindow, event_mask); XtAddEventHandler(xtwidget, event_mask, False, (XtEventHandler)nsPluginInstanceUnix::xtEventHandler, this); } @@ -330,8 +331,7 @@ XVisualInfo *vi = glXChooseVisual(gxDisplay, DefaultScreen(gxDisplay), attributeList_FSAA); if (vi == NULL) { - vi = glXChooseVisual(gxDisplay, DefaultScreen(gxDisplay), - attributeList_noFSAA); + vi = glXChooseVisual(gxDisplay, DefaultScreen(gxDisplay), attributeList_noFSAA); } else { vi->visual = mVisual; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Le...@us...> - 2007-08-22 01:50:37
|
Revision: 120 http://freepv.svn.sourceforge.net/freepv/?rev=120&view=rev Author: Leonox Date: 2007-08-21 18:50:40 -0700 (Tue, 21 Aug 2007) Log Message: ----------- Basic support for SPi-V behaviors has been added. At this revision you can create SceneElements that behave like hotspots to change the current scene. At this revision the mozilla plugin crashes, this bug needs to be fixed, also there is the need to work in the scene's changing transitions. Modified Paths: -------------- freepv/branches/branch_leonox/src/freepv-glut/freepv-glut.cpp Modified: freepv/branches/branch_leonox/src/freepv-glut/freepv-glut.cpp =================================================================== --- freepv/branches/branch_leonox/src/freepv-glut/freepv-glut.cpp 2007-08-20 15:12:31 UTC (rev 119) +++ freepv/branches/branch_leonox/src/freepv-glut/freepv-glut.cpp 2007-08-22 01:50:40 UTC (rev 120) @@ -133,7 +133,7 @@ // setup viewer - PanoViewer viewer; + PanoViewer* viewer=PanoViewer::Instance(); FPV::Parameters para; para.parse(argc, argv); @@ -178,8 +178,8 @@ } } - viewer.init(platform, para); - gviewer = & viewer; + viewer->init(platform, para); + gviewer = viewer; // disable keyboard repeat glutIgnoreKeyRepeat(1); @@ -190,7 +190,8 @@ glutSpecialFunc(keySpecialCallback); glutSpecialUpFunc(keySpecialCallbackUp); glutMouseFunc(mouseCallback); - glutMotionFunc(mouseMotionCallback); + glutPassiveMotionFunc(mouseMotionCallback); + glutMotionFunc(mouseMotionCallback); #ifdef HAVE_FREEGLUT_H glutMouseWheelFunc(scrollWheelCallback); #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <da...@us...> - 2007-07-06 06:20:34
|
Revision: 117 http://svn.sourceforge.net/freepv/?rev=117&view=rev Author: dangelo Date: 2007-07-05 23:20:30 -0700 (Thu, 05 Jul 2007) Log Message: ----------- abort compilation if no glut has been found Modified Paths: -------------- freepv/trunk/src/freepv-glut/freepv-glut.cpp Modified: freepv/trunk/src/freepv-glut/freepv-glut.cpp =================================================================== --- freepv/trunk/src/freepv-glut/freepv-glut.cpp 2007-07-06 06:11:22 UTC (rev 116) +++ freepv/trunk/src/freepv-glut/freepv-glut.cpp 2007-07-06 06:20:30 UTC (rev 117) @@ -33,8 +33,10 @@ #include <GLUT/glut.h> #elif defined HAVE_FREEGLUT_H #include <GL/freeglut.h> +#elif defined HAVE_GLUT_H +#include <GL/glut.h> #else -#include <GL/glut.h> +#error "GLUT or freeglut not found, and configure (or cmake) checks failed" #endif #include <vector> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <da...@us...> - 2007-07-06 06:11:20
|
Revision: 116 http://svn.sourceforge.net/freepv/?rev=116&view=rev Author: dangelo Date: 2007-07-05 23:11:22 -0700 (Thu, 05 Jul 2007) Log Message: ----------- fixed include problems with GL/glut.h, do not require header files for video mode switching, currently unused anyway. Modified Paths: -------------- freepv/trunk/CMakeLists.txt freepv/trunk/src/config.h.in.cmake freepv/trunk/src/freepv-glut/glut_platform.cpp freepv/trunk/src/freepv-glx/glx_platform.cpp freepv/trunk/src/freepv-glx/glx_platform.h Modified: freepv/trunk/CMakeLists.txt =================================================================== --- freepv/trunk/CMakeLists.txt 2007-06-30 01:45:45 UTC (rev 115) +++ freepv/trunk/CMakeLists.txt 2007-07-06 06:11:22 UTC (rev 116) @@ -111,6 +111,7 @@ CHECK_INCLUDE_FILE(GL/freeglut.h HAVE_FREEGLUT_H) CHECK_INCLUDE_FILE(GL/glut.h HAVE_GLUT_H) CHECK_INCLUDE_FILE(GLUT/glut.h HAVE_OSXGLUT_H) + CHECK_INCLUDE_FILE(X11/extensions/xf86vmode.h HAVE_XF86VMODE_H) endif(WIN32) # create config.h file Modified: freepv/trunk/src/config.h.in.cmake =================================================================== --- freepv/trunk/src/config.h.in.cmake 2007-06-30 01:45:45 UTC (rev 115) +++ freepv/trunk/src/config.h.in.cmake 2007-07-06 06:11:22 UTC (rev 116) @@ -15,6 +15,9 @@ /* Define to 1 if X11 was found */ #cmakedefine MOZ_X11 1 +/* Define to 1 if XF86vmode.h include was found */ +#cmakedefine HAVE_XF86VMODE_H 1 + /* Define to 1 if you have are under Unix */ #cmakedefine XP_UNIX 1 Modified: freepv/trunk/src/freepv-glut/glut_platform.cpp =================================================================== --- freepv/trunk/src/freepv-glut/glut_platform.cpp 2007-06-30 01:45:45 UTC (rev 115) +++ freepv/trunk/src/freepv-glut/glut_platform.cpp 2007-07-06 06:11:22 UTC (rev 116) @@ -30,10 +30,15 @@ #ifdef _WIN32 #define FREEGLUT_STATIC #endif + #ifdef HAVE_OSXGLUT_H #include <GLUT/glut.h> +#elif defined HAVE_FREEGLUT_H +#include <GL/freeglut.h> +#elif defined HAVE_GLUT_H +#include <GL/glut.h> #else -#include <GL/freeglut.h> +#error "GLUT automake/cmake check failed" #endif #ifdef HAVE_GETTIMEOFDAY Modified: freepv/trunk/src/freepv-glx/glx_platform.cpp =================================================================== --- freepv/trunk/src/freepv-glx/glx_platform.cpp 2007-06-30 01:45:45 UTC (rev 115) +++ freepv/trunk/src/freepv-glx/glx_platform.cpp 2007-07-06 06:11:22 UTC (rev 116) @@ -223,8 +223,10 @@ int dpyWidth, dpyHeight; int i; int glxMajorVersion, glxMinorVersion; +#ifdef HAVE_XF86VMODE_H int vidModeMajorVersion, vidModeMinorVersion; XF86VidModeModeInfo **modes; +#endif int modeNum; int bestMode; Atom wmDelete; @@ -237,6 +239,7 @@ /* get a connection */ m_glwin.dpy = XOpenDisplay(0); m_glwin.screen = DefaultScreen(m_glwin.dpy); +#ifdef HAVE_XF86VMODE_H XF86VidModeQueryVersion(m_glwin.dpy, &vidModeMajorVersion, &vidModeMinorVersion); printf("XF86VidModeExtension-Version %d.%d\n", vidModeMajorVersion, @@ -252,6 +255,7 @@ bestMode = i; } } +#endif /* get an appropriate visual */ vi = glXChooseVisual(m_glwin.dpy, m_glwin.screen, attrListDbl); if (vi == NULL) @@ -273,6 +277,7 @@ m_glwin.attr.colormap = cmap; m_glwin.attr.border_pixel = 0; +#ifdef HAVE_XF86VMODE_H if (m_glwin.fs) { XF86VidModeSwitchToMode(m_glwin.dpy, m_glwin.screen, modes[bestMode]); @@ -299,6 +304,7 @@ } else { +#endif /* create a window in window mode*/ m_glwin.attr.event_mask = ExposureMask | KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | StructureNotifyMask; @@ -311,7 +317,10 @@ XSetStandardProperties(m_glwin.dpy, m_glwin.win, title, title, None, NULL, 0, NULL); XMapRaised(m_glwin.dpy, m_glwin.win); +#ifdef HAVE_XF86VMODE_H } +#endif + /* connect the glx-context to the window */ glXMakeCurrent(m_glwin.dpy, m_glwin.win, m_glwin.ctx); XGetGeometry(m_glwin.dpy, m_glwin.win, &winDummy, &m_glwin.x, &m_glwin.y, @@ -363,11 +372,13 @@ m_glwin.ctx = NULL; } /* switch back to original desktop resolution if we were in fs */ +#ifdef HAVE_XF86VMODE_H if (m_glwin.fs) { XF86VidModeSwitchToMode(m_glwin.dpy, m_glwin.screen, &m_glwin.deskMode); XF86VidModeSetViewPort(m_glwin.dpy, m_glwin.screen, 0, 0); } +#endif XCloseDisplay(m_glwin.dpy); } Modified: freepv/trunk/src/freepv-glx/glx_platform.h =================================================================== --- freepv/trunk/src/freepv-glx/glx_platform.h 2007-06-30 01:45:45 UTC (rev 115) +++ freepv/trunk/src/freepv-glx/glx_platform.h 2007-07-06 06:11:22 UTC (rev 116) @@ -32,7 +32,9 @@ #include <GL/glx.h> #include <GL/gl.h> #include <GL/glu.h> +#ifdef HAVE_XF86VMODE_H #include <X11/extensions/xf86vmode.h> +#endif #include <X11/keysym.h> @@ -71,7 +73,9 @@ GLXContext ctx; XSetWindowAttributes attr; bool fs; +#ifdef HAVE_XF86VMODE_H XF86VidModeModeInfo deskMode; +#endif int x, y; unsigned int width, height; unsigned int depth; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Le...@us...> - 2007-06-30 01:45:45
|
Revision: 115 http://svn.sourceforge.net/freepv/?rev=115&view=rev Author: Leonox Date: 2007-06-29 18:45:45 -0700 (Fri, 29 Jun 2007) Log Message: ----------- Added quaternions and separated SceneElements from Scene source file, this commit is just to have a backup from my work... so there still some files that could not be there in the future. Modified Paths: -------------- freepv/branches/branch_leonox/src/gltest/CMakeLists.txt freepv/branches/branch_leonox/src/gltest/selection freepv/branches/branch_leonox/src/gltest/selection.cpp freepv/branches/branch_leonox/src/libfreepv/CMakeLists.txt freepv/branches/branch_leonox/src/libfreepv/OpenGLRenderer.cpp freepv/branches/branch_leonox/src/libfreepv/PanoViewer.cpp freepv/branches/branch_leonox/src/libfreepv/PanoViewer.h freepv/branches/branch_leonox/src/libfreepv/SPiVparser.cpp freepv/branches/branch_leonox/src/libfreepv/SPiVparser.h freepv/branches/branch_leonox/src/libfreepv/SceneElement.h freepv/branches/branch_leonox/src/libfreepv/XMLparser.cpp freepv/branches/branch_leonox/src/libfreepv/imageReader.cpp Added Paths: ----------- freepv/branches/branch_leonox/src/libfreepv/Math/ freepv/branches/branch_leonox/src/libfreepv/Math/Matrix4.cpp freepv/branches/branch_leonox/src/libfreepv/Math/Matrix4.h freepv/branches/branch_leonox/src/libfreepv/Math/quaternion.cpp freepv/branches/branch_leonox/src/libfreepv/Math/quaternion.h freepv/branches/branch_leonox/src/libfreepv/SceneElement.cpp freepv/branches/branch_leonox/src/libfreepv/Utils/ freepv/branches/branch_leonox/src/libfreepv/Utils/stringID.cpp freepv/branches/branch_leonox/src/libfreepv/Utils/stringID.h Modified: freepv/branches/branch_leonox/src/gltest/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/src/gltest/CMakeLists.txt 2007-06-29 06:17:07 UTC (rev 114) +++ freepv/branches/branch_leonox/src/gltest/CMakeLists.txt 2007-06-30 01:45:45 UTC (rev 115) @@ -14,7 +14,7 @@ #LINK_DIRECTORIES(${FreePV_BINARY_DIR}/Hello) -ADD_EXECUTABLE(selection pngReader.cpp selection.cpp) +ADD_EXECUTABLE(selection pngReader.cpp selection.cpp Matrix4.cpp quaternion.cpp) # Link the executable to the library. TARGET_LINK_LIBRARIES(selection ${OPENGL_LIBRARIES} ${FREEGLUT_LIBRARIES} ${PNG_LIBRARIES}) Modified: freepv/branches/branch_leonox/src/gltest/selection =================================================================== (Binary files differ) Modified: freepv/branches/branch_leonox/src/gltest/selection.cpp =================================================================== --- freepv/branches/branch_leonox/src/gltest/selection.cpp 2007-06-29 06:17:07 UTC (rev 114) +++ freepv/branches/branch_leonox/src/gltest/selection.cpp 2007-06-30 01:45:45 UTC (rev 115) @@ -4,8 +4,14 @@ #include <math.h> #include <iostream> #include "pngReader.h" +#include "quaternion.h" +quaternion q; +quaternion r; +quaternion t; +Matrix4 qMatrix; + unsigned char* data; float Tx=0.0f; float Ty=1.0f; @@ -70,12 +76,16 @@ void Render() { + //q.RotateAboutY(180); + quaternion v=q*t; + v.toMatrix(qMatrix); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); - gluLookAt(0, 5, 0, sin(Tx), cos(Ty)*10, cos(Tx), 0, 1, 0); + gluLookAt(0, 0, 0, sin(Tx), cos(Ty)*10, cos(Tx), 0, 1, 0); glColor3f(0.3f,0.3f,0.3f); glPushMatrix(); + glTranslatef(0,-5,0); glRotatef(90,1,0,0); glutWireSphere(10,30,30); glPopMatrix(); @@ -85,9 +95,9 @@ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBindTexture(GL_TEXTURE_2D, Texture);; glPushMatrix(); - glRotatef(45,0,1,0); - glTranslatef(0,3,-4.9); - + glMultMatrixf(qMatrix.get()); + //glRotatef(180,0,1,0); + glTranslatef(0,0,-4.9); glBegin(GL_QUADS); glTexCoord2f(0,1); glVertex3f(-1,1,0); @@ -100,38 +110,6 @@ glEnd(); glPopMatrix(); glDisable(GL_TEXTURE_2D); - glColor3ub(255,0,0); - glPushMatrix(); - glRotatef(120,0,1,0); - glTranslatef(0,2,-4.9); - glBegin(GL_QUADS); - glVertex3f(-1,1,0); - glVertex3f(-1,-1,0); - glVertex3f(1,-1,0); - glVertex3f(1,1,0); - glEnd(); - glPopMatrix(); - glPushMatrix(); - glRotatef(120,1,0,0); - glTranslatef(0,0,4.9); - glBegin(GL_QUADS); - glVertex3f(-1,1,0); - glVertex3f(-1,-1,0); - glVertex3f(1,-1,0); - glVertex3f(1,1,0); - glEnd(); - glPopMatrix(); - glPushMatrix(); - glRotatef(40,1,0,0); - glTranslatef(0,0,4.9); - glBegin(GL_QUADS); - glVertex3f(-1,1,0); - glVertex3f(-1,-1,0); - glVertex3f(1,-1,0); - glVertex3f(1,1,0); - glEnd(); - glPopMatrix(); - //DrawGrid(-1,500); glFlush(); glutSwapBuffers(); } @@ -164,40 +142,6 @@ glVertex3f(1,1,0); glEnd(); glPopMatrix(); - glColor3ub(0,255,0); - glPushMatrix(); - glRotatef(120,0,1,0); - glTranslatef(0,2,-4.9); - glBegin(GL_QUADS); - glVertex3f(-1,1,0); - glVertex3f(-1,-1,0); - glVertex3f(1,-1,0); - glVertex3f(1,1,0); - glEnd(); - glPopMatrix(); - glColor3ub(0,0,255); - glPushMatrix(); - glRotatef(120,1,0,0); - glTranslatef(0,0,4.9); - glBegin(GL_QUADS); - glVertex3f(-1,1,0); - glVertex3f(-1,-1,0); - glVertex3f(1,-1,0); - glVertex3f(1,1,0); - glEnd(); - glPopMatrix(); - glColor3ub(100,100,100); - glPushMatrix(); - glRotatef(40,1,0,0); - glTranslatef(0,0,4.9); - glBegin(GL_QUADS); - glVertex3f(-1,1,0); - glVertex3f(-1,-1,0); - glVertex3f(1,-1,0); - glVertex3f(1,1,0); - glEnd(); - glPopMatrix(); - //DrawGrid(-1,500); glFlush(); glEnable(GL_DITHER); } @@ -265,9 +209,12 @@ glutReshapeFunc(Reshape); glutSpecialFunc(Keys); glutMouseFunc(Mouse); + float i=0; while(1) { + glutMainLoopEvent(); + q.fromEulerAngles(180,180,180); Render(); if(processMouse) { Modified: freepv/branches/branch_leonox/src/libfreepv/CMakeLists.txt =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/CMakeLists.txt 2007-06-29 06:17:07 UTC (rev 114) +++ freepv/branches/branch_leonox/src/libfreepv/CMakeLists.txt 2007-06-30 01:45:45 UTC (rev 115) @@ -1,11 +1,13 @@ add_library(freepv STATIC PanoViewer.cpp Parameters.cpp Platform.cpp - OpenGLRenderer.cpp Image.cpp Scene.cpp + OpenGLRenderer.cpp Image.cpp Scene.cpp + SceneElement.cpp JpegReader.cpp utils.cpp SPiVparser.cpp QTVRDecoder.cpp XMLparser.cpp pngReader.cpp imageReader.cpp - Camera.cpp + Camera.cpp Utils/stringID.cpp glutfont/freeglut_font.c glutfont/freeglut_font_data.c - glutfont/freeglut_glutfont_definitions.c) + glutfont/freeglut_glutfont_definitions.c + Math/Matrix4.cpp Math/quaternion.cpp) Added: freepv/branches/branch_leonox/src/libfreepv/Math/Matrix4.cpp =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/Math/Matrix4.cpp (rev 0) +++ freepv/branches/branch_leonox/src/libfreepv/Math/Matrix4.cpp 2007-06-30 01:45:45 UTC (rev 115) @@ -0,0 +1,16 @@ +#include "Matrix4.h" + +Matrix4::Matrix4() +{ + M = new float[16]; +} + +Matrix4::~Matrix4() +{ + +} + +float* Matrix4::get() +{ + return M; +} Added: freepv/branches/branch_leonox/src/libfreepv/Math/Matrix4.h =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/Math/Matrix4.h (rev 0) +++ freepv/branches/branch_leonox/src/libfreepv/Math/Matrix4.h 2007-06-30 01:45:45 UTC (rev 115) @@ -0,0 +1,9 @@ + +class Matrix4{ + private: + float *M; + public: + Matrix4(); + ~Matrix4(); + float *get(); +}; Added: freepv/branches/branch_leonox/src/libfreepv/Math/quaternion.cpp =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/Math/quaternion.cpp (rev 0) +++ freepv/branches/branch_leonox/src/libfreepv/Math/quaternion.cpp 2007-06-30 01:45:45 UTC (rev 115) @@ -0,0 +1,122 @@ +#include "quaternion.h" + +void quaternion::identity(){ + w=1.0f; + x=y=z=0.0f; +} + +void quaternion::fromEulerAngles(float pan, float tilt, float roll){ + quaternion p, t, r; + p.RotateAboutY(pan); + t.RotateAboutX(tilt); + r.RotateAboutZ(roll); + *this = r*t*p; +} + +void quaternion::toMatrix(Matrix4 &M){ + float *A=M.get(); + A[0]=1-2*(y*y+z*z); + A[1]=2*(x*y+w*z); + A[2]=2*(x*z-w*y); + A[4]=2*(x*y-w*z); + A[5]=1-2*(x*x+z*z); + A[6]=2*(y*z+w*x); + A[8]=2*(x*z+w*y); + A[9]=2*(y*z-w*x); + A[10]=1-2*(x*x+y*y); + A[3]=A[7]=A[11]=A[12]=A[13]=A[14]=0.0f; + A[15]=1.0f; +} + +void quaternion::RotateAboutX(float deg){ + deg = (deg/180)*PI; + float half_deg = deg/2; + w = cos(half_deg); + x = sin(half_deg); + y = 0; + z = 0; +} + +void quaternion::RotateAboutY(float deg){ + deg = (deg/180)*PI; + float half_deg = deg/2; + w = cos(half_deg); + x = 0; + y = sin(half_deg); + z = 0; +} + +void quaternion::RotateAboutZ(float deg){ + deg = (deg/180)*PI; + float half_deg = deg/2; + w = cos(half_deg); + x = 0; + y = 0; + z = sin(half_deg); +} + +void quaternion::RotateAboutAxis(float deg, float c_x, float c_y, float c_z){ + deg = (deg/180)*PI; + float half_deg = deg/2; + float mag = sqrt(x*x+y*y+z*z); + w = cos(half_deg); + x = c_x/mag; + y = c_y/mag; + z = c_z/mag; +} + +quaternion& quaternion::operator=(const quaternion& q){ + w=q.w; + x=q.x; + y=q.y; + z=q.z; + return *this; +} + +quaternion quaternion::operator*(const quaternion& q){ + float p_w, p_x, p_y, p_z; + p_w=w*q.w-x*q.x-y*q.y-z*q.z; + p_x=w*q.x+x*q.w+z*q.y-y*q.z; + p_y=w*q.y+y*q.w+x*q.z-z*q.x; + p_z=w*q.z+z*q.w+y*q.x-x*q.y; + quaternion p(p_w, p_x, p_y, p_z); + return p; +} + +quaternion& quaternion::operator*=(const quaternion& q){ + *this=*this*q; + return *this; +} + +void quaternion::set(float e_w, float e_x, float e_y, float e_z) +{ + w = e_w; + x = e_x; + y = e_y; + z = e_z; + normalize(); +} + +quaternion::quaternion(float e_w, float e_x, float e_y, float e_z) +{ + set(e_w, e_x, e_y, e_z); +} + +void quaternion::normalize() +{ + float norm = sqrt(w*w+x*x+y*y+z*z); + if(norm==1) return; + w=w/norm; + x=x/norm; + y=y/norm; + z=z/norm; +} + +quaternion::quaternion() +{ + identity(); +} + +quaternion::~quaternion() +{ +} Added: freepv/branches/branch_leonox/src/libfreepv/Math/quaternion.h =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/Math/quaternion.h (rev 0) +++ freepv/branches/branch_leonox/src/libfreepv/Math/quaternion.h 2007-06-30 01:45:45 UTC (rev 115) @@ -0,0 +1,26 @@ +#include <math.h> +#include "Matrix4.h" + +const float PI = 3.1416f; + +class quaternion +{ + private: + float w, x, y, z; + public: + quaternion(float w, float x, float y, float z); + quaternion(); + ~quaternion(); + void identity(); + void fromEulerAngles(float tilt, float pan, float fov); + void toMatrix(Matrix4 &M); + void RotateAboutX(float deg); + void RotateAboutY(float deg); + void RotateAboutZ(float deg); + void RotateAboutAxis(float deg, float x, float y, float z); + void set(float e_w, float e_x, float e_y, float e_z); + quaternion& operator=(const quaternion& q); + quaternion& operator*=(const quaternion& q); + quaternion operator*(const quaternion& q); + void normalize(); +}; Modified: freepv/branches/branch_leonox/src/libfreepv/OpenGLRenderer.cpp =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/OpenGLRenderer.cpp 2007-06-29 06:17:07 UTC (rev 114) +++ freepv/branches/branch_leonox/src/libfreepv/OpenGLRenderer.cpp 2007-06-30 01:45:45 UTC (rev 115) @@ -860,7 +860,7 @@ SceneElement * elem = scene.getSceneElement(); if (elem) { - if (!elem->m_renderData) { + if (elem->getType()!=SceneElement::GROUP&&(!elem->m_renderData)) { initElement(*elem); } // render only if the render data is really available Modified: freepv/branches/branch_leonox/src/libfreepv/PanoViewer.cpp =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/PanoViewer.cpp 2007-06-29 06:17:07 UTC (rev 114) +++ freepv/branches/branch_leonox/src/libfreepv/PanoViewer.cpp 2007-06-30 01:45:45 UTC (rev 115) @@ -220,6 +220,8 @@ */ void PanoViewer::onDownloadComplete(void * data, size_t sz) { + Image * img; + const char*file_to_download; fprintf(stderr, "state %d: %d bytes downloaded\n",(int)m_state, (int)sz); // do some useful stuff here.. decode image etc. switch (m_state) { @@ -235,10 +237,9 @@ { //Image * img = new Image(); - Image * img; decodeImage((unsigned char*) data, sz, img, AUTO); //To remove - /* if (0) { + if (0) { delete img; free(data); FPV_S2S(m_statusMessage, "JPEG decoding error: " << m_platform->currentDownloadURL()); @@ -256,7 +257,7 @@ // notify renderer of new cube face m_renderer->initElement(*m_currentCube); redraw(); - }*/ + } } m_currentCubeFaceDownload++; @@ -288,6 +289,19 @@ redraw(); } break; + case STATE_DOWNLOADING_SPIV: + img=m_spiv_parser->extractImage(); + decodeImage((unsigned char*) data, sz, img, AUTO); + file_to_download = m_spiv_parser->getImgURLToDownload(); + if(file_to_download!=NULL) + m_platform->startDownloadURL(file_to_download); + else{ + m_statusMessage = "viewing"; + m_scene->setStatusText(m_statusMessage); + changeState(STATE_VIEWING); + redraw(); + } + break; default: DEBUG_ERROR("INVALID state after downloading to memory"); // unknown file, ignore @@ -326,7 +340,7 @@ // if no mimetype, check file extension // assume jpeg if file doesn't have a MOV or QTVR extension if (mime == "") { - std::string ext = string2UPPER(getExtension(m_param.getSrc())); + std::string ext = string2UPPER(getExtension(filename.c_str())); if (ext == "MOV" || ext == "QTVR") { type = "QTVR"; @@ -471,6 +485,7 @@ if(m_spiv_parser==NULL){ std::cerr<<"Creating a SPiVparser"<<std::endl; + m_state=STATE_DOWNLOADING_SPIV; m_spiv_parser=new SPiVparser(); m_spiv_parser->parseURL(filename.c_str()); m_spiv_parser->loadTour(); @@ -479,15 +494,18 @@ { m_spiv_parser->parseNodeURL(filename.c_str()); } - const char* xml_to_download=NULL; - xml_to_download = m_spiv_parser->getXMLToDownload(); - if(xml_to_download!=NULL) + const char* file_to_download=NULL; + file_to_download = m_spiv_parser->getXMLToDownload(); + if(file_to_download!=NULL) { - std::cerr<<"Dowloading: "<<xml_to_download<<std::endl; - m_platform->startDownloadURLToFile(xml_to_download); + //std::cerr<<"Dowloading: "<<file_to_download<<std::endl; + m_platform->startDownloadURLToFile(file_to_download); }else{ std::cerr<<"Loading scene"<<std::endl; m_spiv_parser->loadScene(*m_scene); + file_to_download = m_spiv_parser->getImgURLToDownload(); + if(file_to_download!=NULL) + m_platform->startDownloadURL(file_to_download); redraw(); } }else{ Modified: freepv/branches/branch_leonox/src/libfreepv/PanoViewer.h =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/PanoViewer.h 2007-06-29 06:17:07 UTC (rev 114) +++ freepv/branches/branch_leonox/src/libfreepv/PanoViewer.h 2007-06-30 01:45:45 UTC (rev 115) @@ -138,6 +138,7 @@ STATE_DOWNLOADING_PREVIEW, ///< currently downloading the preview image STATE_DOWNLOADING_SRC, ///< currently downloading the file from the src attribute STATE_DOWNLOADING_CUBEFACES,///< currently downloading cubefaces + STATE_DOWNLOADING_SPIV, STATE_VIEWING, ///< viewer is fully constructed, normal viewing STATE_ERROR ///< an error has occured, cannot continue }; Modified: freepv/branches/branch_leonox/src/libfreepv/SPiVparser.cpp =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/SPiVparser.cpp 2007-06-29 06:17:07 UTC (rev 114) +++ freepv/branches/branch_leonox/src/libfreepv/SPiVparser.cpp 2007-06-30 01:45:45 UTC (rev 115) @@ -24,6 +24,7 @@ #include "SPiVparser.h" #include <iostream> +#include <assert.h> using namespace FPV; @@ -64,6 +65,7 @@ std::string status; xmlNodePtr p_aux=NULL; xmlNodePtr p_meta=NULL; + imgList.clear(); if(m_root!=NULL) { @@ -77,6 +79,9 @@ if(id==NULL) { p_aux=NULL; + //In case of having a global node, we try to find + //the meta node to check if the default scene is + //specified. if(m_global!=NULL) { p_aux=FindElement(m_global,"defaultview",NULL,NULL,DEPTH); @@ -89,8 +94,10 @@ { m_current_scene=p_aux; status.append("The current scene is "); - status.append((const char*)xmlGetProp(m_current_scene,(const xmlChar*)"id")); - sceneToLoad.setStatusText(status); + //bug ned to check if the scene has not an id + status.append((const char*)xmlGetProp(m_current_scene,(const xmlChar*)"id")); + sceneToLoad.setStatusText(status); + sceneToLoad.setSceneElement(setupScene(m_current_scene)); return true; } } @@ -109,6 +116,8 @@ status.append((const char*)xmlGetProp(m_current_scene,(const xmlChar*)"id")); //getID(m_current_scene); sceneToLoad.setStatusText(status); + std::cerr<<"lets get the elements"<<std::endl; + sceneToLoad.setSceneElement(setupScene(m_current_scene)); return true; } else if(m_current_scene==NULL){ @@ -119,6 +128,120 @@ return false; } +SceneElement * SPiVparser::setupScene(xmlNodePtr node) +{ + SceneElement *element=NULL; + xmlNodePtr children = node->children; + while(children!=NULL) + { + if(cmp("panogroup",children->name)){ + + std::cerr<<"A panogroup was created"<<std::endl; + if(element) + element->setSibling(new SceneElement()); + else + element=new SceneElement(); + element->setChildren(setupScene(children)); + + }else if(cmp("panoelement",children->name)){ + Image* img; + SceneElement *pano=NULL; + std::cerr<<"A panoelement was created"<<std::endl; + if(validateElement(children,NULL,"type","flat")){ + std::cerr<<"type=flat"<<std::endl; + }else if(validateElement(children,NULL,"type","cubic")){ + std::cerr<<"type=cubic"<<std::endl; + pano=new CubicPano(); + getElementRotation(children,pano); + }else if(validateElement(children,NULL,"type","cylindrical")){ + std::cerr<<"type=cylindrical"<<std::endl; + pano=new CylindricalPano(); + getElementRotation(children,pano); + getElementImage(children, img); + }else if(validateElement(children,NULL,"type","shperical")){ + std::cerr<<"type=spherical"<<std::endl; + pano=new SphericalPano(); + getElementRotation(children,pano); + getElementImage(children, img); + }else{ + std::cerr<<"type=placeholder"<<std::endl; + } + if(element){ + assert(element); + element->setSibling(pano); + } + else + element=pano; + } + children=children->next; + } + return element; +} + +void SPiVparser::getElementImage(xmlNodePtr node, Image * &img) +{ + xmlNodePtr img_node=NULL; + xmlNodePtr img_layer=NULL; + //image id + std::string id; + //We need to find the image node inside the element + img_node=FindElement(node->children,"image",NULL, NULL, WIDE); + if(img_node!=NULL){ + //In case we find it inside the element we need to find a layer + //for the moment it just suppor base images, with type bitmap + //in the future it should support other ones. + img_layer=FindElement(img_node->children,"layer","class","base",WIDE); + if(img_layer!=NULL&&validateElement(img_layer,"layer","type","bitmap")){ + //Now that we found the layer we wanted, we need to create a new image + img=new Image(); + img_info info; + info.img=img; + info.url=(const char*)xmlGetProp(img_layer,(const xmlChar*)"src"); + //bug need to fix if the scene doesn't has an id + id=(const char*)xmlGetProp(img_node,(const xmlChar*)"id"); + imgList.insert( std::make_pair(id, info ) ); + } + }else{ + //probably buggy... must check it. + img_node=FindElement(m_root,"image","id",(const char*)xmlGetProp(node,(const xmlChar*)"image"),WIDE); + if(img_node!=NULL){ + id=(const char*)xmlGetProp(img_node,(const xmlChar*)"id"); + imageList::iterator iter = imgList.find(id); + //First we look inside the list + if(iter!=imgList.end()) + { + img_info info=iter->second; + img=info.img; + }else{ + //If it's not in the list we try to find it in the tree. + img_layer=FindElement(img_node->children,"layer","class","base",WIDE); + if(img_layer!=NULL&&validateElement(img_layer,NULL,"type","bitmap")){ + img=new Image(); + img_info info; + info.img=img; + info.url=(const char*)xmlGetProp(img_layer,(const xmlChar*)"src"); + imgList.insert( std::make_pair( id , info ) ); + } + } + } + } +} + +void SPiVparser::getElementRotation(xmlNodePtr node, SceneElement * element) +{ + float tilt=0, pan=0, roll=0; + if(validateElement(node,NULL,"tilt",NULL)){ + tilt=getFloat(xmlGetProp(node,(const xmlChar*)"tilt")); + } + if(validateElement(node,NULL,"pan",NULL)){ + pan=getFloat(xmlGetProp(node,(const xmlChar*)"pan")); + } + if(validateElement(node,NULL,"roll",NULL)){ + roll=getFloat(xmlGetProp(node,(const xmlChar*)"roll")); + } + element->m_quaternion.fromEulerAngles(pan,tilt,roll); +} + bool SPiVparser::setupCamera(xmlNodePtr node, Camera* sceneCamera) { xmlNodePtr p_aux=NULL; @@ -201,6 +324,27 @@ } } +const char * SPiVparser::getImgURLToDownload() +{ + imageList::iterator iter=imgList.begin(); + if(iter!=imgList.end()){ + std::cerr<<"file to download "<<iter->second.url<<std::endl; + return iter->second.url; + } + return NULL; +} + +Image * SPiVparser::extractImage() +{ + Image *img; + imageList::iterator iter=imgList.begin(); + if(iter!=imgList.end()){ + img=iter->second.img; + imgList.erase(iter); + } + return img; +} + const char * SPiVparser::getXMLToDownload() { char* names[]={"scene","panogroup","global"}; @@ -230,7 +374,7 @@ void SPiVparser::loadGlobal() { - Camera * p_camera; + Camera * p_camera; xmlNodePtr p_aux=NULL; xmlNodePtr p_meta=NULL; if(m_root!=NULL) Modified: freepv/branches/branch_leonox/src/libfreepv/SPiVparser.h =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/SPiVparser.h 2007-06-29 06:17:07 UTC (rev 114) +++ freepv/branches/branch_leonox/src/libfreepv/SPiVparser.h 2007-06-30 01:45:45 UTC (rev 115) @@ -4,7 +4,7 @@ * * Author: Leon Moctezuma <densedev_at_gmail_dot_com> * - * $Id: Platform.h 101 2006-12-01 23:42:33Z dangelo $ + * $Id: SPiVparser.h 101 2006-12-01 23:42:33Z dangelo $ * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as @@ -24,10 +24,26 @@ #include "XMLparser.h" #include "Scene.h" +#include "Image.h" +#include <map> +#include <string> namespace FPV { +//This structure is used +//to store info that is not +//inside the image class and +//that is going to be used at some +//point. +typedef struct +{ + Image* img; + const char* url; +} img_info; + +typedef std::map<std::string,img_info> imageList; + class SPiVparser: public XMLparser { private: @@ -35,6 +51,7 @@ xmlNodePtr m_global; xmlNodePtr m_current_scene; Camera *m_global_camera; + imageList imgList; public: @@ -50,26 +67,44 @@ //False in other case. bool loadTour(); - //Try to load an specified scene to the viewer - //this function would receive an scene by reference - //and the id inside the SPi-V document to look for. - //True if the Scene was found and succesfully loaded in the viewer. - //False in other case. - //bool loadScene(const char* id, Scene &sceneToLoad); + //Try to load an Scene, if the id is NULL, then + //we look for the one specified in the global node + //if it's not specified we load the first one in the file. + bool loadScene(Scene &sceneToLoad, const char* id=NULL); + + //This fucntion receives xml to parse. + void parseNodeURL(const char* url); - //Try to load the default scene to the viewer - //this function would receive an scene by reference - //and would load the default scene in the SPi-V document. - //True if the Scene was found and succesfully loaded in the - //False in other case. - //bool loadScene(Scene &sceneToLoad); + //This function returns the xml urls needed to be downloaded + //in order to complete the tree. + const char * getXMLToDownload(); + + Image * extractImage(); + const char * getImgURLToDownload(); - //For testing purposes - bool loadScene(Scene &sceneToLoad, const char* id=NULL); + private: + + //This function tries to load the meta data from the scene + //and obverrides the info from bool setupCamera(xmlNodePtr node, Camera* sceneCamera); - void parseNodeURL(const char* url); - const char * getXMLToDownload(); + + //A simple function that looks for the global node. void loadGlobal(); + + //This function is in charge of creating the tree elements + //it's a recursive function, which returns the object created. + SceneElement * setupScene(xmlNodePtr node); + + //This function gets the attributes like tilt, pan and roll + //and set the orientation of the element. + void getElementRotation(xmlNodePtr node, SceneElement * element); + + //This function recives the pointer to the image from a SceneElement + //and the xml node to load, it looks for an image inside the element + //if not, it looks for it inside the list, in case it is allready + //referenced by another element, in other case it looks for it + //in all the tree by using the image reference. + void getElementImage(xmlNodePtr node, Image * &img); }; }//name space Added: freepv/branches/branch_leonox/src/libfreepv/SceneElement.cpp =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/SceneElement.cpp (rev 0) +++ freepv/branches/branch_leonox/src/libfreepv/SceneElement.cpp 2007-06-30 01:45:45 UTC (rev 115) @@ -0,0 +1,178 @@ +#include "SceneElement.h" + +using namespace FPV; + +/////////////////////////////// +// SceneElement +/////////////////////////////// + +SceneElement::SceneElement(){ + m_type=GROUP; + m_depth=0; + m_visible=true; + m_enable=true; + m_renderData=NULL; + m_children = NULL; + m_sibling = NULL; + m_parent = NULL; + m_id = stringID::generate(); + std::cerr<<"ID: "<<m_id<<std::endl; +} + +void SceneElement::Invalid() +{ + m_type=INVALID; + m_visible=false; + m_enable=false; +} + +SceneElement::~SceneElement(){ + while(m_children!=NULL) + { + delete(m_children); + } + m_parent->setChildren(m_sibling); +} + +void SceneElement::setVisible(bool v){ + m_visible=v; +} +void SceneElement::setEnable(bool v){ + m_enable=v; +} + +SceneElement* SceneElement::getChildren() +{ + return m_children; +} + +SceneElement* SceneElement::getSibling() +{ + return m_sibling; +} + +SceneElement* SceneElement::getParent() +{ + return m_parent; +} + +void SceneElement::setParent(SceneElement* parent){ + m_parent=parent; +} + +void SceneElement::setSibling(SceneElement* sibling){ + if(sibling==NULL) + { + m_sibling=NULL; + return; + } + if(m_sibling!=NULL) + { + if(m_sibling->getDepth()<sibling->getDepth()){ + sibling->setSibling(m_sibling); + m_sibling=sibling; + sibling->setParent(m_parent); + }else{ + m_sibling->setSibling(sibling); + } + }else{ + m_sibling=sibling; + sibling->setParent(m_parent); + } + +} + +void SceneElement::setChildren(SceneElement* children){ + if(children==NULL) + { + m_children=NULL; + return; + } + if(m_children!=NULL) + { + if(m_children->getDepth()<children->getDepth()){ + children->setSibling(m_children); + m_children=children; + children->setParent(m_children); + }else{ + m_children->setSibling(children); + } + }else{ + m_children=children; + children->setParent(m_children); + } +} + +float SceneElement::getDepth() +{ + return m_depth; +} + +void SceneElement::setDepth(float depth) +{ + m_depth=depth; +} + +quaternion SceneElement::getQuaternion() +{ + quaternion q; + if(m_parent!=NULL) + q=m_parent->getQuaternion()*m_quaternion; + else + return q; +} + +/////////////////////////////// +// FlatPano +/////////////////////////////// + +FlatPano::FlatPano(Size2D sz, float HFOV){ + m_type = PANO_FLAT; + m_image = 0; + m_hfov = HFOV; +} + +FlatPano::FlatPano(){ + m_type = PANO_FLAT; + m_image = 0; + m_hfov = 0; +} + +FlatPano::~FlatPano() +{ + if (m_image) { + delete m_image; + } +} + +void FlatPano::setImage(Image * img) +{ + if (m_image) { + delete m_image; + } + m_image = img; +} + +/////////////////////////////// +// PlaceHolder +/////////////////////////////// + +PlaceHolder::PlaceHolder(){ + m_type = PANO_FLAT; + m_image = 0; +} + +PlaceHolder::~PlaceHolder() +{ + if (m_image) { + delete m_image; + } +} + +void PlaceHolder::setImage(Image * img) +{ + if (m_image) { + delete m_image; + } + m_image = img; +} Modified: freepv/branches/branch_leonox/src/libfreepv/SceneElement.h =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/SceneElement.h 2007-06-29 06:17:07 UTC (rev 114) +++ freepv/branches/branch_leonox/src/libfreepv/SceneElement.h 2007-06-30 01:45:45 UTC (rev 115) @@ -1,88 +1,99 @@ -/* -*- c-basic-offset: 4 -*- */ -/* - * This file is part of the freepv panoramic viewer. - * - * Author: Pablo d'Angelo <pab...@we...> - * - * $Id: Scene.h 112 2007-06-20 19:16:17Z Leonox $ - * - * This 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; version 2.1 of - * the License - * - * This software 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 software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. - */ - #include "Image.h" +#include "Platform.h" +#include "Math/quaternion.h" +#include "Utils/stringID.h" namespace FPV { -/** render specific data. - * - * This class is used by the renderer to store - * render-specific information about a Scene element - * eg. OpenGL textures and so on. - */ class RenderData { public: virtual ~RenderData() {}; }; -/** main panorama class. +/****************** main panorama class ******************* * * This is the model that contains the panoramic image or * any other scene elment that should be drawn on screen - */ + * + **********************************************************/ + class SceneElement { -public: + public: /** List of all scene element types */ - enum Type { INVALID, PANO_CUBIC, PANO_SPHERICAL, PANO_CYLINDRICAL, TEXT }; + enum Type { INVALID, PANO_CUBIC, PANO_SPHERICAL, PANO_CYLINDRICAL, PANO_FLAT, GROUP, PLACE_HOLDER, TEXT}; - SceneElement() - : m_renderData(0), m_type(INVALID), m_depth(1) - { } + //This quaternion keeps the angular displacement + quaternion p; - virtual ~SceneElement() - { - if (m_renderData) - delete m_renderData; - } + SceneElement(); + virtual ~SceneElement(); + /** the render data is used by the renderer to store + * render-specific information about this element + * eg. OpenGL textures or similar + */ + RenderData * m_renderData; + + SceneElement* getChildren(); + SceneElement* getSibling(); + SceneElement* getParent(); + void setChildren(SceneElement *children); + void setParent(SceneElement *parent); + void setSibling(SceneElement *sibling); + + //This functions hides or shows the element(s) + //thus the renderer ignores all the elements with + //this memeber variable with true value. + void setVisible(bool v); + + //This enables or disable the actions from the element + //an element can behave, even if it's not visible. + void setEnable(bool v); + + //This function doesn't necesarly returns the quaternion + //from the object, if the element has a parent + //it will return the result of multipliying it's internal + //quaternion with it's parent quaternion. Thus this is + //a recursive function. + quaternion getQuaternion(); + Type getType() { return m_type; } + + //set the depth of the elment. + void setDepth(float depth); + float getDepth(); + void Invalid(); + quaternion m_quaternion; - /** the render data is used by the renderer to store - * render-specific information about this element - * eg. OpenGL textures or similar - */ - RenderData * m_renderData; -protected: + protected: + //Sibling of the node, a group or elment. + SceneElement* m_sibling; + //Parent of the node, a group node. + SceneElement* m_parent; + //Children of the node, an elment. + SceneElement* m_children; + //Keeps the record of the panorama type Type m_type; + //This is the order in wich the elment are renderer. float m_depth; + //This variables enable or disable an elment or group. + //of element. + bool m_visible; + bool m_enable; + //The id to identify the element. + std::string m_id; }; +////////////////////////////// +// Cubic Panorama +///////////////////////////// -//=================================================================== -// scene elements - -/** A cubic panorama - * - * This is the model that contains the cubic panorama. - */ class CubicPano : public SceneElement { public: @@ -100,6 +111,15 @@ m_images[i] = 0; } } + + CubicPano() + { + m_type = PANO_CUBIC; + m_size = Size2D(0,0); + for (int i=0; i < 6; i++) { + m_images[i] = 0; + } + } ~CubicPano() { @@ -155,9 +175,10 @@ Size2D m_size; }; +////////////////////////////// +// Cylindrical Panorama +////////////////////////////// -/** A cylindrical panorama - */ class CylindricalPano : public SceneElement { public: @@ -170,6 +191,13 @@ m_hfov = HFOV; } + CylindricalPano() + { + m_type = PANO_CYLINDRICAL; + m_image = 0; + m_hfov = 0; + } + ~CylindricalPano() { if (m_image) { @@ -196,9 +224,46 @@ double m_hfov; }; +/////////////////////////////// +// FlatPano +/////////////////////////////// -/** A spherical panorama - */ +class FlatPano : public SceneElement +{ +public: + + FlatPano(Size2D sz, float HFOV); + FlatPano(); + ~FlatPano(); + void setImage(Image * img); + +private: + Image * m_image; + double m_hfov; + double m_hoffset; + double m_voffset; +}; + +/////////////////////////////// +// PlaceHolder +/////////////////////////////// + +class PlaceHolder : public SceneElement +{ +public: + + PlaceHolder(); + ~PlaceHolder(); + void setImage(Image * img); + +private: + Image * m_image; +}; + +/////////////////////////////// +// Spherical Panorama +/////////////////////////////// + class SphericalPano : public SceneElement { public: @@ -211,6 +276,13 @@ m_hfov = HFOV; } + SphericalPano() + { + m_type = PANO_SPHERICAL; + m_image = 0; + m_hfov = 0; + } + ~SphericalPano() { if (m_image) { @@ -237,9 +309,9 @@ double m_hfov; }; -/** A text message - * - */ +/////////////////////////////// +// Text Msg +/////////////////////////////// class TextElement : public SceneElement { public: @@ -250,4 +322,5 @@ } std::string m_text; }; -}//namespace + +} Added: freepv/branches/branch_leonox/src/libfreepv/Utils/stringID.cpp =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/Utils/stringID.cpp (rev 0) +++ freepv/branches/branch_leonox/src/libfreepv/Utils/stringID.cpp 2007-06-30 01:45:45 UTC (rev 115) @@ -0,0 +1,41 @@ +#include "stringID.h" + +stringID::stringID(){ + allocate(); +} + +void stringID::allocate(int length){ + m_length=length; + if(m_string) + free(m_string); + m_string=new char[m_length]; + m_string[0]='@'; + for(int i=1; i<m_length; i++) + m_string[i]=65; +} + +stringID::~stringID(){ + +} + +void stringID::Increment(int i){ + if(i>=m_length) + { + allocate(m_length+1); + return; + } + if(m_string[i]<90) + m_string[i]++; + else + { + m_string[i]=65; + Increment(i+1); + } +} + +std::string stringID::generate(){ + static stringID generator; + std::string aux = generator.m_string; + generator.Increment(); + return aux; +} Added: freepv/branches/branch_leonox/src/libfreepv/Utils/stringID.h =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/Utils/stringID.h (rev 0) +++ freepv/branches/branch_leonox/src/libfreepv/Utils/stringID.h 2007-06-30 01:45:45 UTC (rev 115) @@ -0,0 +1,14 @@ +#include <string> + +class stringID +{ + private: + char *m_string; + int m_length; + stringID(); + void Increment(int i=1); + void allocate(int length=6); + public: + ~stringID(); + static std::string generate(); +}; Modified: freepv/branches/branch_leonox/src/libfreepv/XMLparser.cpp =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/XMLparser.cpp 2007-06-29 06:17:07 UTC (rev 114) +++ freepv/branches/branch_leonox/src/libfreepv/XMLparser.cpp 2007-06-30 01:45:45 UTC (rev 115) @@ -37,11 +37,9 @@ bool XMLparser::validateElement(xmlNodePtr node, const char* name, const char* attr, const char* value) { - if(node==NULL) - return false; if(name==NULL&&attr==NULL) { - return true; + return false; } else { Modified: freepv/branches/branch_leonox/src/libfreepv/imageReader.cpp =================================================================== --- freepv/branches/branch_leonox/src/libfreepv/imageReader.cpp 2007-06-29 06:17:07 UTC (rev 114) +++ freepv/branches/branch_leonox/src/libfreepv/imageReader.cpp 2007-06-30 01:45:45 UTC (rev 115) @@ -46,15 +46,17 @@ type=JPEG; } if(type==JPEG) - { - img=new Image(); + { + if(img==NULL) + img=new Image(); decodeJPEG(data, size, *img); return true; } else if(type==PNG) { infoPNG *info=new infoPNG(); - img=new Image(); + if(img==NULL) + img=new Image(); decodePNG(data,size, info, img); return true; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Le...@us...> - 2007-06-29 06:17:05
|
Revision: 114 http://svn.sourceforge.net/freepv/?rev=114&view=rev Author: Leonox Date: 2007-06-28 23:17:07 -0700 (Thu, 28 Jun 2007) Log Message: ----------- Parameter.cpp... this file was in the branch... Modified Paths: -------------- freepv/trunk/src/libfreepv/Parameters.cpp Modified: freepv/trunk/src/libfreepv/Parameters.cpp =================================================================== --- freepv/trunk/src/libfreepv/Parameters.cpp 2007-06-23 03:19:28 UTC (rev 113) +++ freepv/trunk/src/libfreepv/Parameters.cpp 2007-06-29 06:17:07 UTC (rev 114) @@ -46,23 +46,19 @@ // used by command line void Parameters::parse( int argc, char* argv[] ) { - char *src; - - //The first argument is the present work directory (pwd) - //pwd is ignored by the parser + char *src; - for( int i = 1; i < argc; i++ ) { - // add src, if not on commandline - if(strchr(argv[i],'=')==NULL) - { - src = (char*)malloc(sizeof(argv[i])+4); - strcpy(src,"SRC="); - strcat(src, argv[i]); - argv[i]=src; - } - parse(argv[i]); - } + //The first argument is the present work directory (pwd) + //pwd is ignored by the parser + for( int i = 1; i < argc; i++ ) { + // add src, if not on commandline + if(strchr(argv[i],'=')==NULL) + parse("SRC", argv[i]); + else + parse(argv[i]); + } + } // parses a single parameter This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |