qtruby4 2.1.0.b-mswin32 → 2.1.0-mswin32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/Qt3Support4.dll +0 -0
- data/bin/QtAssistantClient4.dll +0 -0
- data/bin/QtCLucene4.dll +0 -0
- data/bin/QtCore4.dll +0 -0
- data/bin/QtDesigner4.dll +0 -0
- data/bin/QtDesignerComponents4.dll +0 -0
- data/bin/QtGui4.dll +0 -0
- data/bin/QtHelp4.dll +0 -0
- data/bin/QtMultimedia4.dll +0 -0
- data/bin/QtNetwork4.dll +0 -0
- data/bin/QtOpenGL4.dll +0 -0
- data/bin/QtScript4.dll +0 -0
- data/bin/QtScriptTools4.dll +0 -0
- data/bin/QtSql4.dll +0 -0
- data/bin/QtSvg4.dll +0 -0
- data/bin/QtTest4.dll +0 -0
- data/bin/QtWebKit4.dll +0 -0
- data/bin/QtXml4.dll +0 -0
- data/bin/QtXmlPatterns4.dll +0 -0
- data/bin/accessible/qtaccessiblecompatwidgets4.dll +0 -0
- data/bin/accessible/qtaccessiblewidgets4.dll +0 -0
- data/bin/assistant.exe +0 -0
- data/bin/assistant_adp.exe +0 -0
- data/bin/codecs/qcncodecs4.dll +0 -0
- data/bin/codecs/qjpcodecs4.dll +0 -0
- data/bin/codecs/qkrcodecs4.dll +0 -0
- data/bin/codecs/qtwcodecs4.dll +0 -0
- data/bin/designer.exe +0 -0
- data/bin/designer/arthurplugin.dll +0 -0
- data/bin/designer/containerextension.dll +0 -0
- data/bin/designer/customwidgetplugin.dll +0 -0
- data/bin/designer/phononwidgets.dll +0 -0
- data/bin/designer/qt3supportwidgets.dll +0 -0
- data/bin/designer/qwebview.dll +0 -0
- data/bin/designer/taskmenuextension.dll +0 -0
- data/bin/designer/worldtimeclockplugin.dll +0 -0
- data/bin/graphicssystems/qglgraphicssystem4.dll +0 -0
- data/bin/graphicssystems/qtracegraphicssystem4.dll +0 -0
- data/bin/iconengines/qsvgicon4.dll +0 -0
- data/bin/imageformats/qgif4.dll +0 -0
- data/bin/imageformats/qico4.dll +0 -0
- data/bin/imageformats/qjpeg4.dll +0 -0
- data/bin/imageformats/qmng4.dll +0 -0
- data/bin/imageformats/qsvg4.dll +0 -0
- data/bin/imageformats/qtiff4.dll +0 -0
- data/bin/linguist.exe +0 -0
- data/bin/phonon4.dll +0 -0
- data/bin/phonon_backend/phonon_ds94.dll +0 -0
- data/bin/qtruby4shared.dll +0 -0
- data/bin/rbqtapi +152 -0
- data/bin/rbrcc.exe +0 -0
- data/bin/rbuic4.exe +0 -0
- data/bin/smokeqt.dll +0 -0
- data/bin/smokeqtcore.dll +0 -0
- data/bin/smokeqtgui.dll +0 -0
- data/bin/smokeqtmultimedia.dll +0 -0
- data/bin/smokeqtnetwork.dll +0 -0
- data/bin/smokeqtopengl.dll +0 -0
- data/bin/smokeqtscript.dll +0 -0
- data/bin/smokeqtsql.dll +0 -0
- data/bin/smokeqtsvg.dll +0 -0
- data/bin/smokeqttest.dll +0 -0
- data/bin/smokeqtuitools.dll +0 -0
- data/bin/smokeqtwebkit.dll +0 -0
- data/bin/smokeqtxml.dll +0 -0
- data/bin/smokeqtxmlpatterns.dll +0 -0
- data/bin/sqldrivers/qsqlite4.dll +0 -0
- data/bin/sqldrivers/qsqlodbc4.dll +0 -0
- data/bin/sqldrivers/qsqlpsql4.dll +0 -0
- data/examples/base/kicons.rb +54 -0
- data/examples/base/rui.rb +21 -0
- data/examples/designer/calculatorbuilder/calculatorbuilder.qrc +5 -0
- data/examples/designer/calculatorbuilder/calculatorform.rb +60 -0
- data/examples/designer/calculatorbuilder/calculatorform.ui +299 -0
- data/examples/designer/calculatorbuilder/main.rb +33 -0
- data/examples/designer/calculatorbuilder/makefile +2 -0
- data/examples/designer/calculatorform/calculatorform.rb +46 -0
- data/examples/designer/calculatorform/calculatorform.ui +277 -0
- data/examples/designer/calculatorform/main.rb +32 -0
- data/examples/designer/calculatorform/makefile +3 -0
- data/examples/desktop/screenshot/main.rb +32 -0
- data/examples/desktop/screenshot/screenshot.rb +156 -0
- data/examples/desktop/systray/images/bad.svg +64 -0
- data/examples/desktop/systray/images/heart.svg +55 -0
- data/examples/desktop/systray/images/trash.svg +58 -0
- data/examples/desktop/systray/main.rb +41 -0
- data/examples/desktop/systray/makefile +2 -0
- data/examples/desktop/systray/systray.qrc +7 -0
- data/examples/desktop/systray/window.rb +223 -0
- data/examples/dialogs/complexwizard/complexwizard.rb +140 -0
- data/examples/dialogs/complexwizard/licensewizard.rb +294 -0
- data/examples/dialogs/complexwizard/main.rb +31 -0
- data/examples/dialogs/configdialog/configdialog.rb +109 -0
- data/examples/dialogs/configdialog/images/config.png +0 -0
- data/examples/dialogs/configdialog/images/query.png +0 -0
- data/examples/dialogs/configdialog/images/update.png +0 -0
- data/examples/dialogs/configdialog/main.rb +31 -0
- data/examples/dialogs/configdialog/pages.rb +140 -0
- data/examples/dialogs/extension/finddialog.rb +89 -0
- data/examples/dialogs/extension/main.rb +31 -0
- data/examples/dialogs/findfiles/main.rb +32 -0
- data/examples/dialogs/findfiles/window.rb +177 -0
- data/examples/dialogs/simplewizard/classwizard.rb +374 -0
- data/examples/dialogs/simplewizard/main.rb +31 -0
- data/examples/dialogs/simplewizard/simplewizard.rb +110 -0
- data/examples/dialogs/standarddialogs/dialog.rb +340 -0
- data/examples/dialogs/standarddialogs/main.rb +31 -0
- data/examples/dialogs/tabdialog/main.rb +38 -0
- data/examples/dialogs/tabdialog/tabdialog.rb +178 -0
- data/examples/draganddrop/draggableicons/dragwidget.rb +125 -0
- data/examples/draganddrop/draggableicons/images/boat.png +0 -0
- data/examples/draganddrop/draggableicons/images/car.png +0 -0
- data/examples/draganddrop/draggableicons/images/house.png +0 -0
- data/examples/draganddrop/draggableicons/main.rb +41 -0
- data/examples/draganddrop/draggabletext/draglabel.rb +51 -0
- data/examples/draganddrop/draggabletext/dragwidget.rb +94 -0
- data/examples/draganddrop/draggabletext/main.rb +33 -0
- data/examples/draganddrop/draggabletext/words.txt +41 -0
- data/examples/draganddrop/dropsite/dropsitewidget.rb +98 -0
- data/examples/draganddrop/dropsite/dropsitewindow.rb +114 -0
- data/examples/draganddrop/dropsite/main.rb +33 -0
- data/examples/draganddrop/fridgemagnets/draglabel.rb +78 -0
- data/examples/draganddrop/fridgemagnets/dragwidget.rb +130 -0
- data/examples/draganddrop/fridgemagnets/main.rb +33 -0
- data/examples/draganddrop/fridgemagnets/words.txt +48 -0
- data/examples/draganddrop/puzzle/example.jpg +0 -0
- data/examples/draganddrop/puzzle/main.rb +33 -0
- data/examples/draganddrop/puzzle/mainwindow.rb +136 -0
- data/examples/draganddrop/puzzle/pieceslist.rb +95 -0
- data/examples/draganddrop/puzzle/puzzlewidget.rb +190 -0
- data/examples/graphicsview/collidingmice/images/cheese.jpg +0 -0
- data/examples/graphicsview/collidingmice/main.rb +53 -0
- data/examples/graphicsview/collidingmice/makefile +2 -0
- data/examples/graphicsview/collidingmice/mice.qrc +5 -0
- data/examples/graphicsview/collidingmice/mouse.rb +176 -0
- data/examples/graphicsview/dragdroprobot/coloritem.rb +86 -0
- data/examples/graphicsview/dragdroprobot/images/head.png +0 -0
- data/examples/graphicsview/dragdroprobot/main.rb +57 -0
- data/examples/graphicsview/dragdroprobot/makefile +2 -0
- data/examples/graphicsview/dragdroprobot/robot.qrc +5 -0
- data/examples/graphicsview/dragdroprobot/robot.rb +246 -0
- data/examples/itemviews/chart/chart.qrc +5 -0
- data/examples/itemviews/chart/main.rb +33 -0
- data/examples/itemviews/chart/mainwindow.rb +151 -0
- data/examples/itemviews/chart/makefile +2 -0
- data/examples/itemviews/chart/mydata.cht +8 -0
- data/examples/itemviews/chart/pieview.rb +516 -0
- data/examples/itemviews/chart/qtdata.cht +14 -0
- data/examples/itemviews/dirview/main.rb +39 -0
- data/examples/itemviews/pixelator/imagemodel.rb +51 -0
- data/examples/itemviews/pixelator/images.qrc +5 -0
- data/examples/itemviews/pixelator/images/qt.png +0 -0
- data/examples/itemviews/pixelator/main.rb +34 -0
- data/examples/itemviews/pixelator/mainwindow.rb +218 -0
- data/examples/itemviews/pixelator/makefile +3 -0
- data/examples/itemviews/pixelator/pixeldelegate.rb +67 -0
- data/examples/itemviews/puzzle/example.jpg +0 -0
- data/examples/itemviews/puzzle/main.rb +36 -0
- data/examples/itemviews/puzzle/mainwindow.rb +143 -0
- data/examples/itemviews/puzzle/piecesmodel.rb +174 -0
- data/examples/itemviews/puzzle/puzzlewidget.rb +192 -0
- data/examples/itemviews/simpledommodel/domitem.rb +62 -0
- data/examples/itemviews/simpledommodel/dommodel.rb +139 -0
- data/examples/itemviews/simpledommodel/main.rb +33 -0
- data/examples/itemviews/simpledommodel/mainwindow.rb +66 -0
- data/examples/itemviews/simpletreemodel/default.txt +40 -0
- data/examples/itemviews/simpletreemodel/main.rb +41 -0
- data/examples/itemviews/simpletreemodel/makefile +2 -0
- data/examples/itemviews/simpletreemodel/simpletreemodel.qrc +5 -0
- data/examples/itemviews/simpletreemodel/treeitem.rb +67 -0
- data/examples/itemviews/simpletreemodel/treemodel.rb +164 -0
- data/examples/itemviews/sortingmodel/default.txt +40 -0
- data/examples/itemviews/sortingmodel/main.rb +53 -0
- data/examples/itemviews/sortingmodel/treeitem.rb +73 -0
- data/examples/itemviews/sortingmodel/treemodel.rb +166 -0
- data/examples/itemviews/spinboxdelegate/main.rb +47 -0
- data/examples/itemviews/spinboxdelegate/spinboxdelegate.rb +62 -0
- data/examples/killerfilter/killerfilter.rb +55 -0
- data/examples/layouts/basiclayouts/dialog.rb +110 -0
- data/examples/layouts/basiclayouts/main.rb +31 -0
- data/examples/layouts/borderlayout/borderlayout.rb +190 -0
- data/examples/layouts/borderlayout/main.rb +32 -0
- data/examples/layouts/borderlayout/window.rb +52 -0
- data/examples/layouts/flowlayouts/flowlayout.rb +108 -0
- data/examples/layouts/flowlayouts/main.rb +32 -0
- data/examples/layouts/flowlayouts/window.rb +43 -0
- data/examples/mainwindows/application/images/copy.png +0 -0
- data/examples/mainwindows/application/images/cut.png +0 -0
- data/examples/mainwindows/application/images/new.png +0 -0
- data/examples/mainwindows/application/images/open.png +0 -0
- data/examples/mainwindows/application/images/paste.png +0 -0
- data/examples/mainwindows/application/images/save.png +0 -0
- data/examples/mainwindows/application/main.rb +32 -0
- data/examples/mainwindows/application/mainwindow.rb +285 -0
- data/examples/mainwindows/dockwidgets/images/new.png +0 -0
- data/examples/mainwindows/dockwidgets/images/print.png +0 -0
- data/examples/mainwindows/dockwidgets/images/save.png +0 -0
- data/examples/mainwindows/dockwidgets/images/undo.png +0 -0
- data/examples/mainwindows/dockwidgets/main.rb +32 -0
- data/examples/mainwindows/dockwidgets/mainwindow.rb +302 -0
- data/examples/mainwindows/mdi/images/copy.png +0 -0
- data/examples/mainwindows/mdi/images/cut.png +0 -0
- data/examples/mainwindows/mdi/images/new.png +0 -0
- data/examples/mainwindows/mdi/images/open.png +0 -0
- data/examples/mainwindows/mdi/images/paste.png +0 -0
- data/examples/mainwindows/mdi/images/save.png +0 -0
- data/examples/mainwindows/mdi/main.rb +32 -0
- data/examples/mainwindows/mdi/mainwindow.rb +363 -0
- data/examples/mainwindows/mdi/mdichild.rb +152 -0
- data/examples/mainwindows/menus/main.rb +32 -0
- data/examples/mainwindows/menus/mainwindow.rb +327 -0
- data/examples/mainwindows/recentfiles/main.rb +32 -0
- data/examples/mainwindows/recentfiles/mainwindow.rb +258 -0
- data/examples/mainwindows/sdi/images/copy.png +0 -0
- data/examples/mainwindows/sdi/images/cut.png +0 -0
- data/examples/mainwindows/sdi/images/new.png +0 -0
- data/examples/mainwindows/sdi/images/open.png +0 -0
- data/examples/mainwindows/sdi/images/paste.png +0 -0
- data/examples/mainwindows/sdi/images/save.png +0 -0
- data/examples/mainwindows/sdi/main.rb +32 -0
- data/examples/mainwindows/sdi/mainwindow.rb +335 -0
- data/examples/network/broadcastreceiver/main.rb +32 -0
- data/examples/network/broadcastreceiver/receiver.rb +64 -0
- data/examples/network/broadcastsender/main.rb +32 -0
- data/examples/network/broadcastsender/sender.rb +70 -0
- data/examples/network/fortuneclient/client.rb +150 -0
- data/examples/network/fortuneclient/main.rb +32 -0
- data/examples/network/fortuneserver/main.rb +32 -0
- data/examples/network/fortuneserver/server.rb +88 -0
- data/examples/network/ftp/ftpwindow.rb +254 -0
- data/examples/network/ftp/images/cdtoparent.png +0 -0
- data/examples/network/ftp/images/dir.png +0 -0
- data/examples/network/ftp/images/file.png +0 -0
- data/examples/network/ftp/main.rb +32 -0
- data/examples/network/http/httpwindow.rb +187 -0
- data/examples/network/http/main.rb +32 -0
- data/examples/network/loopback/dialog.rb +163 -0
- data/examples/network/loopback/main.rb +32 -0
- data/examples/opengl/grabber/glwidget.rb +265 -0
- data/examples/opengl/grabber/main.rb +32 -0
- data/examples/opengl/grabber/mainwindow.rb +189 -0
- data/examples/opengl/hellogl/glwidget.rb +226 -0
- data/examples/opengl/hellogl/main.rb +32 -0
- data/examples/opengl/hellogl/window.rb +66 -0
- data/examples/opengl/textures/glwidget.rb +151 -0
- data/examples/opengl/textures/images/side1.png +0 -0
- data/examples/opengl/textures/images/side2.png +0 -0
- data/examples/opengl/textures/images/side3.png +0 -0
- data/examples/opengl/textures/images/side4.png +0 -0
- data/examples/opengl/textures/images/side5.png +0 -0
- data/examples/opengl/textures/images/side6.png +0 -0
- data/examples/opengl/textures/main.rb +32 -0
- data/examples/opengl/textures/window.rb +77 -0
- data/examples/painting/basicdrawing/images/brick.png +0 -0
- data/examples/painting/basicdrawing/images/qt-logo.png +0 -0
- data/examples/painting/basicdrawing/main.rb +32 -0
- data/examples/painting/basicdrawing/renderarea.rb +166 -0
- data/examples/painting/basicdrawing/window.rb +215 -0
- data/examples/painting/concentriccircles/circlewidget.rb +88 -0
- data/examples/painting/concentriccircles/main.rb +32 -0
- data/examples/painting/concentriccircles/window.rb +72 -0
- data/examples/painting/fontsampler/main.rb +32 -0
- data/examples/painting/fontsampler/mainwindow.rb +368 -0
- data/examples/painting/fontsampler/mainwindowbase.ui +136 -0
- data/examples/painting/fontsampler/makefile +8 -0
- data/examples/painting/fontsampler/previewdialog.rb +256 -0
- data/examples/painting/fontsampler/previewdialogbase.ui +224 -0
- data/examples/painting/fontsampler/previewlabel.rb +43 -0
- data/examples/painting/imagecomposition/imagecomposer.rb +152 -0
- data/examples/painting/imagecomposition/imagecomposition.qrc +6 -0
- data/examples/painting/imagecomposition/images/background.png +0 -0
- data/examples/painting/imagecomposition/images/blackrectangle.png +0 -0
- data/examples/painting/imagecomposition/images/butterfly.png +0 -0
- data/examples/painting/imagecomposition/images/checker.png +0 -0
- data/examples/painting/imagecomposition/main.rb +33 -0
- data/examples/painting/imagecomposition/makefile +2 -0
- data/examples/painting/painterpaths/main.rb +32 -0
- data/examples/painting/painterpaths/renderarea.rb +97 -0
- data/examples/painting/painterpaths/window.rb +247 -0
- data/examples/painting/svgviewer/files/bubbles.svg +212 -0
- data/examples/painting/svgviewer/files/cubic.svg +77 -0
- data/examples/painting/svgviewer/files/spheres.svg +79 -0
- data/examples/painting/svgviewer/main.rb +38 -0
- data/examples/painting/svgviewer/mainwindow.rb +99 -0
- data/examples/painting/svgviewer/makefile +2 -0
- data/examples/painting/svgviewer/svgview.rb +156 -0
- data/examples/painting/svgviewer/svgviewer.qrc +6 -0
- data/examples/painting/svgviewer/svgwindow.rb +87 -0
- data/examples/painting/transformations/main.rb +32 -0
- data/examples/painting/transformations/renderarea.rb +127 -0
- data/examples/painting/transformations/window.rb +153 -0
- data/examples/passivepopup/passivepopup.rb +38 -0
- data/examples/qtscribble/scribble.rb +270 -0
- data/examples/richtext/calendar/main.rb +33 -0
- data/examples/richtext/calendar/mainwindow.rb +173 -0
- data/examples/richtext/orderform/detailsdialog.rb +130 -0
- data/examples/richtext/orderform/main.rb +34 -0
- data/examples/richtext/orderform/mainwindow.rb +194 -0
- data/examples/richtext/syntaxhighlighter/examples/example +79 -0
- data/examples/richtext/syntaxhighlighter/highlighter.rb +90 -0
- data/examples/richtext/syntaxhighlighter/main.rb +34 -0
- data/examples/richtext/syntaxhighlighter/mainwindow.rb +105 -0
- data/examples/ruboids/Manifest +26 -0
- data/examples/ruboids/README +53 -0
- data/examples/ruboids/TODO +29 -0
- data/examples/ruboids/boids.properties +33 -0
- data/examples/ruboids/generateManifest.rb +42 -0
- data/examples/ruboids/index.html +147 -0
- data/examples/ruboids/release.rb +152 -0
- data/examples/ruboids/ruboids/Boid.rb +141 -0
- data/examples/ruboids/ruboids/BoidView.rb +159 -0
- data/examples/ruboids/ruboids/Camera.rb +24 -0
- data/examples/ruboids/ruboids/CameraDialog.rb +218 -0
- data/examples/ruboids/ruboids/Canvas.rb +143 -0
- data/examples/ruboids/ruboids/Cloud.rb +61 -0
- data/examples/ruboids/ruboids/CloudView.rb +54 -0
- data/examples/ruboids/ruboids/Flock.rb +47 -0
- data/examples/ruboids/ruboids/Graphics.rb +278 -0
- data/examples/ruboids/ruboids/Params.rb +87 -0
- data/examples/ruboids/ruboids/Point.rb +153 -0
- data/examples/ruboids/ruboids/Thing.rb +34 -0
- data/examples/ruboids/ruboids/Triangle.rb +21 -0
- data/examples/ruboids/ruboids/View.rb +88 -0
- data/examples/ruboids/ruboids/World.rb +82 -0
- data/examples/ruboids/ruboids/WorldWindow.rb +52 -0
- data/examples/ruboids/ruboids/info.rb +12 -0
- data/examples/ruboids/ruboids/ruboids.rb +29 -0
- data/examples/textedit/textedit.rb +150 -0
- data/examples/tutorial/t1/t1.rb +10 -0
- data/examples/tutorial/t10/cannon.rb +72 -0
- data/examples/tutorial/t10/lcdrange.rb +45 -0
- data/examples/tutorial/t10/t10.rb +55 -0
- data/examples/tutorial/t11/cannon.rb +124 -0
- data/examples/tutorial/t11/lcdrange.rb +45 -0
- data/examples/tutorial/t11/t11.rb +65 -0
- data/examples/tutorial/t12/cannon.rb +158 -0
- data/examples/tutorial/t12/lcdrange.rb +59 -0
- data/examples/tutorial/t12/t12.rb +66 -0
- data/examples/tutorial/t13/cannon.rb +208 -0
- data/examples/tutorial/t13/gamebrd.rb +113 -0
- data/examples/tutorial/t13/lcdrange.rb +60 -0
- data/examples/tutorial/t13/t13.rb +11 -0
- data/examples/tutorial/t14/cannon.rb +263 -0
- data/examples/tutorial/t14/gamebrd.rb +123 -0
- data/examples/tutorial/t14/lcdrange.rb +63 -0
- data/examples/tutorial/t14/t14.rb +11 -0
- data/examples/tutorial/t2/t2.rb +16 -0
- data/examples/tutorial/t3/t3.rb +18 -0
- data/examples/tutorial/t4/t4.rb +25 -0
- data/examples/tutorial/t5/t5.rb +37 -0
- data/examples/tutorial/t6/t6.rb +52 -0
- data/examples/tutorial/t7/lcdrange.rb +32 -0
- data/examples/tutorial/t7/t7.rb +42 -0
- data/examples/tutorial/t8/cannon.rb +38 -0
- data/examples/tutorial/t8/lcdrange.rb +45 -0
- data/examples/tutorial/t8/t8.rb +43 -0
- data/examples/tutorial/t9/cannon.rb +45 -0
- data/examples/tutorial/t9/lcdrange.rb +46 -0
- data/examples/tutorial/t9/t9.rb +43 -0
- data/examples/widgets/analogclock/analogclock.rb +94 -0
- data/examples/widgets/analogclock/main.rb +9 -0
- data/examples/widgets/calculator/button.rb +45 -0
- data/examples/widgets/calculator/calculator.rb +382 -0
- data/examples/widgets/calculator/main.rb +32 -0
- data/examples/widgets/charactermap/characterwidget.rb +110 -0
- data/examples/widgets/charactermap/main.rb +32 -0
- data/examples/widgets/charactermap/mainwindow.rb +118 -0
- data/examples/widgets/digitalclock/digitalclock.rb +30 -0
- data/examples/widgets/digitalclock/main.rb +9 -0
- data/examples/widgets/groupbox/main.rb +32 -0
- data/examples/widgets/groupbox/window.rb +134 -0
- data/examples/widgets/icons/iconpreviewarea.rb +111 -0
- data/examples/widgets/icons/iconsizespinbox.rb +39 -0
- data/examples/widgets/icons/imagedelegate.rb +73 -0
- data/examples/widgets/icons/images/designer.png +0 -0
- data/examples/widgets/icons/images/find_disabled.png +0 -0
- data/examples/widgets/icons/images/find_normal.png +0 -0
- data/examples/widgets/icons/images/monkey_off_128x128.png +0 -0
- data/examples/widgets/icons/images/monkey_off_16x16.png +0 -0
- data/examples/widgets/icons/images/monkey_off_32x32.png +0 -0
- data/examples/widgets/icons/images/monkey_off_64x64.png +0 -0
- data/examples/widgets/icons/images/monkey_on_128x128.png +0 -0
- data/examples/widgets/icons/images/monkey_on_16x16.png +0 -0
- data/examples/widgets/icons/images/monkey_on_32x32.png +0 -0
- data/examples/widgets/icons/images/monkey_on_64x64.png +0 -0
- data/examples/widgets/icons/images/qtopia_16x16.png +0 -0
- data/examples/widgets/icons/images/qtopia_32x32.png +0 -0
- data/examples/widgets/icons/images/qtopia_48x48.png +0 -0
- data/examples/widgets/icons/main.rb +32 -0
- data/examples/widgets/icons/mainwindow.rb +351 -0
- data/examples/widgets/imageviewer/imageviewer.rb +219 -0
- data/examples/widgets/imageviewer/main.rb +32 -0
- data/examples/widgets/lineedits/main.rb +32 -0
- data/examples/widgets/lineedits/window.rb +199 -0
- data/examples/widgets/movie/images/open.png +0 -0
- data/examples/widgets/movie/images/pause.png +0 -0
- data/examples/widgets/movie/images/play.png +0 -0
- data/examples/widgets/movie/images/quit.png +0 -0
- data/examples/widgets/movie/images/stop.png +0 -0
- data/examples/widgets/movie/main.rb +32 -0
- data/examples/widgets/movie/movieplayer.rb +201 -0
- data/examples/widgets/movie/movies/fire.mng +0 -0
- data/examples/widgets/screenshot/main.rb +32 -0
- data/examples/widgets/screenshot/screenshot.rb +155 -0
- data/examples/widgets/scribble/main.rb +32 -0
- data/examples/widgets/scribble/mainwindow.rb +202 -0
- data/examples/widgets/scribble/scribblearea.rb +154 -0
- data/examples/widgets/sliders/main.rb +32 -0
- data/examples/widgets/sliders/slidersgroup.rb +97 -0
- data/examples/widgets/sliders/window.rb +124 -0
- data/examples/widgets/spinboxes/main.rb +32 -0
- data/examples/widgets/spinboxes/window.rb +213 -0
- data/examples/widgets/tetrix/main.rb +33 -0
- data/examples/widgets/tetrix/tetrixboard.rb +346 -0
- data/examples/widgets/tetrix/tetrixpiece.rb +135 -0
- data/examples/widgets/tetrix/tetrixwindow.rb +88 -0
- data/examples/widgets/tooltips/images/circle.png +0 -0
- data/examples/widgets/tooltips/images/square.png +0 -0
- data/examples/widgets/tooltips/images/triangle.png +0 -0
- data/examples/widgets/tooltips/main.rb +32 -0
- data/examples/widgets/tooltips/shapeitem.rb +31 -0
- data/examples/widgets/tooltips/sortingbox.rb +222 -0
- data/examples/widgets/wiggly/dialog.rb +48 -0
- data/examples/widgets/wiggly/main.rb +11 -0
- data/examples/widgets/wiggly/wigglywidget.rb +76 -0
- data/examples/widgets/windowflags/controllerwindow.rb +195 -0
- data/examples/widgets/windowflags/main.rb +32 -0
- data/examples/widgets/windowflags/previewwindow.rb +103 -0
- data/examples/xml/dombookmarks/frank.xbel +230 -0
- data/examples/xml/dombookmarks/jennifer.xbel +93 -0
- data/examples/xml/dombookmarks/main.rb +34 -0
- data/examples/xml/dombookmarks/mainwindow.rb +129 -0
- data/examples/xml/dombookmarks/xbeltree.rb +172 -0
- data/examples/xml/saxbookmarks/frank.xbel +230 -0
- data/examples/xml/saxbookmarks/jennifer.xbel +93 -0
- data/examples/xml/saxbookmarks/main.rb +34 -0
- data/examples/xml/saxbookmarks/mainwindow.rb +144 -0
- data/examples/xml/saxbookmarks/xbelgenerator.rb +95 -0
- data/examples/xml/saxbookmarks/xbelhandler.rb +122 -0
- data/lib/Qt/qtruby4.rb +5 -1
- data/lib/qtruby4.dll +0 -0
- data/lib/qtscript.dll +0 -0
- data/lib/qtscript/qtscript.rb +40 -0
- data/lib/qttest.dll +0 -0
- data/lib/qttest/qttest.rb +166 -0
- data/lib/qtuitools.dll +0 -0
- data/lib/qtuitools/qtuitools.rb +17 -0
- data/lib/qtwebkit.dll +0 -0
- data/lib/qtwebkit/qtwebkit.rb +17 -0
- metadata +420 -7
@@ -0,0 +1,47 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2001 by Jim Menard <jimm@io.com>
|
3
|
+
#
|
4
|
+
# Released under the same license as Ruby. See
|
5
|
+
# http://www.ruby-lang.org/en/LICENSE.txt.
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'Flock'
|
9
|
+
require 'Boid'
|
10
|
+
require 'Params'
|
11
|
+
|
12
|
+
class Flock
|
13
|
+
attr_reader :members
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
@members = []
|
17
|
+
end
|
18
|
+
|
19
|
+
def add(boid)
|
20
|
+
@members << boid
|
21
|
+
boid.flock = self
|
22
|
+
end
|
23
|
+
|
24
|
+
def draw
|
25
|
+
@members.each { | boid | boid.draw() }
|
26
|
+
end
|
27
|
+
|
28
|
+
def move
|
29
|
+
@members.each { | boid | boid.move() }
|
30
|
+
end
|
31
|
+
|
32
|
+
# Return distance between two boid's positions.
|
33
|
+
def distBetween(b1, b2)
|
34
|
+
return b1.position.distanceTo(b2.position)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Center of mass
|
38
|
+
def centerExcluding(b)
|
39
|
+
p = Point.new()
|
40
|
+
@members.each { | boid |
|
41
|
+
p.addPoint(boid.position) unless boid == b
|
42
|
+
}
|
43
|
+
p.divideBy(@members.length - 1)
|
44
|
+
return p
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
@@ -0,0 +1,278 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2001 by Jim Menard <jimm@io.com>
|
3
|
+
#
|
4
|
+
# Released under the same license as Ruby. See
|
5
|
+
# http://www.ruby-lang.org/en/LICENSE.txt.
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'Triangle'
|
9
|
+
|
10
|
+
class Graphics
|
11
|
+
|
12
|
+
DEFAULT_SPHERE_ITERATIONS = 3
|
13
|
+
|
14
|
+
XPLUS = Point.new(1, 0, 0) # X
|
15
|
+
XMINUS = Point.new(-1, 0, 0)# -X
|
16
|
+
YPLUS = Point.new(0, 1, 0) # Y
|
17
|
+
YMINUS = Point.new(0, -1, 0)# -Y
|
18
|
+
ZPLUS = Point.new(0, 0, 1) # Z
|
19
|
+
ZMINUS = Point.new(0, 0, -1)# -Z
|
20
|
+
|
21
|
+
# defined w/counter-clockwise triangles
|
22
|
+
OCTAHEDRON = [
|
23
|
+
Triangle.new(YPLUS, ZPLUS, XPLUS),
|
24
|
+
Triangle.new(XMINUS, ZPLUS, YPLUS),
|
25
|
+
Triangle.new(YMINUS, ZPLUS, XMINUS),
|
26
|
+
Triangle.new(XPLUS, ZPLUS, YMINUS),
|
27
|
+
Triangle.new(ZMINUS, YPLUS, XPLUS),
|
28
|
+
Triangle.new(ZMINUS, XMINUS , YPLUS),
|
29
|
+
Triangle.new(ZMINUS, YMINUS , XMINUS),
|
30
|
+
Triangle.new(ZMINUS, XPLUS, YMINUS)
|
31
|
+
]
|
32
|
+
# Defines counter-clockwise points used in OpenGL TRIANGLE_STRIP to
|
33
|
+
# create a circle on the X/Z plane. Don't include center point here;
|
34
|
+
# It is added when outputting the circle.
|
35
|
+
SQUARE = [
|
36
|
+
XPLUS, ZMINUS, XMINUS, ZPLUS, XPLUS
|
37
|
+
]
|
38
|
+
|
39
|
+
@@spheres = Hash.new()
|
40
|
+
@@circles = Hash.new()
|
41
|
+
|
42
|
+
def Graphics.radiansToDegrees(rad)
|
43
|
+
return rad * 180.0 / Math::PI
|
44
|
+
end
|
45
|
+
|
46
|
+
def Graphics.degreesToRadians(deg)
|
47
|
+
return deg * Math::PI / 180.0
|
48
|
+
end
|
49
|
+
|
50
|
+
# Given a vector, return a point containing x, y, z rotation angles.
|
51
|
+
#
|
52
|
+
# atan2(x, y) = the angle formed with the x axis by the ray from the
|
53
|
+
# origin to the point {x,y}
|
54
|
+
def Graphics.rotations(v)
|
55
|
+
return Point::ORIGIN.dup() if v.nil?
|
56
|
+
return v if v == Point::ORIGIN
|
57
|
+
|
58
|
+
x = Math.atan2(v.y, v.z)
|
59
|
+
y = Math.atan2(v.z, v.x)
|
60
|
+
z = Math.atan2(v.y, v.x)
|
61
|
+
|
62
|
+
rot = Point.new(z, x, y)
|
63
|
+
rot.add(Math::PI).multiplyBy(180.0).divideBy(Math::PI)
|
64
|
+
|
65
|
+
rot.x = rot.x.to_i
|
66
|
+
rot.y = rot.y.to_i
|
67
|
+
rot.z = rot.z.to_i
|
68
|
+
|
69
|
+
return rot
|
70
|
+
end
|
71
|
+
|
72
|
+
# Build box from corners. All faces are counter-clockwise.
|
73
|
+
def Graphics.boxFromCorners(p0, p1)
|
74
|
+
pa = p0.dup()
|
75
|
+
pb = p1.dup()
|
76
|
+
|
77
|
+
# Make sure all coords of pa are < all coords of pb
|
78
|
+
if pa.x > pb.x
|
79
|
+
tmp = pa.x; pa.x = pb.x; pb.x = tmp
|
80
|
+
end
|
81
|
+
if pa.y > pb.y
|
82
|
+
tmp = pa.y; pa.y = pb.y; pb.y = tmp
|
83
|
+
end
|
84
|
+
if pa.z > pb.z
|
85
|
+
tmp = pa.z; pa.z = pb.z; pb.z = tmp
|
86
|
+
end
|
87
|
+
|
88
|
+
Begin(QUAD_STRIP)
|
89
|
+
|
90
|
+
# top
|
91
|
+
Vertex(pb.x, pb.y, pa.z)
|
92
|
+
Vertex(pa.x, pb.y, pa.z)
|
93
|
+
# top/front
|
94
|
+
Vertex(pb.x, pb.y, pb.z)
|
95
|
+
Vertex(pa.x, pb.y, pb.z)
|
96
|
+
# front/bottom
|
97
|
+
Vertex(pb.x, pa.y, pb.z)
|
98
|
+
Vertex(pa.x, pa.y, pb.z)
|
99
|
+
# bottom/back
|
100
|
+
Vertex(pb.x, pa.y, pa.z)
|
101
|
+
Vertex(pa.x, pa.y, pa.z)
|
102
|
+
# back/top
|
103
|
+
Vertex(pb.x, pb.y, pa.z)
|
104
|
+
Vertex(pa.x, pb.y, pa.z)
|
105
|
+
|
106
|
+
End()
|
107
|
+
|
108
|
+
Begin(QUADS)
|
109
|
+
|
110
|
+
# left
|
111
|
+
Vertex(pa.x, pa.y, pb.z)
|
112
|
+
Vertex(pa.x, pa.y, pa.z)
|
113
|
+
Vertex(pa.x, pb.y, pa.z)
|
114
|
+
Vertex(pa.x, pb.y, pb.z)
|
115
|
+
|
116
|
+
# right
|
117
|
+
Vertex(pb.x, pa.y, pb.z)
|
118
|
+
Vertex(pb.x, pa.y, pa.z)
|
119
|
+
Vertex(pb.x, pb.y, pa.z)
|
120
|
+
Vertex(pb.x, pb.y, pb.z)
|
121
|
+
|
122
|
+
End()
|
123
|
+
end
|
124
|
+
|
125
|
+
# sphere() (and buildSphere()) - generate a triangle mesh approximating
|
126
|
+
# a sphere by recursive subdivision. First approximation is an
|
127
|
+
# octahedron; each level of refinement increases the number of
|
128
|
+
# triangles by a factor of 4.
|
129
|
+
#
|
130
|
+
# Level 3 (128 triangles) is a good tradeoff if gouraud shading is used
|
131
|
+
# to render the database.
|
132
|
+
#
|
133
|
+
# Usage: sphere [level] [counterClockwise]
|
134
|
+
#
|
135
|
+
# The value level is an integer >= 1 setting the recursion level
|
136
|
+
# (default = DEFAULT_SPHERE_ITERATIONS).
|
137
|
+
# The boolean counterClockwise causes triangles to be generated
|
138
|
+
# with vertices in counterclockwise order as viewed from
|
139
|
+
# the outside in a RHS coordinate system. The default is
|
140
|
+
# counter-clockwise.
|
141
|
+
#
|
142
|
+
# @author Jon Leech (leech@cs.unc.edu) 3/24/89 (C version)
|
143
|
+
# Ruby version by Jim Menard (jimm@io.com), May 2001.
|
144
|
+
def Graphics.sphere(iterations = DEFAULT_SPHERE_ITERATIONS,
|
145
|
+
counterClockwise = true)
|
146
|
+
if @@spheres[iterations].nil?
|
147
|
+
@@spheres[iterations] = buildSphere(iterations, OCTAHEDRON)
|
148
|
+
end
|
149
|
+
sphere = @@spheres[iterations]
|
150
|
+
|
151
|
+
Begin(TRIANGLES)
|
152
|
+
sphere.each { | triangle |
|
153
|
+
triangle.points.each { | p |
|
154
|
+
Vertex(p.x, p.y, p.z) if counterClockwise
|
155
|
+
Vertex(p.z, p.y, p.x) if !counterClockwise
|
156
|
+
}
|
157
|
+
}
|
158
|
+
End()
|
159
|
+
end
|
160
|
+
|
161
|
+
#
|
162
|
+
# Subdivide each triangle in the oldObj approximation and normalize
|
163
|
+
# the new points thus generated to lie on the surface of the unit
|
164
|
+
# sphere.
|
165
|
+
# Each input triangle with vertices labelled [0,1,2] as shown
|
166
|
+
# below will be turned into four new triangles:
|
167
|
+
#
|
168
|
+
# Make new points
|
169
|
+
# a = (0+2)/2
|
170
|
+
# b = (0+1)/2
|
171
|
+
# c = (1+2)/2
|
172
|
+
# 1
|
173
|
+
# /\ Normalize a, b, c
|
174
|
+
# / \
|
175
|
+
# b/____\ c Construct new counter-clockwise triangles
|
176
|
+
# /\ /\ [a,b,0]
|
177
|
+
# / \ / \ [c,1,b]
|
178
|
+
# /____\/____\ [c,b,a]
|
179
|
+
# 0 a 2 [2,c,a]
|
180
|
+
#
|
181
|
+
#
|
182
|
+
# The normalize step (which makes each point a, b, c unit distance
|
183
|
+
# from the origin) is where we can modify the sphere's shape.
|
184
|
+
#
|
185
|
+
def Graphics.buildSphere(iterations, sphere)
|
186
|
+
oldObj = sphere
|
187
|
+
# Subdivide each starting triangle (maxlevel - 1) times
|
188
|
+
iterations -= 1
|
189
|
+
iterations.times {
|
190
|
+
# Create a new object. Allocate 4 * the number of points in the
|
191
|
+
# the current approximation.
|
192
|
+
newObj = Array.new(oldObj.length * 4)
|
193
|
+
|
194
|
+
j = 0
|
195
|
+
oldObj.each { | oldt |
|
196
|
+
# New midpoints
|
197
|
+
a = Point.midpoint(oldt.points[0], oldt.points[2])
|
198
|
+
a.normalize!()
|
199
|
+
b = Point.midpoint(oldt.points[0], oldt.points[1])
|
200
|
+
b.normalize!()
|
201
|
+
c = Point.midpoint(oldt.points[1], oldt.points[2])
|
202
|
+
c.normalize!()
|
203
|
+
|
204
|
+
# New triangeles. Their vertices are counter-clockwise.
|
205
|
+
newObj[j] = Triangle.new(a, b, oldt.points[0])
|
206
|
+
j += 1
|
207
|
+
newObj[j] = Triangle.new(c, oldt.points[1], b)
|
208
|
+
j += 1
|
209
|
+
newObj[j] = Triangle.new(c, b, a)
|
210
|
+
j += 1
|
211
|
+
newObj[j] = Triangle.new(oldt.points[2], c, a)
|
212
|
+
j += 1
|
213
|
+
}
|
214
|
+
|
215
|
+
# Continue subdividing new triangles
|
216
|
+
oldObj = newObj
|
217
|
+
}
|
218
|
+
return oldObj
|
219
|
+
end
|
220
|
+
|
221
|
+
# Creates a circle in the X/Z plane. To have the circle's normal
|
222
|
+
# point down (-Y), specify clockwise instead of counter-clockwise.
|
223
|
+
# To create the circle in another plane, call OpenGL's Rotate() method
|
224
|
+
# before calling this.
|
225
|
+
def Graphics.circle(iterations = DEFAULT_SPHERE_ITERATIONS,
|
226
|
+
counterClockwise = true)
|
227
|
+
if @@circles[iterations].nil?
|
228
|
+
@@circles[iterations] = buildCircle(iterations, SQUARE)
|
229
|
+
end
|
230
|
+
circle = @@circles[iterations]
|
231
|
+
|
232
|
+
Begin(TRIANGLE_FAN)
|
233
|
+
Vertex(0, 0, 0)
|
234
|
+
if counterClockwise
|
235
|
+
circle.each { | p | Vertex(p.x, 0, p.z) }
|
236
|
+
else
|
237
|
+
circle.reverse.each { | p | Vertex(p.x, 0, p.z) }
|
238
|
+
end
|
239
|
+
End()
|
240
|
+
end
|
241
|
+
|
242
|
+
# Different than buildSphere because we are creating triangles to
|
243
|
+
# be used in an OpenGL TRIANGLE_FAN operation. Thus the first point
|
244
|
+
# (the center) is always inviolate. We create new points between
|
245
|
+
# the remaining points.
|
246
|
+
def Graphics.buildCircle(iterations, circle)
|
247
|
+
oldObj = circle
|
248
|
+
# Subdivide each starting line segment (maxlevel - 1) times
|
249
|
+
iterations -= 1
|
250
|
+
iterations.times {
|
251
|
+
# Create a new object. Allocate 2 * the number of points in the
|
252
|
+
# the current approximation. Subtract one because the last point
|
253
|
+
# (same as the first point) is simply copied.
|
254
|
+
newObj = Array.new(oldObj.length * 2 - 1)
|
255
|
+
|
256
|
+
prevP = nil
|
257
|
+
j = 0
|
258
|
+
oldObj.each { | p |
|
259
|
+
if !prevP.nil?
|
260
|
+
newObj[j] = prevP
|
261
|
+
j += 1
|
262
|
+
|
263
|
+
# New midpoint
|
264
|
+
a = Point.midpoint(prevP, p)
|
265
|
+
a.normalize!()
|
266
|
+
newObj[j] = a
|
267
|
+
j += 1
|
268
|
+
end
|
269
|
+
prevP = p
|
270
|
+
}
|
271
|
+
newObj[j] = prevP # Copy last point
|
272
|
+
|
273
|
+
# Continue subdividing new triangles
|
274
|
+
oldObj = newObj
|
275
|
+
}
|
276
|
+
return oldObj
|
277
|
+
end
|
278
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2001 by Jim Menard <jimm@io.com>
|
3
|
+
#
|
4
|
+
# Released under the same license as Ruby. See
|
5
|
+
# http://www.ruby-lang.org/en/LICENSE.txt.
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'singleton'
|
9
|
+
|
10
|
+
$PARAMS = {
|
11
|
+
'world_sleep_millis' => 75,
|
12
|
+
'world_width' => 400,
|
13
|
+
'world_height' => 400,
|
14
|
+
'world_depth' => 400,
|
15
|
+
'window_width' => 500,
|
16
|
+
'window_height' => 500,
|
17
|
+
'flock_boids' => 10,
|
18
|
+
'boid_max_speed' => 30,
|
19
|
+
'boid_bounds_limit_pull' => 5,
|
20
|
+
'boid_bounds_limit_above_ground_level' => 5,
|
21
|
+
'boid_wing_length' => 10,
|
22
|
+
'boid_personal_space_dist' => 12,
|
23
|
+
'boid_square_of_personal_space_dist' => 144,
|
24
|
+
'boid_max_perching_turns' => 150,
|
25
|
+
'boid_perch_wing_flap_percent' => 30,
|
26
|
+
'cloud_count' => 10,
|
27
|
+
'cloud_min_speed' => 2,
|
28
|
+
'cloud_max_speed' => 50,
|
29
|
+
'cloud_min_bubbles' => 3,
|
30
|
+
'cloud_max_bubbles' => 10,
|
31
|
+
'cloud_max_bubble_radius' => 10,
|
32
|
+
'cloud_min_altitude' => 250,
|
33
|
+
'camera_x' => 0,
|
34
|
+
'camera_y' => 0,
|
35
|
+
'camera_z' => 60,
|
36
|
+
'camera_rot_x' => 50,
|
37
|
+
'camera_rot_y' => 10,
|
38
|
+
'camera_rot_z' => 0,
|
39
|
+
'camera_zoom' => 1
|
40
|
+
}
|
41
|
+
|
42
|
+
class Params
|
43
|
+
|
44
|
+
@@reals = %w(
|
45
|
+
world_width
|
46
|
+
world_height
|
47
|
+
world_depth
|
48
|
+
boid_max_speed
|
49
|
+
boid_bounds_limit_pull
|
50
|
+
boid_bounds_limit_above_ground_level
|
51
|
+
boid_wing_length
|
52
|
+
boid_personal_space_dist
|
53
|
+
boid_square_of_personal_space_dist
|
54
|
+
cloud_min_speed
|
55
|
+
cloud_max_speed
|
56
|
+
cloud_max_bubble_radius
|
57
|
+
cloud_min_altitude
|
58
|
+
camera_x
|
59
|
+
camera_y
|
60
|
+
camera_z
|
61
|
+
camera_rot_x
|
62
|
+
camera_rot_y
|
63
|
+
camera_rot_z
|
64
|
+
camera_zoom
|
65
|
+
)
|
66
|
+
|
67
|
+
def Params.readParamsFromFile(paramFileName)
|
68
|
+
File.open(paramFileName).each { | line |
|
69
|
+
line.chomp!
|
70
|
+
next if line.empty? || line =~ /^#/
|
71
|
+
|
72
|
+
key, value = line.split(/\s*=\s*/)
|
73
|
+
next unless value
|
74
|
+
key.downcase!()
|
75
|
+
key.gsub!(/\./, '_')
|
76
|
+
|
77
|
+
isReal = @@reals.include?(key)
|
78
|
+
value = value.to_f if isReal
|
79
|
+
value = value.to_i if !isReal
|
80
|
+
$PARAMS[key] = value
|
81
|
+
}
|
82
|
+
$PARAMS['boid_square_of_personal_space_dist'] =
|
83
|
+
$PARAMS['boid_personal_space_dist'] *
|
84
|
+
$PARAMS['boid_personal_space_dist']
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
@@ -0,0 +1,153 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2001 by Jim Menard <jimm@io.com>
|
3
|
+
#
|
4
|
+
# Released under the same license as Ruby. See
|
5
|
+
# http://www.ruby-lang.org/en/LICENSE.txt.
|
6
|
+
#
|
7
|
+
|
8
|
+
class Point
|
9
|
+
|
10
|
+
attr_accessor :x, :y, :z
|
11
|
+
|
12
|
+
# Return a new Point that is the midpoint on the line between two
|
13
|
+
# points.
|
14
|
+
def Point.midpoint(a, b)
|
15
|
+
return Point.new((a.x + b.x) * 0.5, (a.y + b.y) * 0.5,
|
16
|
+
(a.z + b.z) * 0.5)
|
17
|
+
end
|
18
|
+
|
19
|
+
def initialize(x = 0, y = 0, z = 0)
|
20
|
+
if x.kind_of?(Point)
|
21
|
+
@x = x.x
|
22
|
+
@y = x.y
|
23
|
+
@z = x.z
|
24
|
+
else
|
25
|
+
@x = x
|
26
|
+
@y = y
|
27
|
+
@z = z
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
ORIGIN = Point.new(0, 0, 0)
|
32
|
+
|
33
|
+
def ==(point)
|
34
|
+
return point.kind_of?(Point) &&
|
35
|
+
@x == point.x && @y == point.y && @z == point.z
|
36
|
+
end
|
37
|
+
|
38
|
+
# Normalize this point.
|
39
|
+
def normalize!
|
40
|
+
mag = @x * @x + @y * @y + @z * @z
|
41
|
+
if mag != 1.0
|
42
|
+
mag = 1.0 / Math.sqrt(mag)
|
43
|
+
@x *= mag
|
44
|
+
@y *= mag
|
45
|
+
@z *= mag
|
46
|
+
end
|
47
|
+
return self
|
48
|
+
end
|
49
|
+
|
50
|
+
# Return a new point that is a normalized version of this point.
|
51
|
+
def normalize
|
52
|
+
return self.dup().normalize!()
|
53
|
+
end
|
54
|
+
|
55
|
+
# Return a new point that is the cross product of this point and another.
|
56
|
+
# The cross product of two unit vectors is another vector that's at
|
57
|
+
# right angles to the first two (for example, a surface normal).
|
58
|
+
def crossProduct(p)
|
59
|
+
return Point.new(@y * p.z - @z * p.y, @z * p.x - @x * p.z,
|
60
|
+
@x * p.y - @y * p.x)
|
61
|
+
end
|
62
|
+
|
63
|
+
# Return the (scalar) dot product of this vector and another.
|
64
|
+
# The dot product of two vectors produces the cosine of the angle
|
65
|
+
# between them, multiplied by the lengths of those vectors. (The dot
|
66
|
+
# product of two normalized vectors equals cosine of the angle.)
|
67
|
+
def dotProduct(p)
|
68
|
+
return @x * p.x + @y * p.y + @z * p.z
|
69
|
+
end
|
70
|
+
|
71
|
+
# Return square of distance between this point and another.
|
72
|
+
def squareOfDistanceTo(p)
|
73
|
+
dx = p.x - @x
|
74
|
+
dy = p.y - @y
|
75
|
+
dz = p.z - @z
|
76
|
+
return dx * dx + dy * dy + dz * dz
|
77
|
+
end
|
78
|
+
|
79
|
+
# Return distance between this point and another.
|
80
|
+
def distanceTo(p)
|
81
|
+
dx = p.x - @x
|
82
|
+
dy = p.y - @y
|
83
|
+
dz = p.z - @z
|
84
|
+
return Math.sqrt(dx * dx + dy * dy + dz * dz)
|
85
|
+
end
|
86
|
+
|
87
|
+
def add(d)
|
88
|
+
@x += d
|
89
|
+
@y += d
|
90
|
+
@z += d
|
91
|
+
return self
|
92
|
+
end
|
93
|
+
|
94
|
+
def addPoint(p)
|
95
|
+
@x += p.x
|
96
|
+
@y += p.y
|
97
|
+
@z += p.z
|
98
|
+
return self
|
99
|
+
end
|
100
|
+
|
101
|
+
|
102
|
+
def subtract(d)
|
103
|
+
@x -= d
|
104
|
+
@y -= d
|
105
|
+
@z -= d
|
106
|
+
return self
|
107
|
+
end
|
108
|
+
|
109
|
+
def subtractPoint(p)
|
110
|
+
@x -= p.x
|
111
|
+
@y -= p.y
|
112
|
+
@z -= p.z
|
113
|
+
return self
|
114
|
+
end
|
115
|
+
|
116
|
+
|
117
|
+
def multiplyBy(d)
|
118
|
+
@x *= d
|
119
|
+
@y *= d
|
120
|
+
@z *= d
|
121
|
+
return self
|
122
|
+
end
|
123
|
+
|
124
|
+
def multiplyByPoint(p)
|
125
|
+
@x *= p.x
|
126
|
+
@y *= p.y
|
127
|
+
@z *= p.z
|
128
|
+
return self
|
129
|
+
end
|
130
|
+
|
131
|
+
def divideBy(d)
|
132
|
+
@x = @x / d
|
133
|
+
@y = @y / d
|
134
|
+
@z = @z / d
|
135
|
+
return self
|
136
|
+
end
|
137
|
+
|
138
|
+
def divideByPoint(p)
|
139
|
+
@x = @x / p.x
|
140
|
+
@y = @y / p.y
|
141
|
+
@z = @z / p.z
|
142
|
+
return self
|
143
|
+
end
|
144
|
+
|
145
|
+
def to_a
|
146
|
+
return [@x, @y, @z]
|
147
|
+
end
|
148
|
+
|
149
|
+
def to_s
|
150
|
+
return "Point<#{@x}, #{@y}, #{@z}>"
|
151
|
+
end
|
152
|
+
|
153
|
+
end
|