1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824
|
2007-04-23T06:35 C.J. Adams-Collier <cjac@colliertech.org>
* gtkglarea/Makefile.am
- removed generated-stamp and generated/* from CLEANFILES
- added generated/* and generated-stamp to EXTRA_DIST so that the
build no longer requires that the builder have gapi
* configure.ac
- did a bunch of clean-up
* gtkglarea/generated
- Added gtkglarea/generated/*.cs to svn so they don't need to be
generated
* TODO
- added some things I'd like to do/see done
2007-04-09T20:54 C.J. Adams-Collier <cjac@colliertech.org>
- cleaned up example makefiles using automake's include
* examples/.../Makefile.am
- re-factored to take advantage of new Include.am files
* examples/Include.am
- placed common MCS_ARGS, MONO_PATH, CLEANFILES, EXTRA_DIST,
$(ASSEMBLY): target, run: target, and all: target here
* examples/glade/Include.am,
* examples/shapes/Include.am,
* examples/util/Include.am
- placed MCS_ARGS, MONO_PATH, and RESOURCE_FILES specific to these
libs here
* README
- updated
* configure.ac
- added AC_SUBST for variables that need to be set for the
Include.am files to function correctly
- added a HAS_TAO_OPENGL conditional to help decide whether to
build examples
* Makefile.am
- using HAS_TAO_OPENGL to decide whether to build examples/*
* gtkglarea/Makefile.am
- replaced duplicated strings with variables
- cleaned up a bit
2007-04-08T20:32 C.J. Adams-Collier <cjac@colliertech.org>
* examples/pick-object/Engine.cs
- made comments more specific
- cube now throbs, too
2007-04-08T08:56 C.J. Adams-Collier <cjac@colliertech.org>
* */Makefile.am
- ensured that 'make distcheck' completes successfully
- building .dll files for classes used outside of each particular
directory and using -lib: and -r: instead of mentioning the .cs
explicitly (Teapot.cs, GladeExample.cs, Trackball.cs)
- using $(addprefix $(srcdir)/, $(SOURCE_FILES)) instead of
$(SOURCE_FILES) so that builddir can differ from srcdir
- added *.mdb to CLEANFILES
- using -lib:@top_builddir@ instead of -lib:$(top_srcdir) so that
source can be built from somewhere other than the source dir
* configure.ac
- using more modern version of AC_INIT
- explicitly using tar-ustar and requiring automake 1.9
- bumped version to 0.0.16
- using AC_CONFIG_FILES to specify files
- using non-deprecated AC_OUTPUT macro
2007-04-07T13:39 C.J. Adams-Collier <cjac@colliertech.org>
- modified svn:ignore properties
* examples/util/GLObjectBase.cs
- set defaults for translation matrix values
- set defaults for scale matrix values
- added some docs describing what trans and scale matrix values
are being set to
- setting scale matrix correctly
* examples/util/GLWidget.cs
- replaced iterator with foreach
* examples/pick-object/ObjectPickExample.mdp
- removed dependency on trackball assembly
- replaced Tao.OpenGl 0.0.0.0 and Tao.OpenGl.Glu with Tao.OpenGl
2.1.1.0
* examples/pick-object/Engine.cs
- fixed the Throb() method
* examples/pick-object/PickWidget.cs
- removed Trackball-related code
* gtkglarea/Makefile.am
- created the generated/ directory at make time
- created teh docs/ directory at make time
- re-formatted the gtkglarea-sharp.dll mcs line
- added a -doc: argument to the mcs line
- added a -package: line to the gacutil line
* examples/GtkGlAreaSharpExamples.mds
- removed LWObjectExample, since it's broken and breaking the
build
2007-04-06T15:40 C.J. Adams-Collier <cjac@colliertech.org>
- added svn:ignore to all directories
* configure.ac
- cleaned up MCS definition
- fixed the Tao dependency check
* examples/NeHe/NeHe.mds
- Meh. Attribute order changed by md
* */*.mdp
- clr-version="Net_2_0"
- ensured that the project runs correctly
* */Makefile.am
- changed mcs to $(MCS)
* examples/NeHe/Lessons/*/Makefile.am
- changed -pkg:tao-opengl to -pkg:Tao.OpenGl
- fixed MONO_PATH to include examples/shapes/
* examples/shapes/Teapot.cs, examples/rotate-buttons/OldTeapot.cs
- removed ref attribute from call to gl.glMap2f
2007-03-07 C.J. Adams-Collier <cjcollier@colliertech.org>
Cleaning up build
* configure.ac
- Tao.Opengl -> Tao.OpenGl
* examples/NeHe/Lessons/0*/Lesson0*.cs
- renamed window to glwidget
2006-11-10 C.J. Adams-Collier <cjcollier@colliertech.org>
Submission made on behalf of "Nick" <Xedecimal@gmail.com>
* examples/glade/Engine.cs
- Added lots of comments
- replaced multiple calls to Show() with a single ShowAll()
* examples/glade/GladeExample.cs
- added [Widget] attributes to Gtk widgets
- renamed "window" to "glwidget" to match the .glade file
- added lots of comments
- added modal dialog thinger
* examples/resources/glwidget.glad
- added dialog for modal test
2006-10-21 C.J. Adams-Collier <cjcollier@colliertech.org>
* TODO
- noted a need to remove hard dependency on Tao.*
- also noted that we should build examples if we find Tao.*,
otherwise not
2006-06-19T13:57 C.J. Adams-Collier <cjcollier@colliertech.org>
re-factored code under the examples/MdlLoader directory
2006-06-19 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview: This concludes the translation of the C version of
Jenkara's mdl loader to C#. To load a given .mdl file,
instantiate the MdlLoader and call the Load() method on the
object, passing the filename of the data file to load. It won't
do anything but print debugging info to STDOUT, but it looks like
it correctly reads all the bytes :)
* examples/MdlLoader/MdlLoader.cs
- made struct members public
- created readFrameData(), which reads frame data from the fstream
passed as an argument. Number of frames is retrieved from the
mdl_t which is also passed as an argument
- created readDAliasFrame(), which reads a frame from the fstream
passed as an argument
- created readDAliasGroup(), which reads a frame group from the
fstream passed as an argument
- created readTriVertX(), which reads a triangle and light normal
index from the fstream passed as an argument
2006-06-18T19:56 C.J. Adams-Collier <cjcollier@colliertech.org>
* examples/MdlLoader/MdlLoader.cs
- implemented methods to read the mdl_t struct and
texgroup_struct[] array
- publicized struct members
- created a Mdl class and stub constructor
* examples/MdlLoader/Makefile.am
- added nowarn for warning #0169
* examples/MdlLoader/Engine.cs
- instantiating a Mdl.Mdl class
2006-06-18 C.J. Adams-Collier <cjcollier@colliertech.org>
* examples/MdlLoader
- Created a set of build files to get the project off the ground
2006-04-12 C.J. Adams-Collier <cjcollier@colliertech.org>
* examples/util/EulerRotation.cs
- Made EulerRotation.GimbalLock.GimbalLock() public
* configure.ac
- bumped version to 0.0.16
2006-01-25T13:27 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview: Added examples/pick-object and got the pyramid to throb
* configure.ac
- bumped version
- added examples/pick-object/Makefile
* TODO
- removed some items, added others
* checkbuild.sh.in
- added pgp key signing
- generalized the file a bit
* examples/NeHe/Lessons/04/Lesson04.mdp
- removed shapes from this project. Getting them from shapes.dll
* examples/NeHe/Lessons/04/Makefile.am
- corrected a typo
* examples/NeHe/Lessons/04/Lesson04.cs
- qualified shape names
* examples/NeHe/Lessons/05/Lesson05.mdp
- removed shapes from this project. Getting them from shapes.dll
- added a reference to ShapesExample
* examples/NeHe/Lessons/05/Makefile.am
- removed shapes
* examples/trackball/Makefile.am
- added --debug to mcs args
- added Teapot.cs from shapes/
- added shapes/ dir to -libs list
* examples/trackball/TrackballExample.mdp
- added Trackball.cs
* examples/GtkGlAreaSharpExamples.mds
- added ObjectPickExample and ShapesExample, LWObjectExample
* examples/lwo/lw.c
- yoinked from gtkglarea
* examples/lwo/lw.h
- see above
* examples/lwo/penguin.lwo
- also the same
* examples/shapes/ColoredTriangle.cs
- changed namespace
* examples/shapes/Cube.cs
- changed namespace
- changed color3f to color4f
* examples/shapes/Square.cs
- changed namespace
* examples/shapes/Triangle.cs
- changed namespace
* examples/shapes/ColoredSquare.cs
- changed namespace
* examples/Makefile.am
- added the pick-object/ directory to the list of SUBDIRS
* examples/rotate-buttons/OldGLObjectBase.cs
- tweaked the API so it follows the same API, but doesn't
implement much of the functionality. Really, folks... don't use
this one. Go with the other one. I should throw NotImplemented
exceptions.
* examples/pick-object/ObjectPickExample.mdp
- created a new MDP
* examples/pick-object/Engine.cs
- This is where the Throb() method is implemented. It is also
where the GL window is instantiated.
* examples/pick-object/Makefile.am
2006-01-25 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview: Added beginnings of support for gtkglext in this package
* sources/gtkglext-sharp.sources.xml
- Added a sources file that describes the code hierarchy
* sources/Makefile.am
- added the commands and variables for GTKGLEXT
* gtkglext/
- created a directory for the generated code to live in
2006-01-12T17:39 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview: Changed internal representation of Translation, Scale
and Rotation from Euler Rotation + Quaternion + Rotation Matrix to
Quaternion + scale vector + translation vector. I moved the old
code into rotate-buttons, which is the only example that relies on
internal representation as Euler angles. This change makes NeHe
example 4 work correctly
* 04/Lesson04.mdp
- added Colored*.cs
* 04/Makefile.am
- added Colored*.cs
- added reference to GladeExample.cs
- added run: target
- using $(SOURCE_FILES)
* 04/Lesson04.cs
- changed namespace name to NeHe
- threw out old code and replaced with the new hotnes from
...-util. Read the diff :)
* util/GLObjectBase
- re-factored euler rotations out and quaternion + scale,
translation vectors in
- TransMatrix get{} now constructs a translation matrix from the
quat and vectors
- all of the set{}s now manipulate quat, translation, and scale
- Translate() now manipulates translation
- Rotate() methods now convert the passed arg and call the quat version
- ResetRotation() sets Quat instead of ERot
- GetTransformationMatrix() now returns TransMatrix
- Draw now calls glMultMatrixd(this.TransMatrix.Matrix)
2006-01-12 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview: removed lighting from default GtkGL.GLWidget
configuration. The examples that use lighting now explicitly turn
it on. The GL Window is hidden by default. The examples that use
it must explicitly .Show() it. ColoredTriangle and ColoredSquare
classes are now fully implemented, and NeHe lesson 03 now uses
them. Added the NeHe.mds solution.
* 01/Lesson01.cs
- re-factored to use GtkGL.GladeExample class for basic class
construction
* 01/Makefile.am
- Added dependancy on GladeExample.cs
- added a run target
- added $(SOURCE_FILES) to mcs commandline instead of explicitly
listing the .cs file
* 02/Square.cs
- now in the NeHe namespace
- Renamed DrawSquare to DrawObject (changed this in GLObjectBase, too)
- re-factored common code into GLObjectBase
* 02/Lesson02.cs
- re-factored common code into GladeExample and GLObjectBase
* 02/Makefile.am
- added dependency on GladeExample.cs
- created run: target
* 02/Triangle.cs
- see Square.cs
* 03/ColoredTriangle
- created. Based on 02/Triangle, but colored :)
* 03/Lesson03.mdp
- added Colored*
* 03/Makefile.am
- added GladeExample and Colored* to the dependency list
- added run: target
- now using $(SOURCE_FILES)
* 03/Lesson03.cs
- see 02/Lesson02.cs
* 03/ColoredSquare
- see 03/ColoredTriangle
* trackball/TrackballExample.cs
- now explicitly showing the window and glw
* trackball/TrackballWidget.cs
- explicitly enabled lighting
* trackball/Makefile.am
- added the .pidb file to CLEAN targets
* rotate-button/RotateButtonExample.cs
- explicitly enabled lighting
- now explicitly showing the window and glw
* glade/GladeExample.mdp
- added Engine.cs
* glade/Makefile.am
- added Engine.cs
* glade/GladeExample.cs
- re-factored common stuff into GladeExample and specific stuff
into Engine
* util/Teapot.cs
- re-named DrawTeapot to DrawObject in order to make the method
more generic
- moved common methods into GtkGL.GLObjectBase
* util/GLObjectBase.cs
- Now firing the Updated handler from here
- placed generic Init() method here
- Quat is protected
- TransMatrix is protected
* GLWidget.cs
- corrected incorrect comment
- moved the Clear command to before the LoadIdentity call
- added an EnableLighting method
- added an eventHandler to make extending the GL setup easier
- moved GL setup into InitGL()
2006-01-11T19:10 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview: Moved Lessons/Lesson0N.* to Lessons/0N/Lesson0N.*,
removed excess debug print statements, moved Triangle.cs and
Square.cs into NeHe/Lessons/02/
2006-01-11 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview:Renamed RotationMatrix to TransformationMatrix (I'm
thinking of getting rid of the matrix and replacing it with a
quaternion for rotation + a vector for scale and a vector for
translation). Triangle and Square objects now draw themselves
correctly. I've also had a chance to straighten out the IGLObject
Translate() methods.
* configure.ac
- Bumped version
* TODO
- removed GimbalLock issue from TODO list
- added item for re-factoring Euler angles
- added item for .mdl / .md3 files
* examples/NeHe/Lessons/Lesson01.cs
- changed namespace from NeHe.Lesson01 to NeHe
- basically replaced with GladeExample code
* examples/NeHe/Lessons/Lesson02.cs
- changed namespace from NeHe.Lesson02 to NeHe
- added Triangle, Square objects. Translated them
- removed methods that are implemented in GLObjectBase
- added onquit and onwindowdeleteevent methods
* examples/NeHe/Lessons/Makefile.am
- re-organized sources into SOURCE_FILES
- created a MCS_ARGS variable to reduce duplicate code
* examples/trackball/TrackballExample.mdp
- added resources directory to project
* examples/GtkGlAreaSharpExamples.mds
- renamed *test to *example
- added NeHe project
- added GtkGLAreaUtil
- added GladeExample
* examples/util/TransformationMatrix.cs
- renamed from RotationMatrix.cs
- added operator *()
* examples/util/Teapot.cs
- added Translate() methods
* examples/util/EulerRotation.cs
- renamed rotationmatrix to transformationmatrix
* examples/util/IGLObject.cs
- added Translate() methods
- renamed rotationmatrix to transformationmatrix
* examples/util/GLObjectBase.cs
- renamed rotationmatrix to transformationmatrix
* examples/util/RotationMatrix.cs
- renamed to TransformationMatrix.cs
* examples/util/Makefile.am
- renamed rotationmatrix to transformationmatrix
- added Triangle, Square
* examples/util/Quaternion.cs
- renamed rotationmatrix to transformationmatrix
* examples/util/GLWidget.cs
- moved the projection translation into the resize handler
2006-01-10 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview: Moved common code into examples/util/ and compiled them
down to a gtkglarea-sharp-util.dll file. I added a make run entry
for each of the examples, since they require a modification to the
MONO_PATH environment variable.
2006-01-09 C.J. Adams-Collier <cjcollier@colliertech.org>
* examples/trackball/Vector.cs
- New link to ../rotate-buttons/Vector.cs
* examples/trackball/TrackballWidget.cs
- removed debug print statements
* examples/trackball/Makefile.am
- Added Vector.cs
* examples/trackball/trackballTest.mdp
- re-structured for new code
* examples/GtkGlAreaSharpExamples.mds
- removed old project
- added new projects
! moved common to util:
examples/common
examples/common/Teapot.cs
examples/common/glwidget.glade
examples/common/Trackball.cs
examples/common/Makefile.am
examples/common/GLWidget.cs
* examples/rotate-buttons/GLObjectBase.cs
- changed += to *=
* examples/rotate-buttons/Quaternion.cs
- shortened line
- changed operator+ to operator*
- re-wrote operator* based on Vector code
- removed Vector-specific code and placed in Vector.cs
* examples/rotate-buttons/Vector.cs
- Moved vector-specific code from Quaternion.cs to Vector.cs
* examples/resources
- created a directory to contain images and glade-ish things
* examples/util
- renamed common to util
2006-01-06T15:17 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview: Applying new classes from rotate-buttons to this
example. Linked to the new class files from ../rotate-buttons and
got a compiling version working. Runtime errors, though.
* EulerRotation.cs
- created link
* trackballTest.cs
- There is now a class variable called glw
- Set glw to a new instance of TrackballWidget
- created a new Teapot
- added teapot to glw
- replaced glw.glArea with glw
* IGLObject.cs
- created link
* TrackballWidget.cs
- replaced the float[] quat with a Quaternion
- replaced glArea. with this.
- placed into the GtkGL. namespace
- when OnMotionNotify is called, all glObjects associated with
this glArea get Rotate()d
- removed onExposed. parent class will handle exposed event.
* GLObjectBase.cs
- created link
* RotationMatrix.cs
- created link
* Makefile.am
- re-structured to be like Makefile.am from ../rotation-buttons/
* Quaternion.cs
- created link
* GLWidget.cs
- created link
2006-01-06T12:06 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview: Fixed EulerRotation.ToRotationMatrix()
* examples/rotate-buttons/GLObjectRotationController.cs
- remove TODO from GLObjectRotationController.cs (complete)
- Created Get*Rotation, for Euler, Quaternion and Matrix
- fixed docs
* examples/rotate-buttons/ObjectRotationButton.cs
- added bools to make sure the handlers aren't connected >1 times
* examples/rotate-buttons/RotationMatrix.cs
- Added an operator + for RotationMatrix objects
* examples/rotate-buttons/GLObjectBase.cs
- made setting of euler, matrix, quat an atomic action
- cleaned up the Rotate() methods
- ResetRotation sets eRot to EulerRotation.Identity()
- added Get*Rotation() methods
* examples/rotate-buttons/Quaternion.cs
- added an Identity property
* examples/rotate-buttons/EulerRotation.cs
- added Get
- cleaned up the null test in operator +
- fixed the ToRotationMatrix() method
* examples/rotate-buttons/IGLObject.cs
- added Get*Rotation to the interface
2006-01-06 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview: GtkGL.Rotation has been deprecated. Now replaced with
one of EulerRotation, Quaternion or RotationMatrix. Replacing
float variables with double. Let's see how this works... Also,
turned on debugging symbols
* configure.ac
- bumped version to 0.0.8
* checkbuild.sh.in
- added command to push new version to colliertech.com/downloads/...
* examples/rotate-buttons/GLObjectRotationController.cs
- rather than storing a local copy, we get the rotation from the object
- using EulerRotation rather than Rotation
* examples/rotate-buttons/ObjectRotationButton.cs
- removed GtkGL.Rotation and replaced with GtkGL.EulerRotation
* examples/rotate-buttons/GLObjectBase.cs
- now using a GtkGL.RotationMatrix instead of a float[16]
- adding a GtkGL.EulerRotation and GtkGL.Quaternion for flavor
- added implementations of Rotate() that accept Quaternion,
EulerRotation and RotationMatrix
- removed the one that accepts GtkGL.Rotation
- ResetRotation sets the rotation to the identity rather than null
- GetRotation catches gimbal lock exception
- Instead of converting from RotationMatrix, it should return the local EulerRotation object.
* examples/rotate-buttons/RotationMatrix.cs
- Added file. Represents a Rotation Matrix
* examples/rotate-buttons/Quaternion.cs
- Added file. Represents a Quaternion
* examples/rotate-buttons/EulerRotation.cs
Added file. Represents a Euler Rotation
* examples/rotate-buttons/Teapot.cs
- replaced Rotate() methods with new versions
- changed f to d in glMultMatrixf
* examples/rotate-buttons/RotationUtil.cs
- removed EulerRotation, since there is now a EulerRotation.cs
- using Accessors rather than hitting the member variables directly
* examples/rotate-buttons/IGLObject.cs
- replaced GtkGL.Rotation version of Rotate with Euler, Quat and Matrix
* examples/rotate-buttons/Makefile.am
- added Euler Quat and Matrix cs files
- added -debug to the mcs command line
* examples/rotate-buttons/rotateButtonTest.mdp
- added Euler Quat and Matrix cs files
2006-01-02 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview: The entry fields may now be used to rotate the object as
well as the buttons. They are updated when the buttons are
pressed, and if a number is entered into them, the object is
rotated to that angle
* examples/rotate-buttons/Teapot.cs
- added methods to rotate and reset rotation that take a third
argument which indicates whether or not the handler should be
fired
* examples/rotate-buttons/GLObjectRotationController.cs
- added lots of documentation
- added a method to update the rotation of the object based on the
values entered into the entry fields
- aligned numbers left
- added the UpdateObjectRotation method to the event object's
Activated and FocusOutEvent events
* examples/rotate-buttons/RotationUtil.cs
- documented the EulerRotation struct
* examples/rotate-buttons/IGLObject.cs
- added the method signatures for optional Updated event firing
* examples/rotate-buttons/GLObjectBase.cs
- whitespace
2006-01-01 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview: Completed writing code to update the entry fields when
the +/- buttons are pressed
* examples/NeHe/Lessons/Makefile
- Added our build testing script
* examples/rotate-buttons/GLObjectRotationController.cs
- Added an EulerRotation object to the class to keep track of the
rotations represented to the user
- re-bound to ObjectRotationButton's Rotated event instead of
IGLObject's Updated event
- now resetting the Euler rotation values and re-displaying when
the reset button is triggered.
* examples/rotate-buttons/ObjectRotationButton.cs
- made the rotation member public
- added a Rotated event
! RotateObjects()
- fire the Rotated event after the object has been rotated
2005-12-31T22:46 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview: Entry fields are now filled in when the buttons are
pressed. Sort of. There's a gimbal lock error causing strange
things to happen. Try it out. Please tell me if you know how to
fix it.
* rotate-buttons/GLObjectRotationController.cs
- Created a Hashtable called entryMap. It maps between the keys,
'x', 'y', and 'z'.and the entry widgets (values) for X, Y and Z
rotation, respectively. I think of this as a %hash variable in
perl (pseudocode shown here):
%entryMap = (
chr('x') => gtkglWidget("X rotation entry widget"),
chr('y') => gtkglWidget("Y rotation entry widget"),
chr('z') => gtkglWidget("Z rotation entry widget"),
);
! UpdateRotationValues()
- This handler is connected to the IGLObject's Updated event
- Every time the object fires an Updated event, the Euler
rotation angles are calculated from the internal representation of
the object's rotation (currently a rotation matrix, possibly in
the future a quaternion) and displayed in the appropriate entry
widget.
! GLObjectRotationController()
- connect afore-mentioned handler to the Updated signal
- create afore-mentioned entryMap
* rotate-buttons/IGLObject.cs
- corrected a comment
- add a method to the interface requirements called GetRotation()
that returns an euler rotation. Perhaps it should be called
getEulerRotation() instead... Please don't consider this part of
the API hard and fast. Thanks.
* rotate-buttons/GLObjectBase.cs
- implemented above-mentioned GetRotation() method in this "base" class
* rotate-buttons/Makefile.am
- Added RotationUtil.cs and GLObjectRotationController.cs to the
prereqs list for rotateButtonTest.exe. I should have caught the
latter sooner than I did. But I haven't pushed a build in a
while, so it's okay :)
- added RotationUtil.cs to the mcs command line
* rotate-buttons/rotateButtonTest.mdp
- Added RotationUtil.cs to the mdp file
2005-12-31 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview: Created an GLObjectRotationController, which encompases
the object rotation UI and the handlers associated with it. This
controller contains ObjectRotationButton widgets; a Clockwise and
CounterClockwise button for each each axis, X, Y and Z. The
GLObjectRotationController class was refactored out of
rotateButtonTest.cs and lives in GLObjectRotationController.cs.
Also, the object manipulation widgegt was refactored from the
glwidget.glade file into its own rotation-controller.glade file
* examples/rotate-buttons/Teapot.cs
- explicitly specified "new" in method signature. Yes, we know
we're overriding.
* examples/rotate-buttons/GLObjectRotationController.cs
- created this file by refactoring code out of rotateButtonTest.cs
* IGLObject.cs: Newline changes
* GLObjectBase.cs
- swapped rotation directions. Had CC-wise going C-wise and vice versa
* Makefile.am
- Mentioned new .cs and .glade files
* rotateButtonTest.mdp
- Mentioned new .cs and .glade files
* GLWidget.cs
- now using Gtk
- AddGLObject(): Added object to list *after* connecting handler
- Init(): added some comments
- Init(): moved handlers into Init() from connectHandlers()
- deleted connectHandlers()
- OnSizeAllocated(): added comment, removed newline
- OnExposed(): modified comment, removed debugging message
- OnRealized(): Added comment, removed debugging message
- added OnQuit(), OnWindowDeleteEvent() handlers to the class
* rotation-controller.glade: Created
* rotateButtonTest.cs
- created a member variable for the glw widget
- same for GLObjectRotationController object
- refactored GLObjectRotationController code into new class
- moved GLWidget-specific handlers into GLWidget
2005-12-30 C.J. Adams-Collier <cjcollier@colliertech.org>
Overview: Rotation on button click has (finally) been implemented.
IGLObject objects are required to have an Update EventHandler now.
Update is triggered when rotations are applied. The same method
that the GLArea's OnExpose event handler fires off is now being
fired off by Teapot's Update EventHandler. Thus: a) button is
pressed which b) rotates object which c) triggers the Update
handler, which d) draws the glarea, including the object
* examples/rotate-buttons/Teapot.cs
- Created an EventHandler called Update which fires when object is rotated
- moved Draw() method. It now applies the rotation matrix, if one exists
- Rotate() method now hands work off to base.Rotate() (GLObjectBase.cs)
- Rotate() method now fires off the Updated event
- added ResetRotation() method
- ResetRotation() method calls base.ResetRotation() and then fires the Updated handler
* examples/rotate-buttons/Rotation.cs
- uhm... added a newline
* examples/rotate-buttons/ObjectRotationButton.cs
- ObjectRotationButton now contains an object that implemts IGLObject instead of a GLArea
- the member variable is now called glObject instead of glArea
- removed rotMult member variable definition. Should remove the variable, now that it's not used anymore.
- handing rotation code off to glObject.Rotate(rotAngle, rotation)
* examples/rotate-buttons/IGLObject.cs
- The interface now enforces the use of a Update event handler
- The interface now enforces the use of a ResetRotation() method
* examples/rotate-buttons/GLObjectBase.cs
- now using gl=Tao.OpenGl.Gl
- removed abstract Draw() method
- added a rotMatrix member variable
- the Rotate() method calculates a rotation matrix and stores it
in rotMatrix
- The rotMatrix can then be used when Draw() is called to rotate
the object as desired at draw time
- ResetRotation() merely sets the rotation matrix to null
* examples/rotate-buttons/Makefile.am
- added a bunch of .cs files to our EXTRA_DIST variable
* examples/rotate-buttons/GLWidget.cs
- created an AddGLObject(IGLObject ob) method
- This method adds the passed object to the widget's "associated"
object list
- removed teapot addition code from Init() (moved to
rotateButtonTest.cs
* examples/rotate-buttons/rotateButtonTest.cs
- in buildControlWindow(), the teapot is created and associated with the GLWidget
- ObjectRotationButton now takes an object that implements
IGLObject rather than a GLArea. teapot is being passed now
instead of glw
2005-12-29 C.J. Adams-Collier <cjcollier@colliertech.org>
* examples/rotate-buttons/Teapot.cs
- Copied from ../shared
- Will be merged back in after changes are complete to new code
- Teapot is now implements IGLObject and inherits from GLObjectBase
- The teapot is drawn and cached by calling Init()
- We now know how to Draw() ourselves.
* examples/rotate-buttons/Rotation.cs
- copied from ../shared
- Will be merged back in after changes are complete to new code
- This is a convenient way to refer to a clockwise or c-clockwise rotation in any direction
* IGLObject.cs
- This is an interface intended to make GL Object creation easier: Today, Teapots. Tomorrow the world. Or quake modles, or whatever.
* examples/rotate-buttons/ObjectRotationButton.cs
- This is a widget that inherits from Gtk.Button. It rotates a GLObject in a GtkGL.Rotation direction when the button is clicked.
- It is also the next file to get some love from yours truly
* examples/rotate-buttons/GtkGLObjectBase.cs
- This is where methods common to all GLObjects will be implemented
- Also, common member variables are defined here
* examples/rotate-buttons/Makefile.am
- added rotateButtonTest.exe target
* examples/rotate-buttons/rotateButtonTest.md[ps]
- created MonoDevelop solution. I don't think it works right now, but I will be maing it work in the futrue
* GLWidget.cs
- Copied from ../shared
- Will be merged back in after changes are complete to new code
- now inherits from GLArea
- we are now calling Teapot.Init() in order to build the teapot
- we are now calling Teapot.Draw() in order to draw the teapot
- GLWidget is now a GLArea, so we now use glw instead of glw.glArea
- there is a control widget. Did I mention I updated ../common/glwidget.glade ?
2005-12-25 C.J. Adams-Collier <cjcollier@colliertech.org>
* examples/trackball/shapes.cs:
- depricated this file. Soon it will be svn rm'd
- Broke up the content into examples/common/GlWidget.cs, TrackballWidget.cs and trackballTest.cs
* examples/trackball/Makefile.am:
- Corrected the all: target
- made the trackballTest.exe target work
- fixed EXTRA_DIST and CLEANFILES
* examples/common/glwidget.glade:
- changed from glwidgets to glwidget
- removed silly frame
- removed statusbar
* examples/common/GLWidget.cs:
- created a connectHandlers() method that the handler connection code lives in now
- added a link to the gluPerspective() man page
- made OnExposed() a protected method so GLWidget's derived classes can remove it from the event queue
- shapeList is now protected so derived classes can fiddle with it
* examples/glade/glwidget.glade
- moved the file to common/glwidget.glade
* examples/glade/Makefile.am:
- changed glwidget.glade to ../shared/glwidget.glade
* examples/trackball/trackballTest.cs:
- simple wrapper around TrackballWidget.cs
2005-12-23 C.J. Adams-Collier <cjcollier@colliertech.org>
* examples/: reorganized the examples that were there, added new ones
2005-12-13 C.J. Adams-Collier <cjcollier@colliertech.org>
* configure.am: added Makefiles for NeHe examples
* examples/NeHe: Created directory structure for NeHe examples
* examples/NeHe/Lesson01: Created a minimal OpenGL display
* examples/NeHe/Lesson02: Created a triangle, square display
|