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 <nicolas.lusa@usi.ch>wrote:
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 <roniesalg@gmail.com>wrote:
RonieBest regards,Try the following in the playground: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 <nicolas.lusa@usi.ch>:
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 <alexandre.bergel@me.com>wrote:
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
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On Apr 22, 2015, at 9:07 AM, Lusa Nicolas <nicolas.lusa@usi.ch> wrote:
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