Skip to content
Jiří Cihelka edited this page Dec 30, 2023 · 3 revisions

Welcome to the geometry.js wiki!

What is geometry.js

Geometry.js is a JavaScript Object Oriented Geometry Library. It is designed to be used in both Node.js and the browser. It is written in TypeScript and is fully typed.

How geometry.js works

Geometry.js is Object Oriented. It represents geometric objects as classes. These classes are then used to perform operations on the objects. These classes implement interfaces that describe the objects.
The main object of the library is a Plane.
Objects are split into two categories - Bound and Unbound. Bound objects are longer lived and must be explicitly created by the user. Unbound objects are temporary, aren't automatically updated and serve as a way to pass data between functions. More information about Geomtery objects can be found on the Geometry objects page.

The bound objects are created on the plane and other objects can be created depending on them. For example, a line can be created from two points. If the points are moved, the line is automatically updated.
The unbound objects are created and hold their data. They aren't automatically updated and are garbage collected when they are no longer needed.

Documentation

Geometry.js provides API documentation in the form of JSDoc. More information on the documentation is available on the API documentation page.
Geometry.js also provides a wiki. The wiki contains information about the library itself, how to use it and how it works.
The wiki also contains information you may need when contributing to the library.
If you have any questions, you can ask them on the Discussions page or you can create an issue.

Contributing

The directory structure of the library is described on the Directory structure page and code structure is described on the Code structure page.