Autor Beitrag
Arash Partow
Hält's aus hier
Beiträge: 4



BeitragVerfasst: So 22.05.05 06:33 
Hi all,

FastGEO, a simple computational geometry library written in Object Pascal has been updated (version 5.0.1). FastGEO is a free to use library, governed by the Common Public License, Meaning it can be used "freely" in both commercial and open source projects.

URL: fastgeo.partow.net

Current capabilities of FastGEO are as follows:

* 2D/3D Orientation primitive
* 2D/3D Signed area and volume primitive
* 2D/3D Collinear and coplanar point determination
* 2D/3D Segment intersection detection
* 2D/3D Segment intersection point calculation
* 2D/3D Segment half point calculation
* 2D/3D Parallel segment determination
* 2D/3D Point to point Euclidean, Ley, Manhattan, Chebyshev and inverse
Chebyshev distances
* 2D/3D Vertex angle calculation
* 2D/3D Geometric span
* 2D/3D Triangle, quadix, rectangle, circle and polygon area
calculation
* 2D/3D Triangle, quadix, rectangle, circle and polygon perimeter
calculation
* 2D/3D Polygon centroid calculation
* Polygon-Segment intersection detection
* Polygon-Polygon intersection detection (convex\concave)
* Polygon construction routine
* Point in/on triangle detection
* Point in/on rectangle detection
* Point in/on circle detection
* Point in/on quadix detection
* Point in/on sphere detection
* Point in/on convex\concave (non-complex) polygon region detection
* Circular hull and rectangular hull
* Spherical hull calculation
* Torricelli point
* Incenter
* Circum-center
* Inscribed circle
* Circum-circle
* Closest point on segment from a point (2D/3D)
* Closest point on line from a point
* Closest point on triangle from a point (2D/3D)
* Closest point on quadix from a point (2D/3D)
* Closest point on circle from a point
* Closest point on sphere from a point
* Closest point on Axis Aligned Bounding Box (AABB) from a point
* Closest point on circle from a 2D segment
* Closest point on sphere from a 3D segment
* Minimum distance from point to segment (2D/3D)
* Minimum distance from point to line (2D/3D)
* Cartesian angle relative to point of origin in 2D
* Point of reflection
* Point projection along linear path (2D/3D)
* Clipping of segments against triangles, quadii, rectangles, circles
and polygons
* Conversion from cartesian coordiante to the barycentric coordinate
system
* Conversion from barycentric coordinate to cartesian coordiante system
* Generate random points within AABB, 2D Triangle, 2D Quadix and Circle
* Generate random triangles and circles within AABB
* 2D/3D Rotations, fast rotations, translations, scaling and shear
* 2D/3D Vector addition, subtraction and multiplicationn
* 2D/3D Unit and magnitude vector calculation
* 2D/3D Dot product calculation
* Degenerate type evaluation for geometric primitives such as segments,
lines, triangles, quadii, sphere and circle

Some simple demonstration applications are available:

1.)Convex Hull (Graham Scan Algorithm) Demonstration
2.)Ordered Polygon Demonstration
3.)Barycentric Coordinates Conversion Demonstration
4.)FastGEO Demonstration Suite

FastGEO is compatible with:
1.Delphi 4+
2.FreePascal 2.0+



Any suggestions or improvements would be very much appreciated.

Kind regards

Arash Partow
__________________________________________________
Be one who knows what they don't know,
Instead of being one who knows not what they don't know,
Thinking they know everything about all things.
www.partow.net

:)
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: So 22.05.05 17:45 
Thanks for this unit.
It's been a long time I needed it but I can remember it took ages to collect all the algorithms. We'll include it in our project ASAP. Keep the good work goin'!!
Arash Partow Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 23.05.05 01:47 
Hi alzaimar,

Thanx, its always nice to know people find FastGEO useful!


Arash
mirom
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 56

Win2000, Win XP

BeitragVerfasst: Mo 23.05.05 07:56 
Dear Arash Partow!

do you have allready, or plan to make Triangulation Irregular Network calculation ?

Anyway, congratulations for your work!

Greetings,

Miro M.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 23.05.05 15:50 
Dear Arash Partow,

do you plan on increasing the in-source documentation of your library as the current form is hardly understandable without switching to the documentation all the time.

Also I'd be interested in what major limitations regarding the CPL in connection with LGPL projects exist.

But anyways: Congrats for your work! Keep on the good work!

Greetings,
BenBE.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Arash Partow Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 24.05.05 08:56 
user profile iconmirom hat folgendes geschrieben:
Dear Arash Partow!

do you have allready, or plan to make Triangulation Irregular Network calculation ?

Anyway, congratulations for your work!

Greetings,

Miro M.


Hi Miro,

I have a working triangulator, it is delaunay compliant, however I don't have any plans on releasing it until it is completely finished, which means the final requirement being an edge oriented triangulation being completed-tested etc. I think it will take some time because of work requirements etc, But it should be completed by the end of August time-frame.

The main problem with triangulations is how the end user wants to see the triangulations, how they plan on traversing them etc... There are also to options and each one has its own advantages and disadvantages.


Regards


Arash
Arash Partow Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 24.05.05 09:16 
user profile iconBenBE hat folgendes geschrieben:
Dear Arash Partow,

do you plan on increasing the in-source documentation of your library as the current form is hardly understandable without switching to the documentation all the time.

Also I'd be interested in what major limitations regarding the CPL in connection with LGPL projects exist.

But anyways: Congrats for your work! Keep on the good work!

Greetings,
BenBE.



Hi Ben,

One of the reason why there is lack of documentation is because the code itself is very self explanatory. In another way, the code is also "end-user need oriented", that basically means when you need something you will see it and already know how to use it and if you don't have a need for it you wont know what it is.... (which btw believe it or not is a good thing - it reduces overall complexity)

For example, If your problem is determining segment intersection, you will already have a general idea on how the solution will be, it will take in 2 sets of parameters each set will be used to describe one of the segments, and pass back a boolean result in some manner. Having this "general idea" and key words such as "intersection" and "segment" and knowing that the most logical way to represent a segment would be via 4 numbers, 2 numbers per end point, 2 end-points per segment etc... all lead you to sub-consciously look for a routine that has all those requirements or has nearly all of them.

It all automagically falls into place. So don't worry now if you don't see how things work, it just means you don't currently have any use for them. Once you have problems that needs them you will begin to see what things are available. This is how many people use FastGEO. The majority of people don't even use the full library, they just rip-out the routines they need and place them directly into their own routines applications etc...

FastGEO serves as an example of how things can be solved, also provides solutions to things (without people having to think about them much) it also lets you get into the drivers seat and control certain aspects of the routines such as robustness or speed of calculations by letting you decide what routines to run or how they should be run etc...

FastGEO is like a beach full of sand - go there and make your sand castle! (TM)


As for the CPL, unlike the GPL or LGPL the CPL does not in any way effect the state of licenses of any other code you may be using. The CPL allows for commercial and open source use of the code. In fact you could take the code and place your name on it and there would be no problems with that. The CPL is very open its very free unlike viral GPL and LGPL.

here are a couple of links:

en.wikipedia.org/wik...ommon_Public_License
www-106.ibm.com/deve...brary/os-cplfaq.html



Regards


Arash