Home » Community » U++ community news and announcements » Geom cleanup - what do you use?
|
|
|
|
Re: Geom cleanup - what do you use? [message #60275 is a reply to message #60241] |
Mon, 30 October 2023 13:31   |
Oblivion
Messages: 1202 Registered: August 2007
|
Senior Contributor |
|
|
Hi Mirek,
Quote:So I have an intention to split Geom, move part to Core (3D geometry stuff mostly, also some geomtric algos like line distance), rest to UppHub.
Incidentally, I had already moved and refactored/cleaned up most of the 3D code of geom package into Point3D, Xform3D (inspired by and similar to the Painter's Xform2D) structures and to their related functions (as part of a very lightweight software-based 3D renderer called Sculptor package, which I needed at the time).
I can send in a pull request next weekend, if you'd like to review. (to speed up)
Best regards,
Oblivion
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Mon, 30 October 2023 13:33] Report message to a moderator
|
|
|
Re: Geom cleanup - what do you use? [message #60637 is a reply to message #60241] |
Mon, 17 June 2024 10:23   |
Oblivion
Messages: 1202 Registered: August 2007
|
Senior Contributor |
|
|
Hi
As I wrote in my previous message, there is a light-weight XForm3D package I had written some time ago. You can find it attached.
1) It is a single header file.
2) It contains Point3D, Point4D, Matrix3D and Matrix4D classes (API is very similar to XForm2D).
3) These classes are aliases for templates that accept floating point types. So it allows for both single and double precision points (classes are templated)
4) It has an IsEqual() function for fuzzy comparing of matrices.
If you find it useful enough, feel free to review and/or adopt it.
P.s. There is also a simple demo app, rendering the famous 3D teapot model, using Upp::Painter with this XForm3D. I will also upload that (but first I need to clean-up its code).
Best regards,
Oblivion
-
Attachment: Xform3D.h
(Size: 35.35KB, Downloaded 66 times)
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Mon, 17 June 2024 11:23] Report message to a moderator
|
|
|
|
Re: Geom cleanup - what do you use? [message #60643 is a reply to message #60642] |
Tue, 18 June 2024 15:58   |
 |
koldo
Messages: 3432 Registered: August 2008
|
Senior Veteran |
|
|
Hi Oblivion
Although I think the original post was not devoted to show this code, it is very interesting.
To run it in Windows and CLANG as deployed in U++, I have had to do a couple of changes:
- Set 'struct' instead of 'class' in 'template<typename T> struct Point3_;'
- In 'Perspective', 'Frustum' and 'Ortographic', replace 'near' and 'far' with other names. Maybe they are reserved.
The speed is right, even moving >15000 panels. I have opened the teapot four times, moving it to different positions to avoid overlapping.
There are minor details that can be added, such as the definition of background colour, object colour, location and lighting intensity, but, overall, this demo has the highest interest versus size ratio I've seen in a long time
A question: the broken panels selected in red, are they a defect from the original model, or are a defect in rendering?
-
Attachment: image.png
(Size: 109.61KB, Downloaded 283 times)
Best regards
Iñaki
|
|
|
|
Re: Geom cleanup - what do you use? [message #60662 is a reply to message #60642] |
Thu, 27 June 2024 15:13   |
Tom1
Messages: 1301 Registered: March 2007
|
Ultimate Contributor |
|
|
Hi Oblivion,
Very nice, indeed!
Just like Iñaki (Koldo) pointed out, I also had to do the following changes on Windows:
Quote:To run it in Windows and CLANG as deployed in U++, I have had to do a couple of changes:
- Set 'struct' instead of 'class' in 'template<typename T> struct Point3_;'
- In 'Perspective', 'Frustum' and 'Ortographic', replace 'near' and 'far' with other names. Maybe they are reserved.
The same changes are also required on Windows when compiling with MSBT.
Thanks and best regards,
Tom
[Updated on: Thu, 27 June 2024 15:14] Report message to a moderator
|
|
|
|
Goto Forum:
Current Time: Fri Apr 25 07:57:47 CEST 2025
Total time taken to generate the page: 0.00645 seconds
|