You can subscribe to this list here.
2007 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
(64) |
Jul
(77) |
Aug
(21) |
Sep
(15) |
Oct
(3) |
Nov
(4) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(1) |
Feb
|
Mar
(12) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
(3) |
Dec
|
From: <ror...@us...> - 2007-06-22 22:12:31
|
Revision: 8 http://roreditor.svn.sourceforge.net/roreditor/?rev=8&view=rev Author: rorthomas Date: 2007-06-22 15:12:29 -0700 (Fri, 22 Jun 2007) Log Message: ----------- initial rortoolkit Added Paths: ----------- trunk/Plugin_BSPSceneManager.dll trunk/Plugin_CgProgramManager.dll trunk/Plugin_OctreeSceneManager.dll trunk/Plugin_ParticleFX.dll trunk/RenderSystem_Direct3D9.dll trunk/RenderSystem_GL.dll trunk/dxwebsetup.exe trunk/editor.cfg trunk/lib/ trunk/lib/ogre/ trunk/lib/ogre/__init__.py trunk/lib/ogre/gui/ trunk/lib/ogre/gui/CEGUI/ trunk/lib/ogre/gui/CEGUI/CEGUIBase.dll trunk/lib/ogre/gui/CEGUI/CEGUIExpatParser.dll trunk/lib/ogre/gui/CEGUI/CEGUIFalagardWRBase.dll trunk/lib/ogre/gui/CEGUI/OgreGUIRenderer.dll trunk/lib/ogre/gui/CEGUI/__init__.py trunk/lib/ogre/gui/CEGUI/_cegui_.pyd trunk/lib/ogre/gui/__init__.py trunk/lib/ogre/io/ trunk/lib/ogre/io/OIS/ trunk/lib/ogre/io/OIS/OIS.dll trunk/lib/ogre/io/OIS/__init__.py trunk/lib/ogre/io/OIS/_ois_.pyd trunk/lib/ogre/io/__init__.py trunk/lib/ogre/physics/ trunk/lib/ogre/physics/ODE/ trunk/lib/ogre/physics/ODE/__init__.py trunk/lib/ogre/physics/ODE/_ode_.pyd trunk/lib/ogre/physics/ODE/ode.dll trunk/lib/ogre/physics/OgreNewt/ trunk/lib/ogre/physics/OgreNewt/Newton.dll trunk/lib/ogre/physics/OgreNewt/__init__.py trunk/lib/ogre/physics/OgreNewt/_ogrenewt_.pyd trunk/lib/ogre/physics/OgreOde/ trunk/lib/ogre/physics/OgreOde/OgreOde_Core.dll trunk/lib/ogre/physics/OgreOde/OgreOde_Loader.dll trunk/lib/ogre/physics/OgreOde/OgreOde_Prefab.dll trunk/lib/ogre/physics/OgreOde/__init__.py trunk/lib/ogre/physics/OgreOde/_ogreode_.pyd trunk/lib/ogre/physics/OgreOde/ode.dll trunk/lib/ogre/physics/OgreRefApp/ trunk/lib/ogre/physics/OgreRefApp/ReferenceAppLayer.dll trunk/lib/ogre/physics/OgreRefApp/__init__.py trunk/lib/ogre/physics/OgreRefApp/_ogrerefapp_.pyd trunk/lib/ogre/physics/OgreRefApp/ode.dll trunk/lib/ogre/physics/__init__.py trunk/lib/ogre/renderer/ trunk/lib/ogre/renderer/OGRE/ trunk/lib/ogre/renderer/OGRE/OgreMain.dll trunk/lib/ogre/renderer/OGRE/__init__.py trunk/lib/ogre/renderer/OGRE/_ogre_.pyd trunk/lib/ogre/renderer/OGRE/_ogre_exceptions_.py trunk/lib/ogre/renderer/OGRE/boost_python-vc71-mt-1_35.dll trunk/lib/ogre/renderer/OGRE/cg.dll trunk/lib/ogre/renderer/OGRE/named_tuple.py trunk/lib/ogre/renderer/OGRE/sf_OIS.py trunk/lib/ogre/renderer/OGRE/sf_utils.py trunk/lib/ogre/renderer/__init__.py trunk/lib/ogre/sound/ trunk/lib/ogre/sound/OgreAL/ trunk/lib/ogre/sound/OgreAL/OgreAL.dll trunk/lib/ogre/sound/OgreAL/OpenAL32.dll trunk/lib/ogre/sound/OgreAL/__init__.py trunk/lib/ogre/sound/OgreAL/_ogreal_.pyd trunk/lib/ogre/sound/OgreAL/alut.dll trunk/lib/ogre/sound/OgreAL/ogg.dll trunk/lib/ogre/sound/OgreAL/vorbis.dll trunk/lib/ogre/sound/OgreAL/vorbisfile.dll trunk/lib/ogre/sound/OgreAL/wrap_oal.dll trunk/lib/ogre/sound/__init__.py trunk/lib/ror/ trunk/lib/ror/RoROgreWindow.py trunk/lib/ror/SettingsFrame.py trunk/lib/ror/SharedTestOgreWindow.py trunk/lib/ror/__init__.py trunk/lib/ror/editor.cfg trunk/lib/ror/ror.ico trunk/lib/ror/rorcommon.py trunk/lib/ror/rorsettings.py trunk/lib/ror/settingsdialog.py trunk/lib/ror/splash.bmp trunk/lib/ror/starter.py trunk/lib/ror/truckparser.py trunk/lib/rorterraineditor/ trunk/lib/rorterraineditor/HelpFrame.py trunk/lib/rorterraineditor/MainFrame.py trunk/lib/rorterraineditor/RoRTerrainOgreWindow.py trunk/lib/rorterraineditor/RoRTerrainSelectedObjectOgreWindow.py trunk/lib/rorterraineditor/RoRTerrainSelectedObjectTopOgreWindow.py trunk/lib/rorterraineditor/TerrainOgreWindow.py_ trunk/lib/rorterraineditor/__init__.py trunk/lib/rortruckeditor/ trunk/lib/rortruckeditor/MainFrame.py trunk/lib/rortruckeditor/RoRTruckOgreWindow.py trunk/lib/rortruckeditor/RoRUVOgreWindow.py trunk/lib/rortruckeditor/UVFrame.py trunk/lib/rortruckeditor/__init__.py trunk/lib/testapp/ trunk/lib/wx/ trunk/lib/wx/__init__.py trunk/lib/wx/__version__.py trunk/lib/wx/_activex.pyd trunk/lib/wx/_animate.pyd trunk/lib/wx/_aui.pyd trunk/lib/wx/_calendar.pyd trunk/lib/wx/_combo.pyd trunk/lib/wx/_controls.py trunk/lib/wx/_controls_.pyd trunk/lib/wx/_core.py trunk/lib/wx/_core_.pyd trunk/lib/wx/_gdi.py trunk/lib/wx/_gdi_.pyd trunk/lib/wx/_gizmos.pyd trunk/lib/wx/_glcanvas.pyd trunk/lib/wx/_grid.pyd trunk/lib/wx/_html.pyd trunk/lib/wx/_media.pyd trunk/lib/wx/_misc.py trunk/lib/wx/_misc_.pyd trunk/lib/wx/_richtext.pyd trunk/lib/wx/_stc.pyd trunk/lib/wx/_webkit.pyd trunk/lib/wx/_windows.py trunk/lib/wx/_windows_.pyd trunk/lib/wx/_wizard.pyd trunk/lib/wx/_xrc.pyd trunk/lib/wx/activex.py trunk/lib/wx/animate.py trunk/lib/wx/aui.py trunk/lib/wx/build/ trunk/lib/wx/build/__init__.py trunk/lib/wx/build/build_options.py trunk/lib/wx/build/config.py trunk/lib/wx/calendar.py trunk/lib/wx/combo.py trunk/lib/wx/gdiplus.dll trunk/lib/wx/gizmos.py trunk/lib/wx/glcanvas.py trunk/lib/wx/grid.py trunk/lib/wx/html.py trunk/lib/wx/lib/ trunk/lib/wx/lib/CDate.py trunk/lib/wx/lib/ClickableHtmlWindow.py trunk/lib/wx/lib/__init__.py trunk/lib/wx/lib/activexwrapper.py trunk/lib/wx/lib/analogclock/ trunk/lib/wx/lib/analogclock/__init__.py trunk/lib/wx/lib/analogclock/analogclock.py trunk/lib/wx/lib/analogclock/helpers.py trunk/lib/wx/lib/analogclock/lib_setup/ trunk/lib/wx/lib/analogclock/lib_setup/__init__.py trunk/lib/wx/lib/analogclock/lib_setup/buttontreectrlpanel.py trunk/lib/wx/lib/analogclock/lib_setup/colourselect.py trunk/lib/wx/lib/analogclock/lib_setup/fontselect.py trunk/lib/wx/lib/analogclock/setup.py trunk/lib/wx/lib/analogclock/styles.py trunk/lib/wx/lib/anchors.py trunk/lib/wx/lib/art/ trunk/lib/wx/lib/art/__init__.py trunk/lib/wx/lib/art/flagart.py trunk/lib/wx/lib/art/img2pyartprov.py trunk/lib/wx/lib/buttonpanel.py trunk/lib/wx/lib/buttons.py trunk/lib/wx/lib/calendar.py trunk/lib/wx/lib/colourchooser/ trunk/lib/wx/lib/colourchooser/__init__.py trunk/lib/wx/lib/colourchooser/canvas.py trunk/lib/wx/lib/colourchooser/intl.py trunk/lib/wx/lib/colourchooser/pycolourbox.py trunk/lib/wx/lib/colourchooser/pycolourchooser.py trunk/lib/wx/lib/colourchooser/pycolourslider.py trunk/lib/wx/lib/colourchooser/pypalette.py trunk/lib/wx/lib/colourdb.py trunk/lib/wx/lib/colourselect.py trunk/lib/wx/lib/combotreebox.py trunk/lib/wx/lib/customtreectrl.py trunk/lib/wx/lib/delayedresult.py trunk/lib/wx/lib/dialogs.py trunk/lib/wx/lib/docview.py trunk/lib/wx/lib/dragscroller.py trunk/lib/wx/lib/editor/ trunk/lib/wx/lib/editor/README.txt trunk/lib/wx/lib/editor/__init__.py trunk/lib/wx/lib/editor/editor.py trunk/lib/wx/lib/editor/images.py trunk/lib/wx/lib/editor/selection.py trunk/lib/wx/lib/evtmgr.py trunk/lib/wx/lib/expando.py trunk/lib/wx/lib/fancytext.py trunk/lib/wx/lib/filebrowsebutton.py trunk/lib/wx/lib/flashwin.py trunk/lib/wx/lib/flatnotebook.py trunk/lib/wx/lib/floatbar.py trunk/lib/wx/lib/floatcanvas/ trunk/lib/wx/lib/floatcanvas/FloatCanvas.py trunk/lib/wx/lib/floatcanvas/NavCanvas.py trunk/lib/wx/lib/floatcanvas/Resources.py trunk/lib/wx/lib/floatcanvas/__init__.py trunk/lib/wx/lib/foldmenu.py trunk/lib/wx/lib/foldpanelbar.py trunk/lib/wx/lib/gestures.py trunk/lib/wx/lib/gridmovers.py trunk/lib/wx/lib/grids.py trunk/lib/wx/lib/hyperlink.py trunk/lib/wx/lib/iewin.py trunk/lib/wx/lib/imagebrowser.py trunk/lib/wx/lib/imageutils.py trunk/lib/wx/lib/infoframe.py trunk/lib/wx/lib/inspection.py trunk/lib/wx/lib/intctrl.py trunk/lib/wx/lib/langlistctrl.py trunk/lib/wx/lib/layoutf.py trunk/lib/wx/lib/masked/ trunk/lib/wx/lib/masked/__init__.py trunk/lib/wx/lib/masked/combobox.py trunk/lib/wx/lib/masked/ctrl.py trunk/lib/wx/lib/masked/ipaddrctrl.py trunk/lib/wx/lib/masked/maskededit.py trunk/lib/wx/lib/masked/numctrl.py trunk/lib/wx/lib/masked/textctrl.py trunk/lib/wx/lib/masked/timectrl.py trunk/lib/wx/lib/mixins/ trunk/lib/wx/lib/mixins/__init__.py trunk/lib/wx/lib/mixins/grid.py trunk/lib/wx/lib/mixins/imagelist.py trunk/lib/wx/lib/mixins/inspection.py trunk/lib/wx/lib/mixins/listctrl.py trunk/lib/wx/lib/mixins/rubberband.py trunk/lib/wx/lib/mixins/treemixin.py trunk/lib/wx/lib/multisash.py trunk/lib/wx/lib/mvctree.py trunk/lib/wx/lib/newevent.py trunk/lib/wx/lib/ogl/ trunk/lib/wx/lib/ogl/__init__.py trunk/lib/wx/lib/ogl/_basic.py trunk/lib/wx/lib/ogl/_bmpshape.py trunk/lib/wx/lib/ogl/_canvas.py trunk/lib/wx/lib/ogl/_composit.py trunk/lib/wx/lib/ogl/_diagram.py trunk/lib/wx/lib/ogl/_divided.py trunk/lib/wx/lib/ogl/_drawn.py trunk/lib/wx/lib/ogl/_lines.py trunk/lib/wx/lib/ogl/_oglmisc.py trunk/lib/wx/lib/pdfwin.py trunk/lib/wx/lib/plot.py trunk/lib/wx/lib/popupctl.py trunk/lib/wx/lib/printout.py trunk/lib/wx/lib/pubsub.py trunk/lib/wx/lib/pydocview.py trunk/lib/wx/lib/pyshell.py trunk/lib/wx/lib/rcsizer.py trunk/lib/wx/lib/rightalign.py trunk/lib/wx/lib/rpcMixin.py trunk/lib/wx/lib/scrolledpanel.py trunk/lib/wx/lib/sheet.py trunk/lib/wx/lib/shell.py trunk/lib/wx/lib/splashscreen.py trunk/lib/wx/lib/splitter.py trunk/lib/wx/lib/statbmp.py trunk/lib/wx/lib/stattext.py trunk/lib/wx/lib/throbber.py trunk/lib/wx/lib/ticker.py trunk/lib/wx/lib/ticker_xrc.py trunk/lib/wx/lib/vtk.py trunk/lib/wx/lib/wordwrap.py trunk/lib/wx/lib/wxPlotCanvas.py trunk/lib/wx/lib/wxpTag.py trunk/lib/wx/locale/ trunk/lib/wx/locale/af/ trunk/lib/wx/locale/af/LC_MESSAGES/ trunk/lib/wx/locale/af/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/ca/ trunk/lib/wx/locale/ca/LC_MESSAGES/ trunk/lib/wx/locale/ca/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/cs/ trunk/lib/wx/locale/cs/LC_MESSAGES/ trunk/lib/wx/locale/cs/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/da/ trunk/lib/wx/locale/da/LC_MESSAGES/ trunk/lib/wx/locale/da/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/de/ trunk/lib/wx/locale/de/LC_MESSAGES/ trunk/lib/wx/locale/de/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/el/ trunk/lib/wx/locale/el/LC_MESSAGES/ trunk/lib/wx/locale/el/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/es/ trunk/lib/wx/locale/es/LC_MESSAGES/ trunk/lib/wx/locale/es/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/eu/ trunk/lib/wx/locale/eu/LC_MESSAGES/ trunk/lib/wx/locale/eu/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/fi/ trunk/lib/wx/locale/fi/LC_MESSAGES/ trunk/lib/wx/locale/fi/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/fr/ trunk/lib/wx/locale/fr/LC_MESSAGES/ trunk/lib/wx/locale/fr/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/gl_ES/ trunk/lib/wx/locale/gl_ES/LC_MESSAGES/ trunk/lib/wx/locale/gl_ES/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/hi/ trunk/lib/wx/locale/hi/LC_MESSAGES/ trunk/lib/wx/locale/hi/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/hu/ trunk/lib/wx/locale/hu/LC_MESSAGES/ trunk/lib/wx/locale/hu/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/id/ trunk/lib/wx/locale/id/LC_MESSAGES/ trunk/lib/wx/locale/id/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/it/ trunk/lib/wx/locale/it/LC_MESSAGES/ trunk/lib/wx/locale/it/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/ja/ trunk/lib/wx/locale/ja/LC_MESSAGES/ trunk/lib/wx/locale/ja/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/lv/ trunk/lib/wx/locale/lv/LC_MESSAGES/ trunk/lib/wx/locale/lv/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/ms/ trunk/lib/wx/locale/ms/LC_MESSAGES/ trunk/lib/wx/locale/ms/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/nb/ trunk/lib/wx/locale/nb/LC_MESSAGES/ trunk/lib/wx/locale/nb/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/nl/ trunk/lib/wx/locale/nl/LC_MESSAGES/ trunk/lib/wx/locale/nl/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/pl/ trunk/lib/wx/locale/pl/LC_MESSAGES/ trunk/lib/wx/locale/pl/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/pt_BR/ trunk/lib/wx/locale/pt_BR/LC_MESSAGES/ trunk/lib/wx/locale/pt_BR/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/ru/ trunk/lib/wx/locale/ru/LC_MESSAGES/ trunk/lib/wx/locale/ru/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/sl/ trunk/lib/wx/locale/sl/LC_MESSAGES/ trunk/lib/wx/locale/sl/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/sq/ trunk/lib/wx/locale/sq/LC_MESSAGES/ trunk/lib/wx/locale/sq/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/sv/ trunk/lib/wx/locale/sv/LC_MESSAGES/ trunk/lib/wx/locale/sv/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/tr/ trunk/lib/wx/locale/tr/LC_MESSAGES/ trunk/lib/wx/locale/tr/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/uk/ trunk/lib/wx/locale/uk/LC_MESSAGES/ trunk/lib/wx/locale/uk/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/zh_CN/ trunk/lib/wx/locale/zh_CN/LC_MESSAGES/ trunk/lib/wx/locale/zh_CN/LC_MESSAGES/wxstd.mo trunk/lib/wx/locale/zh_TW/ trunk/lib/wx/locale/zh_TW/LC_MESSAGES/ trunk/lib/wx/locale/zh_TW/LC_MESSAGES/wxstd.mo trunk/lib/wx/media.py trunk/lib/wx/msvcp71.dll trunk/lib/wx/py/ trunk/lib/wx/py/CHANGES.txt trunk/lib/wx/py/Py.ico trunk/lib/wx/py/PyAlaCarte.py trunk/lib/wx/py/PyAlaMode.py trunk/lib/wx/py/PyAlaModeTest.py trunk/lib/wx/py/PyCrust.ico trunk/lib/wx/py/PyCrust.py trunk/lib/wx/py/PyCrust_16.png trunk/lib/wx/py/PyCrust_32.png trunk/lib/wx/py/PyFilling.py trunk/lib/wx/py/PyShell.py trunk/lib/wx/py/PyWrap.py trunk/lib/wx/py/README.txt trunk/lib/wx/py/__init__.py trunk/lib/wx/py/buffer.py trunk/lib/wx/py/crust.py trunk/lib/wx/py/dispatcher.py trunk/lib/wx/py/document.py trunk/lib/wx/py/editor.py trunk/lib/wx/py/editwindow.py trunk/lib/wx/py/filling.py trunk/lib/wx/py/frame.py trunk/lib/wx/py/images.py trunk/lib/wx/py/interpreter.py trunk/lib/wx/py/introspect.py trunk/lib/wx/py/pseudo.py trunk/lib/wx/py/shell.py trunk/lib/wx/py/tests/ trunk/lib/wx/py/tests/test_interpreter.py trunk/lib/wx/py/tests/test_introspect.py trunk/lib/wx/py/tests/test_pseudo.py trunk/lib/wx/py/tests/test_version.py trunk/lib/wx/py/tests/testall.py trunk/lib/wx/py/version.py trunk/lib/wx/richtext.py trunk/lib/wx/stc.py trunk/lib/wx/tools/ trunk/lib/wx/tools/__init__.py trunk/lib/wx/tools/dbg.py trunk/lib/wx/tools/genaxmodule.py trunk/lib/wx/tools/helpviewer.py trunk/lib/wx/tools/img2img.py trunk/lib/wx/tools/img2png.py trunk/lib/wx/tools/img2py.py trunk/lib/wx/tools/img2xpm.py trunk/lib/wx/tools/pywxrc.py trunk/lib/wx/webkit.py trunk/lib/wx/wizard.py trunk/lib/wx/wxbase28h_net_vc.dll trunk/lib/wx/wxbase28h_vc.dll trunk/lib/wx/wxbase28h_xml_vc.dll trunk/lib/wx/wxmsw28h_adv_vc.dll trunk/lib/wx/wxmsw28h_aui_vc.dll trunk/lib/wx/wxmsw28h_core_vc.dll trunk/lib/wx/wxmsw28h_gizmos_vc.dll trunk/lib/wx/wxmsw28h_gizmos_xrc_vc.dll trunk/lib/wx/wxmsw28h_gl_vc.dll trunk/lib/wx/wxmsw28h_html_vc.dll trunk/lib/wx/wxmsw28h_media_vc.dll trunk/lib/wx/wxmsw28h_qa_vc.dll trunk/lib/wx/wxmsw28h_richtext_vc.dll trunk/lib/wx/wxmsw28h_stc_vc.dll trunk/lib/wx/wxmsw28h_xrc_vc.dll trunk/lib/wx/xrc.py trunk/lib/wxogre/ trunk/lib/wxogre/OgreManager.py trunk/lib/wxogre/__init__.py trunk/lib/wxogre/wxOgreWindow.py trunk/media/ trunk/media/gui/ trunk/media/gui/OpenFile.gif trunk/media/materials/ trunk/media/materials/beams.material trunk/media/materials/clouds.jpg trunk/media/materials/dirt-grass.jpg trunk/media/materials/mysimple.material trunk/media/materials/nodes.material trunk/media/materials/uvbg.png trunk/media/materials/uveditor.material trunk/media/materials/water.jpg trunk/media/models/ trunk/media/models/arrow.mesh trunk/media/models/box.mesh trunk/media/models/cap_cap.mesh trunk/media/models/cap_mid.mesh trunk/media/models/circlepointer.mesh trunk/media/models/ellipsoid.mesh trunk/media/models/roundarrow.mesh trunk/media/models/wheel.mesh trunk/media/packs/ trunk/media/packs/OgreCore.zip trunk/media/packs/skybox.zip trunk/ogre.cfg trunk/plugins.cfg trunk/readme-installer.txt trunk/readme.txt trunk/ror.ico trunk/rortoolkit.bat trunk/rortoolkit.py trunk/setup.nsi trunk/splash.bmp trunk/terraineditor.bat trunk/terraineditor.py trunk/truckeditor.bat trunk/truckeditor.py Added: trunk/Plugin_BSPSceneManager.dll =================================================================== (Binary files differ) Property changes on: trunk/Plugin_BSPSceneManager.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/Plugin_CgProgramManager.dll =================================================================== (Binary files differ) Property changes on: trunk/Plugin_CgProgramManager.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/Plugin_OctreeSceneManager.dll =================================================================== (Binary files differ) Property changes on: trunk/Plugin_OctreeSceneManager.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/Plugin_ParticleFX.dll =================================================================== (Binary files differ) Property changes on: trunk/Plugin_ParticleFX.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/RenderSystem_Direct3D9.dll =================================================================== (Binary files differ) Property changes on: trunk/RenderSystem_Direct3D9.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/RenderSystem_GL.dll =================================================================== (Binary files differ) Property changes on: trunk/RenderSystem_GL.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/dxwebsetup.exe =================================================================== (Binary files differ) Property changes on: trunk/dxwebsetup.exe ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/editor.cfg =================================================================== --- trunk/editor.cfg (rev 0) +++ trunk/editor.cfg 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1 @@ +C:\games\RoR-0.31a_\RoR.exe \ No newline at end of file Added: trunk/lib/ogre/__init__.py =================================================================== --- trunk/lib/ogre/__init__.py (rev 0) +++ trunk/lib/ogre/__init__.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1 @@ +#keep me \ No newline at end of file Added: trunk/lib/ogre/gui/CEGUI/CEGUIBase.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/gui/CEGUI/CEGUIBase.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/gui/CEGUI/CEGUIExpatParser.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/gui/CEGUI/CEGUIExpatParser.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/gui/CEGUI/CEGUIFalagardWRBase.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/gui/CEGUI/CEGUIFalagardWRBase.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/gui/CEGUI/OgreGUIRenderer.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/gui/CEGUI/OgreGUIRenderer.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/gui/CEGUI/__init__.py =================================================================== --- trunk/lib/ogre/gui/CEGUI/__init__.py (rev 0) +++ trunk/lib/ogre/gui/CEGUI/__init__.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1,7 @@ +import sys, os + +## we need the path for additional CEGUI dll's +if sys.platform == 'win32': + os.environ['PATH'] += ';' + __path__[0] + +from _cegui_ import * \ No newline at end of file Added: trunk/lib/ogre/gui/CEGUI/_cegui_.pyd =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/gui/CEGUI/_cegui_.pyd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/gui/__init__.py =================================================================== --- trunk/lib/ogre/gui/__init__.py (rev 0) +++ trunk/lib/ogre/gui/__init__.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1 @@ +#keep me \ No newline at end of file Added: trunk/lib/ogre/io/OIS/OIS.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/io/OIS/OIS.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/io/OIS/__init__.py =================================================================== --- trunk/lib/ogre/io/OIS/__init__.py (rev 0) +++ trunk/lib/ogre/io/OIS/__init__.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1 @@ +from _ois_ import * Added: trunk/lib/ogre/io/OIS/_ois_.pyd =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/io/OIS/_ois_.pyd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/io/__init__.py =================================================================== --- trunk/lib/ogre/io/__init__.py (rev 0) +++ trunk/lib/ogre/io/__init__.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1 @@ +#keep me \ No newline at end of file Added: trunk/lib/ogre/physics/ODE/__init__.py =================================================================== --- trunk/lib/ogre/physics/ODE/__init__.py (rev 0) +++ trunk/lib/ogre/physics/ODE/__init__.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1 @@ +from _ode_ import * \ No newline at end of file Added: trunk/lib/ogre/physics/ODE/_ode_.pyd =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/physics/ODE/_ode_.pyd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/physics/ODE/ode.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/physics/ODE/ode.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/physics/OgreNewt/Newton.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/physics/OgreNewt/Newton.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/physics/OgreNewt/__init__.py =================================================================== --- trunk/lib/ogre/physics/OgreNewt/__init__.py (rev 0) +++ trunk/lib/ogre/physics/OgreNewt/__init__.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1 @@ +from _ogrenewt_ import * \ No newline at end of file Added: trunk/lib/ogre/physics/OgreNewt/_ogrenewt_.pyd =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/physics/OgreNewt/_ogrenewt_.pyd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/physics/OgreOde/OgreOde_Core.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/physics/OgreOde/OgreOde_Core.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/physics/OgreOde/OgreOde_Loader.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/physics/OgreOde/OgreOde_Loader.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/physics/OgreOde/OgreOde_Prefab.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/physics/OgreOde/OgreOde_Prefab.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/physics/OgreOde/__init__.py =================================================================== --- trunk/lib/ogre/physics/OgreOde/__init__.py (rev 0) +++ trunk/lib/ogre/physics/OgreOde/__init__.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1 @@ +from _ogreode_ import * \ No newline at end of file Added: trunk/lib/ogre/physics/OgreOde/_ogreode_.pyd =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/physics/OgreOde/_ogreode_.pyd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/physics/OgreOde/ode.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/physics/OgreOde/ode.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/physics/OgreRefApp/ReferenceAppLayer.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/physics/OgreRefApp/ReferenceAppLayer.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/physics/OgreRefApp/__init__.py =================================================================== --- trunk/lib/ogre/physics/OgreRefApp/__init__.py (rev 0) +++ trunk/lib/ogre/physics/OgreRefApp/__init__.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1 @@ +from _ogrerefapp_ import * \ No newline at end of file Added: trunk/lib/ogre/physics/OgreRefApp/_ogrerefapp_.pyd =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/physics/OgreRefApp/_ogrerefapp_.pyd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/physics/OgreRefApp/ode.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/physics/OgreRefApp/ode.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/physics/__init__.py =================================================================== --- trunk/lib/ogre/physics/__init__.py (rev 0) +++ trunk/lib/ogre/physics/__init__.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1 @@ +#keep me \ No newline at end of file Added: trunk/lib/ogre/renderer/OGRE/OgreMain.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/renderer/OGRE/OgreMain.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/renderer/OGRE/__init__.py =================================================================== --- trunk/lib/ogre/renderer/OGRE/__init__.py (rev 0) +++ trunk/lib/ogre/renderer/OGRE/__init__.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1,36 @@ +import sys, os + +if sys.platform == 'win32': + os.environ['PATH'] += ';' + __path__[0] + +from _ogre_ import * +from _ogre_exceptions_ import * + + +## Note the work around to ensure the Radians and Degree types work correctly +## the problem is the constructors are overloaded in each class and passing a real to +## Radian actually causes boost to try it as a Degree first, and as Degreee has a 'Real' overload +## it create the Degree and passes it back to Radian -- +## +## and as it's a lot of work and overly confusing to fix this in generate_code.py we fix it here +## +def Radian( r=None, d=None ): + if isinstance( r, _ogre_.Degree ): + return _ogre_.Radian( r ) + elif isinstance( r, _ogre_.Radian ): + return _ogre_.Radian().assign( r ) + elif d: + return _ogre_.Radian( d=d ) + else: + return _ogre_.Radian( r=r ) + +def Degree( d=None, r=None ): + if isinstance( d, _ogre_.Radian ): + return _ogre_.Degree( d ) + elif isinstance( d, _ogre_.Degree ): + return _ogre_.Degree().assign( d ) + elif r: + return _ogre.Degree (r=r) + else: + return _ogre_.Degree( d=d ) + Added: trunk/lib/ogre/renderer/OGRE/_ogre_.pyd =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/renderer/OGRE/_ogre_.pyd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/renderer/OGRE/_ogre_exceptions_.py =================================================================== --- trunk/lib/ogre/renderer/OGRE/_ogre_exceptions_.py (rev 0) +++ trunk/lib/ogre/renderer/OGRE/_ogre_exceptions_.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1,110 @@ +import _ogre_ + +class OgreException(Exception): + def __init__( self, app_error ): + Exception.__init__( self ) + self._pimpl = app_error + + def __str__( self ): + return self._pimpl.getFullDescription() + + def __getattribute__(self, attr): + my_pimpl = super(OgreException, self).__getattribute__("_pimpl") + try: + return getattr(my_pimpl, attr) + except AttributeError: + return super(OgreException,self).__getattribute__(attr) + +_ogre_.OgreException = OgreException +#this one for backward compatability +_ogre_.Exception = OgreException + +class OgreItemIdentityException(OgreException): + def __init__( self, app_error ): + OgreException.__init__( self, app_error ) + + def __getattribute__(self, attr): + return super(OgreItemIdentityException,self).__getattribute__(attr) + +_ogre_._ItemIdentityException_.py_err_class = OgreItemIdentityException +_ogre_.OgreItemIdentityException = OgreItemIdentityException + +class OgreInternalErrorException(OgreException): + def __init__( self, app_error ): + OgreException.__init__( self, app_error ) + + def __getattribute__(self, attr): + return super(OgreInternalErrorException,self).__getattribute__(attr) + +_ogre_._InternalErrorException_.py_err_class = OgreInternalErrorException +_ogre_.OgreInternalErrorException = OgreInternalErrorException + +class OgreRenderingAPIException(OgreException): + def __init__( self, app_error ): + OgreException.__init__( self, app_error ) + + def __getattribute__(self, attr): + return super(OgreRenderingAPIException,self).__getattribute__(attr) + +_ogre_._RenderingAPIException_.py_err_class = OgreRenderingAPIException +_ogre_.OgreRenderingAPIException = OgreRenderingAPIException + +class OgreRuntimeAssertionException(OgreException): + def __init__( self, app_error ): + OgreException.__init__( self, app_error ) + + def __getattribute__(self, attr): + return super(OgreRuntimeAssertionException,self).__getattribute__(attr) + +_ogre_._RuntimeAssertionException_.py_err_class = OgreRuntimeAssertionException +_ogre_.OgreRuntimeAssertionException = OgreRuntimeAssertionException + +class OgreInvalidParametersException(OgreException): + def __init__( self, app_error ): + OgreException.__init__( self, app_error ) + + def __getattribute__(self, attr): + return super(OgreInvalidParametersException,self).__getattribute__(attr) + +_ogre_._InvalidParametersException_.py_err_class = OgreInvalidParametersException +_ogre_.OgreInvalidParametersException = OgreInvalidParametersException + +class OgreInvalidStateException(OgreException): + def __init__( self, app_error ): + OgreException.__init__( self, app_error ) + + def __getattribute__(self, attr): + return super(OgreInvalidStateException,self).__getattribute__(attr) + +_ogre_._InvalidStateException_.py_err_class = OgreInvalidStateException +_ogre_.OgreInvalidStateException = OgreInvalidStateException + +class OgreIOException(OgreException): + def __init__( self, app_error ): + OgreException.__init__( self, app_error ) + + def __getattribute__(self, attr): + return super(OgreIOException,self).__getattribute__(attr) + +_ogre_._IOException_.py_err_class = OgreIOException +_ogre_.OgreIOException = OgreIOException + +class OgreFileNotFoundException(OgreException): + def __init__( self, app_error ): + OgreException.__init__( self, app_error ) + + def __getattribute__(self, attr): + return super(OgreFileNotFoundException,self).__getattribute__(attr) + +_ogre_._FileNotFoundException_.py_err_class = OgreFileNotFoundException +_ogre_.OgreFileNotFoundException = OgreFileNotFoundException + +class OgreUnimplementedException(OgreException): + def __init__( self, app_error ): + OgreException.__init__( self, app_error ) + + def __getattribute__(self, attr): + return super(OgreUnimplementedException,self).__getattribute__(attr) + +_ogre_._UnimplementedException_.py_err_class = OgreUnimplementedException +_ogre_.OgreUnimplementedException = OgreUnimplementedException \ No newline at end of file Added: trunk/lib/ogre/renderer/OGRE/boost_python-vc71-mt-1_35.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/renderer/OGRE/boost_python-vc71-mt-1_35.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/renderer/OGRE/cg.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/renderer/OGRE/cg.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/renderer/OGRE/named_tuple.py =================================================================== --- trunk/lib/ogre/renderer/OGRE/named_tuple.py (rev 0) +++ trunk/lib/ogre/renderer/OGRE/named_tuple.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1,46 @@ +# This file has been generated by Py++. + +# Copyright 2004 Roman Yakovenko. +# Distributed under the Boost Software License, Version 1.0. (See +# accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +class named_tuple(tuple): + """Creates tuple, which allows access to stored values by name and\or by index. + + Construction example: named_tuple( ('a',0), ('b',1) ) + 'a' and 'b' are names, while 0 and 1 are values + """ + + def __new__(cls, *args): + return tuple.__new__( cls, [ val for name, val in args] ) + + def __init__(self, *args): + tuple.__init__( self ) + self.__dict__[ '__name2value' ] = dict( args ) + + def __getattr__(self, name): + try: + return self.__dict__['__name2value'][ name ] + except KeyError: + raise AttributeError( "named_tuple has no attribute '%s'" % name ) + + def __setattr__(self, name, value): + raise AttributeError( "named_tuple has no attribute '%s'" % name ) + + def __getitem__( self, key ): + #TODO: it could be nice to support slicing. So the __getitem__ in case of + #slicing will return new named_tuple. + if isinstance( key, basestring ): + return self.__dict__['__name2value'][ key ] + else: + return super( named_tuple, self ).__getitem__( key ) + +if __name__ == '__main__': + nt = named_tuple( ('a',0), ('b',1) ) + assert nt.a == 0 and nt.b == 1 + a,b = nt + assert a == 0 and b == 1 + assert nt[ "a" ] == 0 and nt[ "b" ] == 1 + + Added: trunk/lib/ogre/renderer/OGRE/sf_OIS.py =================================================================== --- trunk/lib/ogre/renderer/OGRE/sf_OIS.py (rev 0) +++ trunk/lib/ogre/renderer/OGRE/sf_OIS.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1,448 @@ +# This code is in the Public Domain +# ----------------------------------------------------------------------------- +# This source file is part of Python-Ogre +# For the latest info, see http://python-ogre.org/ +# +# It is likely based on original code from OGRE and/or PyOgre +# For the latest info, see http://www.ogre3d.org/ +# +# You may use this sample code for anything you like, it is not covered by the +# LGPL. +# ----------------------------------------------------------------------------- +import ogre.renderer.OGRE as ogre +import ogre.io.OIS as OIS +###import OgreRefApp + +def getPluginPath(): + """Return the absolute path to a valid plugins.cfg file.""" + import sys + import os + import os.path + + paths = [os.path.join(os.getcwd(), 'plugins.cfg'), + '/etc/OGRE/plugins.cfg', + os.path.join(os.path.dirname(os.path.abspath(__file__)), + 'plugins.cfg')] + for path in paths: + if os.path.exists(path): + return path + + sys.stderr.write("\n" + "** Warning: Unable to locate a suitable plugins.cfg file.\n" + "** Warning: Please check your ogre installation and copy a\n" + "** Warning: working plugins.cfg file to the current directory.\n\n") + raise ogre.Exception(0, "can't locate the 'plugins.cfg' file", "") + +class Application(object): + "This class is the base for an Ogre application." + debugText="" + + def __init__(self): + self.frameListener = None + self.root = None + self.camera = None + self.renderWindow = None + self.sceneManager = None + self.world = None + + def __del__(self): + "Clear variables, this should not actually be needed." + del self.camera + del self.sceneManager + del self.frameListener + if self.world: + del self.world + del self.root + del self.renderWindow + + def go(self): + "Starts the rendering loop." + if not self._setUp(): + return + if self._isPsycoEnabled(): + self._activatePsyco() + self.root.startRendering() + + + def _setUp(self): + """This sets up the ogre application, and returns false if the user + hits "cancel" in the dialog box.""" + self.root = ogre.Root(getPluginPath()) + self.root.setFrameSmoothingPeriod (5.0) + + self._setUpResources() + if not self._configure(): + return False + + self._chooseSceneManager() + self._createWorld() + self._createCamera() + self._createViewports() + + ogre.TextureManager.getSingleton().setDefaultNumMipmaps (5) + + self._createResourceListener() + self._loadResources() + + self._createScene() + self._createFrameListener() + return True + + def _setUpResources(self): + """This sets up Ogre's resources, which are required to be in + resources.cfg.""" + config = ogre.ConfigFile() + config.load('resources.cfg' ) + seci = config.getSectionIterator() + while seci.hasMoreElements(): + SectionName = seci.peekNextKey() + Section = seci.getNext() + for item in Section: + ogre.ResourceGroupManager.getSingleton().\ + addResourceLocation(item.value, item.key, SectionName) + + def _createResourceListener(self): + """This method is here if you want to add a resource listener to check + the status of resources loading.""" + pass + + def _createWorld ( self ): + """ this should be overridden when supporting the OgreRefApp framework. Also note you + will have to override __createCamera""" + pass + + def _loadResources(self): + """This loads all initial resources. Redefine this if you do not want + to load all resources at startup.""" + ogre.ResourceGroupManager.getSingleton().initialiseAllResourceGroups() + + def _configure(self): + """This shows the config dialog and creates the renderWindow.""" + carryOn = self.root.showConfigDialog() + if carryOn: + self.renderWindow = self.root.initialise(True, "OGRE Render Window") + return carryOn + + def _chooseSceneManager(self): + """Chooses a default SceneManager.""" + #typedef uint16 SceneTypeMask; + #md=ogre.SceneManagerMetaData() + #md.sceneTypeMask=ogre.ST_GENERIC + #print dir(self.root) + self.sceneManager = self.root.createSceneManager(ogre.ST_GENERIC,"ExampleSMInstance") + + def _createCamera(self): + """Creates the camera.""" + self.camera = self.sceneManager.createCamera('PlayerCam') + self.camera.setPosition(ogre.Vector3(0, 0, 500)) + self.camera.lookAt(ogre.Vector3(0, 0, -300)) + self.camera.NearClipDistance = 5 + + def _createViewports(self): + """Creates the Viewport.""" + ## We want a single sampleframework so this work around is to support OgreRefApp Framework + ## if using the RefApp camera is based upon World etc etc + try: + self.viewport = self.renderWindow.addViewport(self.camera.getRealCamera()) + except AttributeError: + self.viewport = self.renderWindow.addViewport(self.camera) + self.viewport.BackgroundColour = ogre.ColourValue(0,0,0) + + def _createScene(self): + """Creates the scene. Override this with initial scene contents.""" + pass + + def _createFrameListener(self): + """Creates the FrameListener.""" + #,self.frameListener, self.frameListener.Mouse + self.frameListener = FrameListener(self.renderWindow, self.camera) + self.frameListener.showDebugOverlay(True) + self.root.addFrameListener(self.frameListener) + + def _isPsycoEnabled(self): + """Override this function and return True to turn on Psyco""" + return False + + def _activatePsyco(self): + """Import Psyco if available""" + try: + import psyco + psyco.full() + except ImportError: + pass + + +class FrameListener(ogre.FrameListener, ogre.WindowEventListener): + """A default frame listener, which takes care of basic mouse and keyboard + input.""" + + def __init__(self, renderWindow, camera, bufferedKeys = False, bufferedMouse = True, bufferedJoy = False): + ogre.FrameListener.__init__(self) + ogre.WindowEventListener.__init__(self) + self.camera = camera + self.renderWindow = renderWindow + self.statisticsOn = True + self.numScreenShots = 0 + self.timeUntilNextToggle = 0 + self.sceneDetailIndex = 0 + self.moveScale = 0.0 + self.rotationScale = 0.0 + self.translateVector = ogre.Vector3(0.0,0.0,0.0) + self.filtering = ogre.TFO_BILINEAR + self.showDebugOverlay(True) + self.moveSpeed = 100.0 + self.rotationSpeed = 8.0 + self.displayCameraDetails = False + self.bufferedKeys = bufferedKeys + self.bufferedMouse = bufferedMouse + self.bufferedJoy = bufferedJoy + self.MenuMode = False # lets understand a simple menu function + ## we can tell if we are using OgreRefapp based upon the camera class + + if self.camera.__class__ == ogre.Camera: + self.RefAppEnable = False + else: + self.RefAppEnable = True + self._setupInput() + + def __del__ (self ): + ogre.WindowEventUtilities.removeWindowEventListener(self.renderWindow, self) + self.windowClosed(self.renderWindow) + + def _setupInput(self): + # ignore buffered input + + windowHnd = self.renderWindow.getCustomAttributeInt("WINDOW") + self.InputManager = \ + OIS.createPythonInputSystem([("WINDOW",str(windowHnd))]) + + #pl = OIS.ParamList() + #windowHndStr = str ( windowHnd) + #pl.insert("WINDOW", windowHndStr) + #im = OIS.InputManager.createInputSystem( pl ) + + #Create all devices (We only catch joystick exceptions here, as, most people have Key/Mouse) + self.Keyboard = self.InputManager.createInputObjectKeyboard( OIS.OISKeyboard, self.bufferedKeys ) + self.Mouse = self.InputManager.createInputObjectMouse( OIS.OISMouse, self.bufferedMouse ) + try : + self.Joy = self.InputManager.createInputObjectJoyStick( OIS.OISJoyStick, bufferedJoy ) + except: + self.Joy = False + + #Set initial mouse clipping size + self.windowResized(self.renderWindow) + + self.showDebugOverlay(True) + + #Register as a Window listener + ogre.WindowEventUtilities.addWindowEventListener(self.renderWindow, self); + + def setMenuMode(self, mode): + self.MenuMode = mode + + def _UpdateSimulation( self, frameEvent ): + # create a real version of this to update the simulation + pass + + def windowResized (self, rw): + [width, height, depth, left, top] = rw.getMetrics() # Note the wrapped function as default needs unsigned int's + ms = self.Mouse.getMouseState() + ms.width = width + ms.height = height + + def windowClosed(self, rw): + #Only close for window that created OIS (mWindow) + if( rw == self.renderWindow ): + if( self.InputManager ): + self.InputManager.destroyInputObjectMouse( self.Mouse ) + self.InputManager.destroyInputObjectKeyboard( self.Keyboard ) + if self.Joy: + self.InputManager.destroyInputObjectJoyStick( self.Joy ) + OIS.InputManager.destroyInputSystem(self.InputManager) + self.InputManager=None + + def frameStarted(self, frameEvent): + if(self.renderWindow.isClosed()): + return False + + ##Need to capture/update each device - this will also trigger any listeners + self.Keyboard.capture() + self.Mouse.capture() + if( self.Joy ): + self.Joy.capture() + + ##bool buffJ = (mJoy) ? mJoy->buffered() : true; + + if self.timeUntilNextToggle >= 0: + self.timeUntilNextToggle -= frameEvent.timeSinceLastFrame + + if frameEvent.timeSinceLastFrame == 0: + self.moveScale = 1 + self.rotationScale = 0.1 + else: + self.moveScale = self.moveSpeed * frameEvent.timeSinceLastFrame + self.rotationScale = self.rotationSpeed * frameEvent.timeSinceLastFrame + + self.rotationX = ogre.Degree(0.0) + self.rotationY = ogre.Degree(0.0) + self.translateVector = ogre.Vector3(0.0, 0.0, 0.0) + if not self._processUnbufferedKeyInput(frameEvent): + return False + + if not self.MenuMode: # if we are in Menu mode we don't move the camera.. + self._processUnbufferedMouseInput(frameEvent) + + self._moveCamera() + # Perform simulation step only if using OgreRefApp. For simplicity create a function that simply does + ### "OgreRefApp.World.getSingleton().simulationStep(frameEvent.timeSinceLastFrame)" + + if self.RefAppEnable: + self._UpdateSimulation( frameEvent ) + return True + + def frameEnded(self, frameEvent): + self._updateStatistics() + return True + + def showDebugOverlay(self, show): + """Turns the debug overlay (frame statistics) on or off.""" + overlay = ogre.OverlayManager.getSingleton().getByName('Core/DebugOverlay') + if overlay is None: + raise ogre.Exception(111, "Could not find overlay Core/DebugOverlay", "SampleFramework.py") + if show: + overlay.show() + else: + overlay.hide() + + def _processUnbufferedKeyInput(self, frameEvent): + if self.Keyboard.isKeyDown(OIS.KC_A): + self.translateVector.x = -self.moveScale + + if self.Keyboard.isKeyDown(OIS.KC_D): + self.translateVector.x = self.moveScale + + if self.Keyboard.isKeyDown(OIS.KC_UP) or self.Keyboard.isKeyDown(OIS.KC_W): + self.translateVector.z = -self.moveScale + + if self.Keyboard.isKeyDown(OIS.KC_DOWN) or self.Keyboard.isKeyDown(OIS.KC_S): + self.translateVector.z = self.moveScale + + if self.Keyboard.isKeyDown(OIS.KC_PGUP): + self.translateVector.y = self.moveScale + + if self.Keyboard.isKeyDown(OIS.KC_PGDOWN): + self.translateVector.y = - self.moveScale + + if self.Keyboard.isKeyDown(OIS.KC_RIGHT): + self.rotationX = - self.rotationScale + + if self.Keyboard.isKeyDown(OIS.KC_LEFT): + self.rotationX = self.rotationScale + + if self.Keyboard.isKeyDown(OIS.KC_ESCAPE) or self.Keyboard.isKeyDown(OIS.KC_Q): + return False + + if( self.Keyboard.isKeyDown(OIS.KC_F) and self.timeUntilNextToggle <= 0 ): + self.statisticsOn = not self.statisticsOn + self.showDebugOverlay(self.statisticsOn) + self.timeUntilNextToggle = 1 + + if self.Keyboard.isKeyDown(OIS.KC_T) and self.timeUntilNextToggle <= 0: + if self.filtering == ogre.TFO_BILINEAR: + self.filtering = ogre.TFO_TRILINEAR + self.Aniso = 1 + elif self.filtering == ogre.TFO_TRILINEAR: + self.filtering = ogre.TFO_ANISOTROPIC + self.Aniso = 8 + else: + self.filtering = ogre.TFO_BILINEAR + self.Aniso = 1 + + ogre.MaterialManager.getSingleton().setDefaultTextureFiltering(self.filtering) + ogre.MaterialManager.getSingleton().setDefaultAnisotropy(self.Aniso) + self.showDebugOverlay(self.statisticsOn) + self.timeUntilNextToggle = 1 + + if self.Keyboard.isKeyDown(OIS.KC_SYSRQ) and self.timeUntilNextToggle <= 0: + path = 'screenshot_%d.png' % self.numScreenShots + self.numScreenShots += 1 + self.renderWindow.writeContentsToFile(path) + Application.debugText = 'screenshot taken: ' + path + self.timeUntilNextToggle = 0.5 + + if self.Keyboard.isKeyDown(OIS.KC_R) and self.timeUntilNextToggle <= 0: + detailsLevel = [ ogre.PM_SOLID, + ogre.PM_WIREFRAME, + ogre.PM_POINTS ] + self.sceneDetailIndex = (self.sceneDetailIndex + 1) % len(detailsLevel) + self.camera.polygonMode=detailsLevel[self.sceneDetailIndex] + self.timeUntilNextToggle = 0.5 + + if self.Keyboard.isKeyDown(OIS.KC_F) and self.timeUntilNextToggle <= 0: + self.statisticsOn = not self.statisticsOn + self.showDebugOverlay(self.statisticsOn) + self.timeUntilNextToggle = 1 + + if self.Keyboard.isKeyDown(OIS.KC_P) and self.timeUntilNextToggle <= 0: + self.displayCameraDetails = not self.displayCameraDetails + if not self.displayCameraDetails: + Application.debugText = "" + + if self.displayCameraDetails: + # Print camera details + pos = self.camera.getDerivedPosition() + o = self.camera.getDerivedOrientation() + Application.debugText = "P: %.3f %.3f %.3f O: %.3f %.3f %.3f %.3f" \ + % (pos.x,pos.y,pos.z, o.w,o.x,o.y,o.z) + return True + + def _isToggleKeyDown(self, keyCode, toggleTime = 1.0): + if self.Keyboard.isKeyDown(keyCode)and self.timeUntilNextToggle <=0: + self.timeUntilNextToggle = toggleTime + return True + return False + + def _isToggleMouseDown(self, Button, toggleTime = 1.0): + ms = self.Mouse.getMouseState() + if ms.buttonDown( Button ) and self.timeUntilNextToggle <=0: + self.timeUntilNextToggle = toggleTime + return True + return False + + def _processUnbufferedMouseInput(self, frameEvent): + ms = self.Mouse.getMouseState() + if ms.buttonDown( OIS.MB_Right ): + self.translateVector.x += ms.X.rel * 0.13 + self.translateVector.y -= ms.Y.rel * 0.13 + else: + self.rotationX = ogre.Degree(- ms.X.rel * 0.13) + self.rotationY = ogre.Degree(- ms.Y.rel * 0.13) + + def _moveCamera(self): + self.camera.yaw(self.rotationX) + self.camera.pitch(self.rotationY) + try: + self.camera.translate(self.translateVector) # for using OgreRefApp + except AttributeError: + self.camera.moveRelative(self.translateVector) + + def _updateStatistics(self): + statistics = self.renderWindow + self._setGuiCaption('Core/AverageFps', 'Average FPS: %f' % statistics.getAverageFPS()) + self._setGuiCaption('Core/CurrFps', 'Current FPS: %f' % statistics.getLastFPS()) + self._setGuiCaption('Core/BestFps', + 'Best FPS: %f %d ms' % (statistics.getBestFPS(), statistics.getBestFrameTime())) + self._setGuiCaption('Core/WorstFps', + 'Worst FPS: %f %d ms' % (statistics.getWorstFPS(), statistics.getWorstFrameTime())) + self._setGuiCaption('Core/NumTris', 'Triangle Count: %d' % statistics.getTriangleCount()) + self._setGuiCaption('Core/DebugText', Application.debugText) + + def _setGuiCaption(self, elementName, text): + element = ogre.OverlayManager.getSingleton().getOverlayElement(elementName, False) + ##d=ogre.UTFString("hell0") + ##element.setCaption(d) + + #element.caption="hello" + + #element.setCaption("help") + element.setCaption(ogre.UTFString(text)) Added: trunk/lib/ogre/renderer/OGRE/sf_utils.py =================================================================== --- trunk/lib/ogre/renderer/OGRE/sf_utils.py (rev 0) +++ trunk/lib/ogre/renderer/OGRE/sf_utils.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1,21 @@ +## Common utilities for the sample framework... +## +def getPluginPath(): + """Return the absolute path to a valid plugins.cfg file.""" + import sys + import os + import os.path + + paths = [os.path.join(os.getcwd(), 'plugins.cfg'), + '/etc/OGRE/plugins.cfg', + os.path.join(os.path.dirname(os.path.abspath(__file__)), + 'plugins.cfg')] + for path in paths: + if os.path.exists(path): + return path + + sys.stderr.write("\n" + "** Warning: Unable to locate a suitable plugins.cfg file.\n" + "** Warning: Please check your ogre installation and copy a\n" + "** Warning: working plugins.cfg file to the current directory.\n\n") + raise ogre.Exception(0, "can't locate the 'plugins.cfg' file", "") Added: trunk/lib/ogre/renderer/__init__.py =================================================================== --- trunk/lib/ogre/renderer/__init__.py (rev 0) +++ trunk/lib/ogre/renderer/__init__.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1 @@ +#keep me \ No newline at end of file Added: trunk/lib/ogre/sound/OgreAL/OgreAL.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/sound/OgreAL/OgreAL.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/sound/OgreAL/OpenAL32.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/sound/OgreAL/OpenAL32.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/sound/OgreAL/__init__.py =================================================================== --- trunk/lib/ogre/sound/OgreAL/__init__.py (rev 0) +++ trunk/lib/ogre/sound/OgreAL/__init__.py 2007-06-22 22:12:29 UTC (rev 8) @@ -0,0 +1,6 @@ +import sys, os + +if sys.platform == 'win32': + os.environ['PATH'] += ';' + __path__[0] + +from _ogreal_ import * \ No newline at end of file Added: trunk/lib/ogre/sound/OgreAL/_ogreal_.pyd =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/sound/OgreAL/_ogreal_.pyd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/sound/OgreAL/alut.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/sound/OgreAL/alut.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/sound/OgreAL/ogg.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/sound/OgreAL/ogg.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/sound/OgreAL/vorbis.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/sound/OgreAL/vorbis.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/ogre/sound/OgreAL/vorbisfile.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/ogre/sound/OgreAL/vorbisfile.dll _____________________________________________... [truncated message content] |
From: <ror...@us...> - 2007-06-22 22:06:59
|
Revision: 7 http://roreditor.svn.sourceforge.net/roreditor/?rev=7&view=rev Author: rorthomas Date: 2007-06-22 14:56:35 -0700 (Fri, 22 Jun 2007) Log Message: ----------- deleted old stuff Removed Paths: ------------- trunk/rorextmanager/ trunk/wxtest3/ trunk/wxtest4/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-02-14 00:33:50
|
Revision: 6 http://roreditor.svn.sourceforge.net/roreditor/?rev=6&view=rev Author: rorthomas Date: 2007-02-13 16:33:47 -0800 (Tue, 13 Feb 2007) Log Message: ----------- added extensionmanager test Added Paths: ----------- trunk/rorextmanager/ trunk/rorextmanager/Sconstruct trunk/rorextmanager/cacert.pem trunk/rorextmanager/cacertcl3.crt trunk/rorextmanager/rormanager.c trunk/rorextmanager/test.sh Added: trunk/rorextmanager/Sconstruct =================================================================== --- trunk/rorextmanager/Sconstruct (rev 0) +++ trunk/rorextmanager/Sconstruct 2007-02-14 00:33:47 UTC (rev 6) @@ -0,0 +1,19 @@ +import glob, os +env = Environment() + +#libxml +env.ParseConfig('xml2-config --cflags --libs') + +#curl +env.ParseConfig('curl-config --cflags --libs') + +srclst = ['rormanager.c'] + +myCPPFlags = ['-g', '-Wall'] + +env.Program( + target='rormanager', + source=srclst, + LIBPATH=env['LIBPATH']+['.'], + CPPFLAGS=env['CPPFLAGS']+myCPPFlags, +) Added: trunk/rorextmanager/cacert.pem =================================================================== --- trunk/rorextmanager/cacert.pem (rev 0) +++ trunk/rorextmanager/cacert.pem 2007-02-14 00:33:47 UTC (rev 6) @@ -0,0 +1,41 @@ +-----BEGIN CERTIFICATE----- +MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290 +IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB +IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA +Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO +BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi +MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ +ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC +CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ +8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6 +zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y +fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7 +w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc +G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k +epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q +laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ +QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU +fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826 +YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w +ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY +gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe +MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0 +IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy +dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw +czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0 +dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl +aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC +AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg +b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB +ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc +nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg +18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c +gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl +Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY +sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T +SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF +CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum +GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk +zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW +omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD +-----END CERTIFICATE----- Added: trunk/rorextmanager/cacertcl3.crt =================================================================== --- trunk/rorextmanager/cacertcl3.crt (rev 0) +++ trunk/rorextmanager/cacertcl3.crt 2007-02-14 00:33:47 UTC (rev 6) @@ -0,0 +1,35 @@ +-----BEGIN CERTIFICATE----- +MIIGCDCCA/CgAwIBAgIBATANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290 +IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB +IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA +Y2FjZXJ0Lm9yZzAeFw0wNTEwMTQwNzM2NTVaFw0zMzAzMjgwNzM2NTVaMFQxFDAS +BgNVBAoTC0NBY2VydCBJbmMuMR4wHAYDVQQLExVodHRwOi8vd3d3LkNBY2VydC5v +cmcxHDAaBgNVBAMTE0NBY2VydCBDbGFzcyAzIFJvb3QwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCrSTURSHzSJn5TlM9Dqd0o10Iqi/OHeBlYfA+e2ol9 +4fvrcpANdKGWZKufoCSZc9riVXbHF3v1BKxGuMO+f2SNEGwk82GcwPKQ+lHm9WkB +Y8MPVuJKQs/iRIwlKKjFeQl9RrmK8+nzNCkIReQcn8uUBByBqBSzmGXEQ+xOgo0J +0b2qW42S0OzekMV/CsLj6+YxWl50PpczWejDAz1gM7/30W9HxM3uYoNSbi4ImqTZ +FRiRpoWSR7CuSOtttyHshRpocjWr//AQXcD0lKdq1TuSfkyQBX6TwSyLpI5idBVx +bgtxA+qvFTia1NIFcm+M+SvrWnIl+TlG43IbPgTDZCciECqKT1inA62+tC4T7V2q +SNfVfdQqe1z6RgRQ5MwOQluM7dvyz/yWk+DbETZUYjQ4jwxgmzuXVjit89Jbi6Bb +6k6WuHzX1aCGcEDTkSm3ojyt9Yy7zxqSiuQ0e8DYbF/pCsLDpyCaWt8sXVJcukfV +m+8kKHA4IC/VfynAskEDaJLM4JzMl0tF7zoQCqtwOpiVcK01seqFK6QcgCExqa5g +eoAmSAC4AcCTY1UikTxW56/bOiXzjzFU6iaLgVn5odFTEcV7nQP2dBHgbbEsPyyG +kZlxmqZ3izRg0RS0LKydr4wQ05/EavhvE/xzWfdmQnQeiuP43NJvmJzLR5iVQAX7 +6QIDAQABo4G/MIG8MA8GA1UdEwEB/wQFMAMBAf8wXQYIKwYBBQUHAQEEUTBPMCMG +CCsGAQUFBzABhhdodHRwOi8vb2NzcC5DQWNlcnQub3JnLzAoBggrBgEFBQcwAoYc +aHR0cDovL3d3dy5DQWNlcnQub3JnL2NhLmNydDBKBgNVHSAEQzBBMD8GCCsGAQQB +gZBKMDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93d3cuQ0FjZXJ0Lm9yZy9pbmRleC5w +aHA/aWQ9MTAwDQYJKoZIhvcNAQEEBQADggIBAH8IiKHaGlBJ2on7oQhy84r3HsQ6 +tHlbIDCxRd7CXdNlafHCXVRUPIVfuXtCkcKZ/RtRm6tGpaEQU55tiKxzbiwzpvD0 +nuB1wT6IRanhZkP+VlrRekF490DaSjrxC1uluxYG5sLnk7mFTZdPsR44Q4Dvmw2M +77inYACHV30eRBzLI++bPJmdr7UpHEV5FpZNJ23xHGzDwlVks7wU4vOkHx4y/CcV +Bc/dLq4+gmF78CEQGPZE6lM5+dzQmiDgxrvgu1pPxJnIB721vaLbLmINQjRBvP+L +ivVRIqqIMADisNS8vmW61QNXeZvo3MhN+FDtkaVSKKKs+zZYPumUK5FQhxvWXtaM +zPcPEAxSTtAWYeXlCmy/F8dyRlecmPVsYGN6b165Ti/Iubm7aoW8mA3t+T6XhDSU +rgCvoeXnkm5OvfPi2RSLXNLrAWygF6UtEOucekq9ve7O/e0iQKtwOIj1CodqwqsF +YMlIBdpTwd5Ed2qz8zw87YC8pjhKKSRf/lk7myV6VmMAZLldpGJ9VzZPrYPvH5JT +oI53V93lYRE9IwCQTDz6o2CTBKOvNfYOao9PSmCnhQVsRqGP9Md246FZV/dxssRu +FFxtbUFm3xuTsdQAw+7Lzzw9IYCpX2Nl/N3gX6T0K/CFcUHUZyX7GrGXrtaZghNB +0m6lG5kngOcLqagA +-----END CERTIFICATE----- Added: trunk/rorextmanager/rormanager.c =================================================================== --- trunk/rorextmanager/rormanager.c (rev 0) +++ trunk/rorextmanager/rormanager.c 2007-02-14 00:33:47 UTC (rev 6) @@ -0,0 +1,188 @@ +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <string.h> + +#include <curl/curl.h> +#include <curl/types.h> +#include <curl/easy.h> + +#include <libxml/xmlmemory.h> +#include <libxml/parser.h> + +char *repourl = "https://repository.rigsofrods.com/getexinfo.php?id="; + +int getinfo(char *idstr); +int parseDoc(char *docname); +void parseExtInfo (xmlDocPtr doc, xmlNodePtr cur); + +struct rorextension { + char *id; + char *author; + char *description; + size_t filesize; + size_t depcount; + char *dependencies[200]; +}; + +struct rorextension ext[50]; +size_t extcounter = 0; + +size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream) +{ + int written = fwrite(ptr, size, nmemb, (FILE *)stream); + return written; +} + +void parseExtDepInfo (xmlDocPtr doc, xmlNodePtr cur, struct rorextension *r) +{ + r->depcount = 0; + xmlChar *val; + cur = cur->xmlChildrenNode; + while (cur != NULL) { + val = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); + if ((!xmlStrcmp(cur->name, (const xmlChar *)"dependson"))) { + char *tstr = (char*)malloc(strlen((char *)val)); + strncpy(tstr, (char *)val, strlen((char *)val)); + r->dependencies[r->depcount] = tstr; + r->depcount++; + } + xmlFree(val); + cur = cur->next; + } + return; +} + +void parseExtInfo (xmlDocPtr doc, xmlNodePtr cur) +{ + xmlChar *val; + cur = cur->xmlChildrenNode; + struct rorextension r; + int i = 0; + + while (cur != NULL) { + val = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); + if ((!xmlStrcmp(cur->name, (const xmlChar *)"id"))) { + r.id = (char*)malloc(strlen((char *)val)); + strncpy(r.id, (char *)val, strlen((char *)val)); + } else if ((!xmlStrcmp(cur->name, (const xmlChar *)"author"))) { + r.author = (char*)malloc(strlen((char *)val)); + strncpy(r.author, (char *)val, strlen((char *)val)); + } else if ((!xmlStrcmp(cur->name, (const xmlChar *)"description"))) { + r.description = (char*)malloc(strlen((char *)val)); + strncpy(r.description, (char *)val, strlen((char *)val)); + } else if ((!xmlStrcmp(cur->name, (const xmlChar *)"filesize"))) { + char *tmp = (char*)malloc(strlen((char *)val)); + strncpy(tmp, (char *)val, strlen((char *)val)); + + r.filesize = (size_t)strtol(tmp, NULL, 10); + } else if ((!xmlStrcmp(cur->name, (const xmlChar *)"dependencies"))) { + parseExtDepInfo(doc, cur, &r); + } + xmlFree(val); + cur = cur->next; + } + printf("== extension %s ==\n", r.id); + printf("author: %s\n", r.author); + printf("description: %s\n", r.description); + printf("filesize: %d\n", r.filesize); + printf("dependencies-count: %d\n", r.depcount); + if (r.depcount>0) { + for (i=0;i<r.depcount;i++) { + printf(" depends on: %s\n", r.dependencies[i]); + getinfo(r.dependencies[i]); + } + } + ext[extcounter++] = r; + return; +} + +int parseDoc(char *docname) +{ + xmlDocPtr doc; + xmlNodePtr cur; + + doc = xmlParseFile(docname); + + if (doc == NULL ) { + fprintf(stderr,"Document not parsed successfully. \n"); + return -1; + } + + cur = xmlDocGetRootElement(doc); + + if (cur == NULL) { + fprintf(stderr,"empty document\n"); + xmlFreeDoc(doc); + return -1; + } + + if (xmlStrcmp(cur->name, (const xmlChar *) "rorextension")) { + fprintf(stderr,"document of the wrong type, root node != rorextension"); + xmlFreeDoc(doc); + return -1; + } + + parseExtInfo (doc, cur); + + xmlFreeDoc(doc); + return 0; +} + + +int getinfo(char *idstr) +{ + CURL *curl; + CURLcode res; + FILE *outfile; + char *tmpfile = "tempout.xml"; + char *url = (char*)malloc(255); + strncpy(url, repourl, strlen(repourl)); + strncat(url, idstr, strlen(idstr)); + + printf(" trying to resolve dependency %s\n", idstr); + printf(">>%s\n", url); + curl = curl_easy_init(); + if(curl) { + curl_easy_setopt(curl, CURLOPT_URL, url); + + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0); + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0); + //curl_easy_setopt(curl, CURLOPT_CAPATH, ""); + //curl_easy_setopt(curl, CURLOPT_CAINFO, "cacert.crt"); + + curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); + outfile = fopen(tmpfile,"w"); + if (outfile == NULL) { + curl_easy_cleanup(curl); + return -1; + } + curl_easy_setopt(curl, CURLOPT_WRITEDATA , outfile); + res = curl_easy_perform(curl); + + /* always cleanup */ + curl_easy_cleanup(curl); + + fclose(outfile); + + parseDoc(tmpfile); + } + return 0; +} + +int main(int argc, char *argv[]) +{ + if(argc != 2) { + printf("usage: %s <extensionid 1234-1234-1234-1234-5678>\n", argv[0]); + return -1; + } + + getinfo(argv[1]); + return 0; +} + + + + + Property changes on: trunk/rorextmanager/rormanager.c ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Added: trunk/rorextmanager/test.sh =================================================================== --- trunk/rorextmanager/test.sh (rev 0) +++ trunk/rorextmanager/test.sh 2007-02-14 00:33:47 UTC (rev 6) @@ -0,0 +1,2 @@ +#!/bin/sh +./rormanager 1234-0000-0000-0000-0000 Property changes on: trunk/rorextmanager/test.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-02-13 10:48:34
|
Revision: 5 http://roreditor.svn.sourceforge.net/roreditor/?rev=5&view=rev Author: rorthomas Date: 2007-02-13 02:48:29 -0800 (Tue, 13 Feb 2007) Log Message: ----------- setTooltip results in segfault over here, commented it out. small format fixes and re-added Sconstruct for non-eclipse users Modified Paths: -------------- trunk/wxtest4/MainFrame.h trunk/wxtest4/myApp.cpp trunk/wxtest4/myGLWindow.hh Added Paths: ----------- trunk/wxtest4/Sconstruct trunk/wxtest4/gpl.txt Modified: trunk/wxtest4/MainFrame.h =================================================================== --- trunk/wxtest4/MainFrame.h 2007-02-13 06:49:20 UTC (rev 4) +++ trunk/wxtest4/MainFrame.h 2007-02-13 10:48:29 UTC (rev 5) @@ -2,10 +2,10 @@ #define MAINFRAME_H_ // For compilers that don't support precompilation, include "wx/wx.h" - #include "wx/wxprec.h" - #ifndef WX_PRECOMP - #include "wx/wx.h" - #endif +#include "wx/wxprec.h" +#ifndef WX_PRECOMP +#include "wx/wx.h" +#endif class MainFrame : public wxFrame { public: Added: trunk/wxtest4/Sconstruct =================================================================== --- trunk/wxtest4/Sconstruct (rev 0) +++ trunk/wxtest4/Sconstruct 2007-02-13 10:48:29 UTC (rev 5) @@ -0,0 +1,15 @@ +import glob, os +env = Environment() + +env.ParseConfig('wx-config --cppflags --libs --gl-libs') + +srclst = ['myApp.cpp', 'myGLWindow.cpp', 'mySpinCtrl.cpp', 'myRenderer.cpp', 'MainFrame.cpp'] + +myCPPFlags = ['-g', '-Wall'] + +env.Program( + target='wxtest', + source=srclst, + LIBPATH=env['LIBPATH']+['.'], + CPPFLAGS=env['CPPFLAGS']+myCPPFlags, +) Added: trunk/wxtest4/gpl.txt =================================================================== --- trunk/wxtest4/gpl.txt (rev 0) +++ trunk/wxtest4/gpl.txt 2007-02-13 10:48:29 UTC (rev 5) @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. Property changes on: trunk/wxtest4/gpl.txt ___________________________________________________________________ Name: svn:eol-style + native Modified: trunk/wxtest4/myApp.cpp =================================================================== --- trunk/wxtest4/myApp.cpp 2007-02-13 06:49:20 UTC (rev 4) +++ trunk/wxtest4/myApp.cpp 2007-02-13 10:48:29 UTC (rev 5) @@ -20,7 +20,7 @@ item0->Add( MyGLCanvas1, 1, wxEXPAND, 0); //MyGLCanvas1->SetCurrent(); MyGLCanvas1->gllist = glGenLists(1); - MyGLCanvas1->SetToolTip(_T("MyGLCanvas1")); + //MyGLCanvas1->SetToolTip(_T("MyGLCanvas1")); glNewList(MyGLCanvas1->gllist, GL_COMPILE); glRotatef(90 ,0.0f, 1.0f, 0.0f); glEndList(); @@ -28,7 +28,7 @@ MyGLCanvas2 = new myGLWindow(frame, -1, wxPoint(-1,-1), wxSize(30,30), wxSUNKEN_BORDER, _("some text")); MyGLCanvas2->setRotation(0,1,0); item0->Add( MyGLCanvas2, 1, wxEXPAND, 0 ); - MyGLCanvas2->SetToolTip(_T("MyGLCanvas2")); + //MyGLCanvas2->SetToolTip(_T("MyGLCanvas2")); //MyGLCanvas2->SetCurrent(); MyGLCanvas2->gllist = glGenLists(1); glNewList(MyGLCanvas2->gllist, GL_COMPILE); @@ -38,13 +38,13 @@ MyGLCanvas3 = new myGLWindow(frame, -1, wxPoint(-1,-1), wxSize(30,30), wxSUNKEN_BORDER, _("some text")); MyGLCanvas3->setRotation(4,0,0); item0->Add( MyGLCanvas3, 1, wxEXPAND, 0 ); - MyGLCanvas4->SetToolTip(_T("MyGLCanvas3")); + //MyGLCanvas4->SetToolTip(_T("MyGLCanvas3")); //MyGLCanvas3->SetCurrent(); MyGLCanvas4 = new myGLWindow(frame, -1, wxPoint(-1,-1), wxSize(30,30), wxSUNKEN_BORDER, _("some text")); MyGLCanvas4->setRotation(0,0,0); item0->Add( MyGLCanvas4, 1, wxEXPAND, 0 ); - MyGLCanvas4->SetToolTip(_T("MyGLCanvas4")); + //MyGLCanvas4->SetToolTip(_T("MyGLCanvas4")); //MyGLCanvas4->SetCurrent(); Modified: trunk/wxtest4/myGLWindow.hh =================================================================== --- trunk/wxtest4/myGLWindow.hh 2007-02-13 06:49:20 UTC (rev 4) +++ trunk/wxtest4/myGLWindow.hh 2007-02-13 10:48:29 UTC (rev 5) @@ -9,7 +9,7 @@ #include "wx/glcanvas.h" #include "wx/notebook.h" #include "GL/gl.h" -//#include "GL/glu.h" +#include "GL/glu.h" #if !wxUSE_GLCANVAS #error "OpenGL required: set wxUSE_GLCANVAS to 1 and rebuild the library" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ap...@us...> - 2007-02-13 06:49:23
|
Revision: 4 http://roreditor.svn.sourceforge.net/roreditor/?rev=4&view=rev Author: aperion Date: 2007-02-12 22:49:20 -0800 (Mon, 12 Feb 2007) Log Message: ----------- submiting initial code for wxtest4 Added Paths: ----------- trunk/wxtest4/ trunk/wxtest4/MainFrame.cpp trunk/wxtest4/MainFrame.h trunk/wxtest4/globals.h trunk/wxtest4/myApp.cpp trunk/wxtest4/myApp.hh trunk/wxtest4/myGLWindow.cpp trunk/wxtest4/myGLWindow.hh trunk/wxtest4/myRenderer.cpp trunk/wxtest4/myRenderer.hh trunk/wxtest4/mySpinCtrl.cpp trunk/wxtest4/mySpinCtrl.hh Added: trunk/wxtest4/MainFrame.cpp =================================================================== --- trunk/wxtest4/MainFrame.cpp (rev 0) +++ trunk/wxtest4/MainFrame.cpp 2007-02-13 06:49:20 UTC (rev 4) @@ -0,0 +1,74 @@ +#include "MainFrame.h" + +MainFrame::MainFrame( + const wxChar *title, + int xpos, + int ypos, + int width, + int height) + : + wxFrame( + (wxFrame *) NULL, + -1, + title, + wxPoint(xpos, ypos), + wxSize(width, height)){ + + /*m_pTextCtrl = new wxTextCtrl(this, + -1, + wxString(wxT("this is m_pTextXtrl")), + wxDefaultPosition, + wxDefaultSize, + wxTE_MULTILINE);*/ + + GenerateMenus(); + //Layout(); +} + +MainFrame::~MainFrame(){} + +void MainFrame::GenerateMenus(){ + wxMenuBar *m_pMenuBar = new wxMenuBar(); + wxMenu *m_pFileMenu = new wxMenu(); + wxMenu *m_pHelpMenu = new wxMenu(); + + // File Menu + m_pFileMenu->Append(wxID_OPEN, _T("&Open")); + m_pFileMenu->Append(wxID_SAVE, _T("&Save")); + m_pFileMenu->AppendSeparator(); + m_pFileMenu->Append(wxID_EXIT, _T("&Quit")); + m_pMenuBar->Append(m_pFileMenu, _T("&File")); + // About Menu + m_pHelpMenu->Append(wxID_ABOUT, _T("&About")); + m_pMenuBar->Append(m_pHelpMenu, _T("&Help")); + + SetMenuBar(m_pMenuBar); +} +// If you're doing an application by inheriting from wxApp +// be sure to change wxFrame to wxApp (or whatever component +// you've inherited your class from). +BEGIN_EVENT_TABLE(MainFrame, wxFrame) + EVT_MENU(wxID_OPEN, MainFrame::OnMenuFileOpen) + EVT_MENU(wxID_SAVE, MainFrame::OnMenuFileSave) + EVT_MENU(wxID_EXIT, MainFrame::OnMenuFileQuit) + EVT_MENU(wxID_ABOUT, MainFrame::OnMenuHelpAbout) +END_EVENT_TABLE() + +/** Process menu File>Open */ +void MainFrame::OnMenuFileOpen(wxCommandEvent &event){ +} + +/** Process menu File>Save */ +void MainFrame::OnMenuFileSave(wxCommandEvent &event){ + +} + +/** Process menu File>Quit */ +void MainFrame::OnMenuFileQuit(wxCommandEvent &event){ + Close(false); +} + +/** Process menu About>Info */ +void MainFrame::OnMenuHelpAbout(wxCommandEvent &event){ + wxLogMessage(_T("The Simple Text Editor/wxWidgets Tutorial")); +} Property changes on: trunk/wxtest4/MainFrame.cpp ___________________________________________________________________ Name: svn:executable + * Added: trunk/wxtest4/MainFrame.h =================================================================== --- trunk/wxtest4/MainFrame.h (rev 0) +++ trunk/wxtest4/MainFrame.h 2007-02-13 06:49:20 UTC (rev 4) @@ -0,0 +1,38 @@ +#ifndef MAINFRAME_H_ +#define MAINFRAME_H_ + +// For compilers that don't support precompilation, include "wx/wx.h" + #include "wx/wxprec.h" + #ifndef WX_PRECOMP + #include "wx/wx.h" + #endif + +class MainFrame : public wxFrame { + public: + /** Constructor, Creates a new MainFrame */ + MainFrame(const wxChar *title, int xpos, int ypos, int width, int height); + + /** Destructor */ + ~MainFrame(); + + private: + //wxTextCtrl *m_pTextCtrl; + void GenerateMenus(); + + /** Process menu File>Open */ + void OnMenuFileOpen(wxCommandEvent &event); + + /** Process menu File>Save */ + void OnMenuFileSave(wxCommandEvent &event); + + /** Process menu File>Quit */ + void OnMenuFileQuit(wxCommandEvent &event); + + /** Process menu About>Info */ + void OnMenuHelpAbout(wxCommandEvent &event); + + protected: + DECLARE_EVENT_TABLE() +}; + +#endif /*MAINFRAME_H_*/ Property changes on: trunk/wxtest4/MainFrame.h ___________________________________________________________________ Name: svn:executable + * Added: trunk/wxtest4/globals.h =================================================================== --- trunk/wxtest4/globals.h (rev 0) +++ trunk/wxtest4/globals.h 2007-02-13 06:49:20 UTC (rev 4) @@ -0,0 +1,11 @@ +#ifndef GLOBALS_H_ +#define GLOBALS_H_ + +#include "wx/wx.h" +#include "wx/xrc/xmlres.h" +#include "wx/notebook.h" +#include "wx/glcanvas.h" +#include "GL/gl.h" +#include "GL/glu.h" + +#endif /*GLOBALS_H_*/ Property changes on: trunk/wxtest4/globals.h ___________________________________________________________________ Name: svn:executable + * Added: trunk/wxtest4/myApp.cpp =================================================================== --- trunk/wxtest4/myApp.cpp (rev 0) +++ trunk/wxtest4/myApp.cpp 2007-02-13 06:49:20 UTC (rev 4) @@ -0,0 +1,105 @@ +/* see gpl.txt */ +/* Thomas Fischer, th...@th..., 2006 */ +#include "myApp.hh" + +bool myApp::OnInit() +{ + //wxFrame* frame = new wxFrame((wxFrame *)NULL, -1, _("Hello GL World"), wxPoint(50,50), wxSize(800,600) ); + MainFrame *frame = new MainFrame(wxT("RoREditor"), 100, 100, 800, 600); + + wxBoxSizer *sizer = new wxBoxSizer(wxHORIZONTAL); + + wxStaticBoxSizer *panel0 = new wxStaticBoxSizer(wxVERTICAL, frame, _("Information") ); + sizer->Add(panel0, 0, 0, 0); + + // GRID + wxGridSizer *item0 = new wxGridSizer( 2, 1, 1 ); + + + MyGLCanvas1 = new myGLWindow(frame, -1, wxPoint(-1,-1), wxSize(30,30), wxSUNKEN_BORDER, _("some text")); + item0->Add( MyGLCanvas1, 1, wxEXPAND, 0); + //MyGLCanvas1->SetCurrent(); + MyGLCanvas1->gllist = glGenLists(1); + MyGLCanvas1->SetToolTip(_T("MyGLCanvas1")); + glNewList(MyGLCanvas1->gllist, GL_COMPILE); + glRotatef(90 ,0.0f, 1.0f, 0.0f); + glEndList(); + + MyGLCanvas2 = new myGLWindow(frame, -1, wxPoint(-1,-1), wxSize(30,30), wxSUNKEN_BORDER, _("some text")); + MyGLCanvas2->setRotation(0,1,0); + item0->Add( MyGLCanvas2, 1, wxEXPAND, 0 ); + MyGLCanvas2->SetToolTip(_T("MyGLCanvas2")); + //MyGLCanvas2->SetCurrent(); + MyGLCanvas2->gllist = glGenLists(1); + glNewList(MyGLCanvas2->gllist, GL_COMPILE); + glRotatef(90 ,1.0f, 0.0f, 0.0f); + glEndList(); + + MyGLCanvas3 = new myGLWindow(frame, -1, wxPoint(-1,-1), wxSize(30,30), wxSUNKEN_BORDER, _("some text")); + MyGLCanvas3->setRotation(4,0,0); + item0->Add( MyGLCanvas3, 1, wxEXPAND, 0 ); + MyGLCanvas4->SetToolTip(_T("MyGLCanvas3")); + //MyGLCanvas3->SetCurrent(); + + MyGLCanvas4 = new myGLWindow(frame, -1, wxPoint(-1,-1), wxSize(30,30), wxSUNKEN_BORDER, _("some text")); + MyGLCanvas4->setRotation(0,0,0); + item0->Add( MyGLCanvas4, 1, wxEXPAND, 0 ); + MyGLCanvas4->SetToolTip(_T("MyGLCanvas4")); + //MyGLCanvas4->SetCurrent(); + + + // PANEL + wxStaticText *text1 = new wxStaticText(frame, -1, _("Rotation Speed"), wxDefaultPosition, wxDefaultSize, 0, _("StaticText")); + panel0->Add(text1, 0, 0, 0); + spin1 = new mySpinCtrl(frame, -1, MyGLCanvas1, _("Spin-Control"), -600, 600, 30); + panel0->Add(spin1, 0, 0, 0); + + + sizer->Add(item0, 1, wxEXPAND, 0); + frame->SetSizer(sizer); + frame->Show(TRUE); + + //frame->SetSizer(item0); +/* wxNotebook* book = new wxNotebook(frame, -1, wxPoint(-1,-1), wxSize(200,200)); + + GL_Window* MyGLCanvas1 = new GL_Window(1, book, -1, wxPoint(-1,-1), wxSize(200,200), wxSUNKEN_BORDER, _("some text")); + book->AddPage(MyGLCanvas1, _("One")); + + GL_Window* MyGLCanvas2 = new GL_Window(0, book, -1, wxPoint(-1,-1), wxSize(200,200), wxSUNKEN_BORDER, _("some text")); + book->AddPage(MyGLCanvas2, _("Two")); + + GL_Window* MyGLCanvas3 = new GL_Window(0, frame, -1, wxPoint(-1,-1), wxSize(200,200), wxSUNKEN_BORDER, _("some text")); + + wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); + sizer->Add(book, 0, 0, 0); + sizer->Add(MyGLCanvas3, 0, 0, 0); + + frame->SetSizer(sizer);*/ + + // initiate timer + + + myTimer = new wxTimer(this); + myTimer->Start(5); + + return TRUE; +} + +void myApp::OnTimer(wxTimerEvent & event) +{ + static float u = 0; + u = u + 1; + MyGLCanvas1->setRotation(0,0,u); + + MyGLCanvas1->draw(); + MyGLCanvas2->draw(); + MyGLCanvas3->draw(); + MyGLCanvas4->draw(); +} + +BEGIN_EVENT_TABLE(myApp, wxApp) + EVT_TIMER(-1, myApp::OnTimer) +END_EVENT_TABLE() + + +IMPLEMENT_APP(myApp) Property changes on: trunk/wxtest4/myApp.cpp ___________________________________________________________________ Name: svn:executable + * Added: trunk/wxtest4/myApp.hh =================================================================== --- trunk/wxtest4/myApp.hh (rev 0) +++ trunk/wxtest4/myApp.hh 2007-02-13 06:49:20 UTC (rev 4) @@ -0,0 +1,42 @@ +/* see gpl.txt */ +/* Thomas Fischer, th...@th..., 2006 */ + +#ifndef MYAPPHH +#define MYAPPHH + +#include "wx/wx.h" +#include "wx/timer.h" +#include "myGLWindow.hh" +#include "mySpinCtrl.hh" +#include "myGLWindow.hh" +#include "mySpinCtrl.hh" +#include "MainFrame.h" + +class myApp: public wxApp +{ + private: + myGLWindow *MyGLCanvas1, *MyGLCanvas2, *MyGLCanvas3, *MyGLCanvas4; + mySpinCtrl *spin1, *spin2, *spin3, *spin4; + wxTimer *myTimer; + + void GenerateMenu(wxFrame *frame); + + /** Process menu File>Open */ + void OnMenuFileOpen(wxCommandEvent &event); + + /** Process menu File>Save */ + void OnMenuFileSave(wxCommandEvent &event); + + /** Process menu File>Quit */ + void OnMenuFileQuit(wxCommandEvent &event); + + /** Process menu About>Info */ + void OnMenuHelpAbout(wxCommandEvent &event); + DECLARE_EVENT_TABLE(); + + public: + virtual bool OnInit(); + void OnTimer(wxTimerEvent & event); +}; + +#endif Property changes on: trunk/wxtest4/myApp.hh ___________________________________________________________________ Name: svn:executable + * Added: trunk/wxtest4/myGLWindow.cpp =================================================================== --- trunk/wxtest4/myGLWindow.cpp (rev 0) +++ trunk/wxtest4/myGLWindow.cpp 2007-02-13 06:49:20 UTC (rev 4) @@ -0,0 +1,44 @@ +/* see gpl.txt */ +/* Thomas Fischer, th...@th..., 2006 */ + +#include "myGLWindow.hh" +#include "myRenderer.hh" + +myGLWindow::myGLWindow(wxWindow* parent, wxWindowID id, const wxPoint& pos, + const wxSize& size, long style, const wxString& name, + int* attribList, const wxPalette& palette) : + wxGLCanvas(parent, id, pos, size, style, name, + attribList, palette), + isInitiated(false) +{ + mySize = size; +} + +myGLWindow::~myGLWindow() +{ +} + +void myGLWindow::draw() +{ + myRenderer::getInstance().render(this); +} + +void myGLWindow::OnSize(wxSizeEvent& event) +{ + mySize = event.GetSize(); + myRenderer::getInstance().resize(this); + //is that needed? + // event.RequestMore(); +} + +// void myGLWindow::OnIdle(wxIdleEvent& event) +// { +// //draw(); +// //event.RequestMore(); +// } + +BEGIN_EVENT_TABLE(myGLWindow, wxGLCanvas) +// EVT_IDLE(myGLWindow::OnIdle) + EVT_SIZE(myGLWindow::OnSize) +END_EVENT_TABLE() + Property changes on: trunk/wxtest4/myGLWindow.cpp ___________________________________________________________________ Name: svn:executable + * Added: trunk/wxtest4/myGLWindow.hh =================================================================== --- trunk/wxtest4/myGLWindow.hh (rev 0) +++ trunk/wxtest4/myGLWindow.hh 2007-02-13 06:49:20 UTC (rev 4) @@ -0,0 +1,50 @@ +/* see gpl.txt */ +/* Thomas Fischer, th...@th..., 2006 */ + +#ifndef MYGLWINDOWHH +#define MYGLWINDOWHH + +#include "wx/wx.h" +#include "wx/xrc/xmlres.h" +#include "wx/glcanvas.h" +#include "wx/notebook.h" +#include "GL/gl.h" +//#include "GL/glu.h" + +#if !wxUSE_GLCANVAS + #error "OpenGL required: set wxUSE_GLCANVAS to 1 and rebuild the library" +#endif + +class myGLWindow : public wxGLCanvas +{ + private: + DECLARE_EVENT_TABLE(); + + wxSize mySize; + + public: + myGLWindow(wxWindow* parent, wxWindowID id, const wxPoint& pos, + const wxSize& size, long style = 0, + const wxString& name = _("GLCanvas"), int* attribList = 0, + const wxPalette& palette = wxNullPalette); + + virtual ~myGLWindow(); + + bool isInitiated; + float rotx, roty, rotz; + + int gllist; + + void draw(); +// void OnIdle(wxIdleEvent& event); + void OnIdle(wxIdleEvent& event) { + draw(); + event.RequestMore(); + } + void OnSize(wxSizeEvent& event); + + wxSize getSize(void) { return mySize; }; + void setRotation(float x, float y, float z) { rotx = x; roty = y; rotz = z; }; +}; + +#endif Property changes on: trunk/wxtest4/myGLWindow.hh ___________________________________________________________________ Name: svn:executable + * Added: trunk/wxtest4/myRenderer.cpp =================================================================== --- trunk/wxtest4/myRenderer.cpp (rev 0) +++ trunk/wxtest4/myRenderer.cpp 2007-02-13 06:49:20 UTC (rev 4) @@ -0,0 +1,171 @@ +/* see gpl.txt */ +/* Thomas Fischer, th...@th..., 2006 */ + +#include "myRenderer.hh" +#include "myGLWindow.hh" + + +myRenderer myRenderer::myInstance; + +myRenderer::myRenderer() +{ +} + +myRenderer::~myRenderer() +{ +} + +void myRenderer::init(myGLWindow *glwindow) +{ + //printf("init\n"); + glwindow->SetCurrent(); + resize(glwindow); + glShadeModel(GL_SMOOTH); // Enables Smooth Shading + glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // Black Background + glClearDepth(1.0f); // Depth Buffer Setup + glEnable(GL_DEPTH_TEST); // Enables Depth Testing + glDepthFunc(GL_LEQUAL); // The Type Of Depth Test To Do + glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Really Nice Perspective Calculations + glwindow->isInitiated = true; + + //init models + createGrid(); +} + +void myRenderer::resize(myGLWindow *glwindow) +{ + //printf("resize\n"); + glwindow->SetCurrent(); + glViewport(0, 0, glwindow->getSize().GetWidth(), glwindow->getSize().GetHeight()); + glMatrixMode(GL_PROJECTION); // Select The Projection Matrix + glLoadIdentity(); // Reset The Projection Matrix + + // Calculate The Aspect Ratio Of The Window + // fov = 45 = normal + gluPerspective(95.0f, (GLfloat)glwindow->getSize().GetWidth() / (GLfloat)glwindow->getSize().GetHeight(), 0.1f, 500.0f); + + glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix + glLoadIdentity(); // Reset The Modelview Matrix +} + +void myRenderer::createGrid() +{ + myGridGLList = glGenLists(1); + glNewList(myGridGLList, GL_COMPILE); + + //y-grid + float gridsize = 10; + float gridstep = 0.2; + glColor3f(0.5f,0.3f,0.3f); + for (float y=-gridsize;y<gridsize;y=y+gridstep) + { + glBegin(GL_LINES); + glVertex3f( -gridsize,0, y); + glVertex3f( gridsize,0 , y); + glEnd(); + } + for (float x=-gridsize;x<gridsize;x=x+gridstep) + { + glBegin(GL_LINES); + glVertex3f( x, 0, -gridsize); + glVertex3f( x, 0, gridsize); + glEnd(); + } + + //x-grid + glColor3f(0.3f,0.5f,0.3f); + for (float y=-gridsize;y<gridsize;y=y+gridstep) + { + glBegin(GL_LINES); + glVertex3f( 0,-gridsize, y); + glVertex3f( 0,gridsize , y); + glEnd(); + } + for (float x=-gridsize;x<gridsize;x=x+gridstep) + { + glBegin(GL_LINES); + glVertex3f( 0,x, -gridsize); + glVertex3f( 0,x, gridsize); + glEnd(); + } + + //z-grid + glColor3f(0.3f,0.3f,0.5f); + for (float y=-gridsize;y<gridsize;y=y+gridstep) + { + glBegin(GL_LINES); + glVertex3f( -gridsize, y,0); + glVertex3f( gridsize , y,0); + glEnd(); + } + for (float x=-gridsize;x<gridsize;x=x+gridstep) + { + glBegin(GL_LINES); + glVertex3f( x, -gridsize,0); + glVertex3f( x, gridsize,0); + glEnd(); + } + glEndList(); +} + +void myRenderer::render(myGLWindow *glwindow) +{ + if (!glwindow->isInitiated) + init(glwindow); + + glwindow->SetCurrent(); + + // copy & paste of http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=05 + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer + + glLoadIdentity(); + + glCallList(myGridGLList); + + glCallList(glwindow->gllist); + + + //glLoadIdentity(); // Reset The View + //glTranslatef(1.5f,0.0f,-7.0f); // Move Right And Into The Screen + + glTranslatef(0,0,-3.0f); // Move Left And Into The Screen + glRotatef(rquad,1.0f,1.0f,1.0f); // Rotate The Cube On X, Y & Z + + glBegin(GL_QUADS); // Start Drawing The Cube + glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green + glVertex3f( 1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Top) + glVertex3f(-1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Top) + glVertex3f(-1.0f, 1.0f, 1.0f); // Bottom Left Of The Quad (Top) + glVertex3f( 1.0f, 1.0f, 1.0f); // Bottom Right Of The Quad (Top) + + glColor3f(1.0f,0.5f,0.0f); // Set The Color To Orange + glVertex3f( 1.0f,-1.0f, 1.0f); // Top Right Of The Quad (Bottom) + glVertex3f(-1.0f,-1.0f, 1.0f); // Top Left Of The Quad (Bottom) + glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Bottom) + glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Bottom) + + glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red + glVertex3f( 1.0f, 1.0f, 1.0f); // Top Right Of The Quad (Front) + glVertex3f(-1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Front) + glVertex3f(-1.0f,-1.0f, 1.0f); // Bottom Left Of The Quad (Front) + glVertex3f( 1.0f,-1.0f, 1.0f); // Bottom Right Of The Quad (Front) + + glColor3f(1.0f,1.0f,0.0f); // Set The Color To Yellow + glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Back) + glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Back) + glVertex3f(-1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Back) + glVertex3f( 1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Back) + + glColor3f(1.0f,0.0f,1.0f); // Set The Color To Violet + glVertex3f( 1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Right) + glVertex3f( 1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Right) + glVertex3f( 1.0f,-1.0f, 1.0f); // Bottom Left Of The Quad (Right) + glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Right) + glEnd(); // Done Drawing The Quad + + rtri += myRotationSpeed; // Increase The Rotation Variable For The Triangle + rquad -= myRotationSpeed; // Decrease The Rotation Variable For The Quad + + glwindow->SwapBuffers(); +} Property changes on: trunk/wxtest4/myRenderer.cpp ___________________________________________________________________ Name: svn:executable + * Added: trunk/wxtest4/myRenderer.hh =================================================================== --- trunk/wxtest4/myRenderer.hh (rev 0) +++ trunk/wxtest4/myRenderer.hh 2007-02-13 06:49:20 UTC (rev 4) @@ -0,0 +1,46 @@ +/* see gpl.txt */ +/* Thomas Fischer, th...@th..., 2006 */ + +#ifndef MYRENDERERHH +#define MYRENDERERHH + +#include "wx/wx.h" +#include "wx/xrc/xmlres.h" +#include "wx/notebook.h" +#include "wx/glcanvas.h" +#include "GL/gl.h" +#include "GL/glu.h" + +#include "myGLWindow.hh" +#include "mySpinCtrl.hh" + +class myRenderer +{ + private: + static myRenderer myInstance; + + GLfloat myRotationSpeed; + GLfloat rtri, rquad; + myRenderer(const myRenderer&); + myRenderer &operator=(const myRenderer&); + + int myGridGLList; + void createGrid(); + + protected: + myRenderer(); + + public: + inline static myRenderer& getInstance() { return myInstance; }; + + virtual ~myRenderer(); + void init(myGLWindow *glwindow); + void render(myGLWindow *glwindow); + void resize(myGLWindow *glwindow); + + + void setRotationSpeed(float value) { myRotationSpeed = value; }; + float getRotationSpeed(void) { return myRotationSpeed; }; +}; + +#endif Property changes on: trunk/wxtest4/myRenderer.hh ___________________________________________________________________ Name: svn:executable + * Added: trunk/wxtest4/mySpinCtrl.cpp =================================================================== --- trunk/wxtest4/mySpinCtrl.cpp (rev 0) +++ trunk/wxtest4/mySpinCtrl.cpp 2007-02-13 06:49:20 UTC (rev 4) @@ -0,0 +1,36 @@ +/* see gpl.txt */ +/* Thomas Fischer, th...@th..., 2006 */ + +#include "mySpinCtrl.hh" +#include "myGLWindow.hh" +#include "myRenderer.hh" + + +mySpinCtrl::mySpinCtrl(wxWindow* parent, wxWindowID id, myGLWindow *win, const wxString& name, int min, int max, int initial) : + wxSpinCtrl(parent, id, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, min, max, initial, name), + currentValue(initial), myGL(win) +{ + setSpeed(); +} + +mySpinCtrl::~mySpinCtrl() +{ +} + +void mySpinCtrl::setSpeed() +{ + float fvalue = (float)currentValue/1000; +// printf("spinning: %f\n", fvalue); + myRenderer::getInstance().setRotationSpeed(fvalue); +} + +void mySpinCtrl::OnSpin(wxSpinEvent& event) +{ + currentValue = event.GetPosition(); + setSpeed(); +} + +BEGIN_EVENT_TABLE(mySpinCtrl, wxSpinCtrl) + EVT_SPINCTRL(-1, mySpinCtrl::OnSpin) +END_EVENT_TABLE() + Property changes on: trunk/wxtest4/mySpinCtrl.cpp ___________________________________________________________________ Name: svn:executable + * Added: trunk/wxtest4/mySpinCtrl.hh =================================================================== --- trunk/wxtest4/mySpinCtrl.hh (rev 0) +++ trunk/wxtest4/mySpinCtrl.hh 2007-02-13 06:49:20 UTC (rev 4) @@ -0,0 +1,26 @@ +/* see gpl.txt */ +/* Thomas Fischer, th...@th..., 2006 */ + +#ifndef MYSPINCTRLHH +#define MYSPINCTRLHH + +#include "wx/wx.h" +#include "wx/spinctrl.h" +#include "myGLWindow.hh" + +class mySpinCtrl : public wxSpinCtrl +{ + private: + int currentValue; + myGLWindow *myGL; + DECLARE_EVENT_TABLE(); + void setSpeed(); + + public: + mySpinCtrl(wxWindow* parent, wxWindowID id, myGLWindow *win, const wxString& name = _("GLCanvas"), int min = 0, int max = 100 , int initial = 10); + virtual ~mySpinCtrl(); + + void OnSpin(wxSpinEvent& event); +}; + +#endif Property changes on: trunk/wxtest4/mySpinCtrl.hh ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |