Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / EZrotate Enhanced ~ Tech Demo

Author
Message
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 18th May 2004 00:05 Edited at: 18th May 2004 00:06
If you are unfamiliar with EZrotate, it is a cool little plug-in that I wrote to help people with the confusion of Euler angles. I have been working on an Enhanced version that is PACKED with cool features.

The link below is the first tech demo of some of the features of EZrotate enhanced. This will give you an idea of *some* of the things that it can do.

The demo shows:
-Global Rotation
-Local Rotation
-Rotate Towards Point
-Origin Vector Rotation
-Rotation Information including: Euler Angles, Matrix Data and Quaternion Data

http://www.ericksonline.com/EZRotate/enhanced/EZrotateEnhancedTech1.zip

If you haven't seen the *partial* document on my site of some of the features, you can see that here:
http://www.ericksonline.com/EZRotate/enhanced/EZrotateGuide.htm

Again, if anyone has ANY suggestions for additional commands, please let me know.

More coming soon....

-Ron

EZrotate!
Tokamak Physics Wrapper!
Lost in Thought
20
Years of Service
User Offline
Joined: 4th Feb 2004
Location: U.S.A. : Douglas, Georgia
Posted: 18th May 2004 00:34 Edited at: 18th May 2004 00:38
I'll check it out later. Work Sux

"People don't fail ..... they stop trying." Specs. P4 2.8GHz 800 FSB | 512MB DDR333
GeForce FX 5200 AGP 256MB | Windows XP Pro Full
Jess T
Retired Moderator
20
Years of Service
User Offline
Joined: 20th Sep 2003
Location: Over There... Kablam!
Posted: 18th May 2004 16:14
Looks good WOLF,

Only thing is... I am alright with the rotation in DBP, and looking at this, I can't really see the difference... Maybe if you made up an example that did the same thing ( rotation with Keys etc ) but using DarkBASIC's unbuilt commands, so that we can compare?

Good work though

Jess.


Team EOD :: Programmer/Logical Engineer/All-Round Nice Guy
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 18th May 2004 17:32 Edited at: 18th May 2004 17:37
Have you ever tried to globaly rotate an object in DB? It is NOT something that can be done without something like this.
Why? Because DBpro uses Euler angles. When you try to rotate something globaly, it will effect more than one Euler axis.

Local rotation works fine in DBpro (using PITCH,ROLL and TURN), except that it screws up the Euler angles that are returned when you check them. That makes it difficult to make good use of those commands because you never really know where your object is.

Those issues are taken care of with this plug-in.
In addition to that are some other cool features that allow you to do some other cool things very easily.

If you really want to see how Euler rotation isn't straight forward, I can write up a little demo to showcase DB's in-built commands. If you really want a challange, try to write a demo that does the same thing as mine. You'll see real quick how usefull the plug-in will be.

I just finished another little demo that showcases orbiting:
http://www.ericksonline.com/EZRotate/enhanced/EZrotateEnhancedTech2.zip

Note: the orbiting of the object is all done with 1 single command. The command specifies the location of the 2 points that make up the axis, the angle that you want to orbit, and if you want your object to rotate or not as it orbits.
The command used in the demo is:
EZro_ObjOrbit ObjNo,Point1X#,Point1Y#,Point1Z#,Point2X#,Point2Y#,Point2Z#,angle#,ROTATEFLAG

I am also using the Rotate Towards Point command to point the camera at the object. Again this is done with 1 single command:
EZro_CamRoTowardsPoint CamNo,OBJECT POSITION X(1),OBJECT POSITION Y(1),OBJECT POSITION Z(1),angle#,axis
It really is that easy.

Ron

EZrotate!
Tokamak Physics Wrapper!
Ditch
20
Years of Service
User Offline
Joined: 26th Apr 2004
Location: Virginia,US
Posted: 18th May 2004 22:08
I think this is exactly what I've been looking for. I am playing around with a space simulator and the rotations and angles are a killer! I'm downloading now and I'll check this out right away.

I can't wait to try the "orbit" command. It should work real well with a space simulator......orbiting planets, etc. Sweet!
Lost in Thought
20
Years of Service
User Offline
Joined: 4th Feb 2004
Location: U.S.A. : Douglas, Georgia
Posted: 17th Aug 2004 10:12
What's the status on this? Any relese date?

Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 19th Aug 2004 05:06
Well, since you asked....

EZrotate Enhanced has been complete for some time now.

There have been a couple of things pushing it back from getting released. The main reason is actually cool news. EZrotate Enhanced will be an official DBpro plugin released by TGC!
The online activation part of DBpro had to be complete before it could be released. It should now be available at the end of the month when the next news letter is released.
I have set-up a forum on my site for help/examples/feature requests/etc...

For a list and description of the current features, look in the anouncements section of the ericksonline forums.

http://www.ericksonline.com/support

Please let me know what you think!

WOLF

EZrotate!
Tokamak Physics Wrapper!
Lost in Thought
20
Years of Service
User Offline
Joined: 4th Feb 2004
Location: U.S.A. : Douglas, Georgia
Posted: 19th Aug 2004 05:46
Looks good to me. I'm looking forward to it.

Physics coder
19
Years of Service
User Offline
Joined: 25th May 2004
Location: United States
Posted: 19th Aug 2004 14:52
Sounds awesome, but when i click on the link to the zip i get:
Quote: "
Not Found
The requested URL /EZRotate/enhanced/EZrotateEnhancedTech2.zip was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


--------------------------------------------------------------------------------

Apache/1.3.29 Server at www.ericksonline.com Port 80
"

I looked at the feature list, looks great! I can't wait
My favorite commands will probably be
Find Point From Offset
Find Offset From Point

Is is possible to directly set the transformation matrix of an object for sheering as well as rotation?

-----------------------------------
To delete the bug, delete the code.
Specs: Sony VAIO Laptop, Windows XP, P4 2.8Ghz, 512MB RAM, ATI Radeon 64MB video memory, DBP Upgrade 5.3.
AsriCE
21
Years of Service
User Offline
Joined: 10th Jan 2003
Location: Brunei
Posted: 19th Aug 2004 16:55
Woah! Looks cool! I wanna try it, but I too get an error from the link above. Just a suggestion, since this plugin will be officially be apart of DBP, I suggest that the commands are to be named like any other native DBP commands so we'll feel like home

Something like:
1) EZROTATE OBJECT GLOBAL Object Number, X, Y, Z
2) EZROTATE OBJECT LOCAL Object Number, X, Y, Z
3) GET OBJECT ANGLE LOCAL X( Object Number )
4) etc...

That's just my suggestion though. The way it works currently is also simple enough already

AsriCE Crew,
- Adi

There's only one hope.
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 19th Aug 2004 19:36
The demos were from a while back. While they did show some of the features, they were outdated so I deleted them. There are 8 example programs that come with to show things such as waypoints, flight gauges, 3D-radar, and turrets. Since it is an official DBpro plugin, you will be able try the whole thing (with no limitations) for a trial period.

@Physics coder:
I'm not sure what you mean by sheering. If you could explain a lttle better, I could answer your question easier. If it isn't something that I currently have in there, it might be something that I could add in the future.

@AsriCE:
The command names are now basicly set in stone. Please note that the list that I provided were of features, not commands. The commands all begin with EZro_. For example:
EZro_SetEuler
EZro_SetMatrix
EZro_SetQuat
The reason that I used the convention that I did (starting everything with EZro_) was so that the commands are EASILY seperated from everything else.

-Ron

EZrotate!
Tokamak Physics Wrapper!
Elthan
20
Years of Service
User Offline
Joined: 29th Jul 2003
Location: Spain
Posted: 19th Aug 2004 20:43
Thank you very much. I´d like suggest you to include a set of commands to show actual local angle.

- EZro_ObjectAngleX
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 19th Aug 2004 21:37 Edited at: 19th Aug 2004 21:38
If I understand you correctly, I think that I might already have that included. The "Find Axis Angles" feature might be what you are looking for. As an example of these commands one of the sample programs show some flight gauges. The feaure returns the angles that are then directly used for the gauges.

Here is a screenie of that demo to get an idea:



EZrotate!
Tokamak Physics Wrapper!
Elthan
20
Years of Service
User Offline
Joined: 29th Jul 2003
Location: Spain
Posted: 20th Aug 2004 01:45
Yes that is the idea.

Another improvement could be to set the local angles of a total way (360º). Indeed of the way of move, pitch, roll,... commands (steps); you could use the way of set object angle. So, we can use curveangle to smooth the rotation.

I hope that you understand me, my english is good enough. Thank you again.
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 20th Aug 2004 04:57
Another feature that I am considering adding (but not before release) is an "align to matrix/terrain/poly" feature. I'm going to start working on it and see what I can come up with.

Elthan,
I could add something like that.
This feature is actually a bit tricky. To explain further, the X and Y axis are dependent on each other. The Z axis is completely independent of the other 2.

The Y axis defines heading: 0 to 360 degrees
The X axis defines pitch: -90 to 90 degrees
The Z axis defines the roll on the Y and X axis: 0 to 360 degrees

I KNOW this is going to cause confusion with some people, but it is the way that this should work. If the pitch angle (X) goes above 90 degrees or becomes less than -90 degrees, the heading angle (Y) will become opposite. For example, say you are flying an airplane. You pull back and start to pitch up. Once you pass the point where you are heading straight up in the air, your airplane will begin heading in the opposite direction. As you proceed, although you are still pulling "up", your pitch angle (X) will actually begin to decrease.
So, if your heading angle was 0, and you "pitch up" 10 degrees past 90, your new heading angle will become 180, and your pitch angle will become 80.

Anyway, to implement the feature that you mentioned, it would have to follow the same rules.

WOLF

EZrotate!
Tokamak Physics Wrapper!
zircher
21
Years of Service
User Offline
Joined: 27th Dec 2002
Location: Oklahoma
Posted: 20th Aug 2004 05:24
Will EZRotate 1.0 still be available for those users that do not need/want the enhanced version?
--
TAZ

"Do you think it is wise to provoke him?" "It's what I do." -- Stargate SG-1
Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 20th Aug 2004 05:54 Edited at: 20th Aug 2004 06:47
Yes!
Although, if you are using the free, basic version, I would ask that you consider upgrading to the enhanced version.

Plus, even though some of the features are available in BOTH (such as true global rotation), I have optimized the code in the enhanced version.
For example, EZrotate used to work like this:
Step1: EZro_Set - Setup EZrotate to your objects current rotation
Step2: Perform rotation changes
Step3: EZro_GetX - Convert the internal matrix to Euler angles and return the X value
Step4: EZro_GetY - Convert the internal matrix to Euler angles and return the Y value
Step5: EZro_GetZ - Convert the internal matrix to Euler angles and return the Z value
Finished.
As you can see the internal EZrotate matrix is converted to Euler angles each time you return the values. While it is still FAST, I made some changes in the enhanced version to tackle that problem.
It now works like this:
Step1: EZro_SetEuler - Setup EZrotate to your objects current Euler rotation
Step2: Perform rotation changes
Step3: EZro_FindEuler - Convert the internal matrix to Euler angles and store the data within EZrotate
Step4: EZro_GetX - Return the X value
Step5: EZro_GetY - Return the Y value
Step6: EZro_GetZ - Return the Z value
Finished.
This greatly increases the speed of the system.

Edit:
Also, EZrotate Basic was my first real C++ project. It was compiled in debug mode, because I didn't realize that there was a release mode. lol
The enhanced version will have some performance boost from that also

So, even if you are only going to use the features that are in the BASIC system, it is still advantageous to upgrade.

EZrotate!
Tokamak Physics Wrapper!

Login to post a reply

Server time is: 2024-05-20 12:32:38
Your offset time is: 2024-05-20 12:32:38