Hi,
I am still working with Woden, in particular with Woden-Roassal and I noticed that rotations on objects are missing (I feel that this is weird that it doesn't have such feature so I am not excluding that I can be wrong but I didn't manage to find anything in the code to rotate objects). Now if I would like to rotate objects it wouldn't be too bad if I were using Woden at his "lowest layer" but I am actually building cubes with Woden-Roassal and there I get lost. I already made some rotations on Woden built arbitrary objects, now I would like to extend it to objects built from Woden-Roassal but I honestly miss on finding the connection between the two. I saw that the base shape is built in: RWCube>>#createBaseShapeNode, I would be able to build a rotated shape from there but that would result in all shapes being rotated in such way since in RWSimpleShape>>#buildRenderableFor:view: when we select the shape: baseShape := aView baseShapeNodeNamed: self baseShapeName ifAbsentPut: [ self createBaseShapeNode ]. we would get back the previous base shape defined. Any suggestions on how to do it? Cheers, Nicolas |
Hi Lusa,
Well spotted! I worked on the connection Woden <—> Roassal3d. I should be able to hook your rotation into roassal. Can you provide your fix for the rotation please? Cheers, Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
|
Hello mr. Bergel,
I actually have done something really simple. On the construction of a cube shape in WDGeometryBuilder I simply made a method looking as follows: WDGeometryBuilder>>#addCubeWithWidth: height: depth: rotatedBy: .
In the method I simply use the angle to compute the rotation when creating every single triangle (rotating every point of such triangle with respect to the y axis).
It would work smoothly if only few shapes would have been instantiated but unfortunately this results in a severe drop of performance since a new shape is created for every instance of an object (because the angle rotation is different for each shape).
If you still want the code I wrote for such rotation I can provide it to you, but probably that's not how proper rotations should be performed in woden.
Hopefully we can find a better solution that doesn't influence performance in such way.
Cheers,
Nicolas
P.S. I apologize for the misleading subject of the mail. I am not using Roassal3d but I am using a package called Woden-Roassal, which works almost exactly like Roassal3d (in fact I guess they are related somehow), that is in the Woden project as default.
A more appropriate e-mail subject would have been: Woden-Roassal (3d object rotations).
On Apr 24, 2015, at 10:49 PM, Alexandre Bergel <[hidden email]>
wrote:
|
Hello Mr. Lusa, Sorry for not answering earlier, I added the missing support for the rotations by adding some methods that changes the internal scene node orientation. I also did a small refactoring in the support for orientation, because I received email with an implementation of quaternions that I have review and integrate during the week.v := RWView new. element := RWCube element. element rotateByXDegrees: 60. v add: element. v open. 2015-04-27 3:55 GMT-03:00 Lusa Nicolas <[hidden email]>:
|
Hello mr. Salgado,
I've just tried it out really quickly and it looks awesome! Looking forward to use it in my project.
Thank you!
Cheers,
Nicolas
On Apr 27, 2015, at 9:36 AM, Ronie Salgado <[hidden email]>
wrote:
|
Hello it's me again,
I've been playing around a little and found a bug which makes all rotations the same. No matter which rotation you call it is always going to rotate around the X axis.
I guess that is due the fact that all the three rotations end up calling: (self class xrot: angle) * self, in the respective method. (i.e. WDMatrix3>>#RotatedByY:).
The fix is just to change the xrot with the respective rot of the axis that we are rotating.
Thanks again for the rotations.
Cheers,
Nicolas
On Apr 27, 2015, at 10:30 AM, Lusa Nicolas <[hidden email]>
wrote:
|
Here is the fix.
Check it out.
Cheers,
Nicolas
|
In reply to this post by Ronie Salgado
Le 27/4/15 09:36, Ronie Salgado a
écrit :
Nice nice nice. It was good that I mentioned to the rmoders than serge got quaternions :)
|
On Fri, May 1, 2015 at 12:15 PM, stepharo <[hidden email]> wrote:
> > > Le 27/4/15 09:36, Ronie Salgado a écrit : > > Hello Mr. Lusa, > > Sorry for not answering earlier, I added the missing support for the > rotations by adding some methods that changes the internal scene node > orientation. I also did a small refactoring in the support for orientation, > because I received email with an implementation of quaternions that I have > review and integrate during the week. > > > Nice nice nice. > It was good that I mentioned to the rmoders than serge got quaternions :) Great to see that the code of SciSmalltalk is reused ;-) Do you plan to use a fork or load only the related SciSmalltalk package containing Quaternions ? Regards -- Serge Stinckwich UCBN & UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://www.doesnotunderstand.org/ |
Free forum by Nabble | Edit this page |