Skip to content

Arin-Grigoras/GeoSys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GeoSys

GeoSys is a header-only analytic geometry library in C++ with a native GTK desktop app for school use.

What It Includes

  • Templated 2D primitives: points, vectors, lines, segments, circles, polygons, and bounding boxes
  • Algebra utilities: dot product, cross product, normalization, angle calculations
  • Geometry operations: distances, projections, reflections, orientation, triangle area, intersections
  • Higher-level analysis: polygon perimeter, polygon centroid, convex hull, triangle centroid, incenter, circumcenter
  • Desktop GUI: interactive calculator and sketch area for common classroom geometry tasks

Project Layout

include/
	geom.hpp
	geom/
		point.hpp
		vector.hpp
		line.hpp
		segment.hpp
		circle.hpp
		polygon.hpp
		bounding_box.hpp
		operations.hpp
		utils.hpp
examples/
	demo.cpp
apps/
	geosys_school_gui.cpp

Build

Requirements:

  • CMake 3.14+
  • A C++17 compiler
  • GTK 3 development files for the GUI target

Build everything:

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

Run

Console demo:

./build/geom_demo

School GUI:

./build/geosys_school_gui

GUI Tabs

  • Core: distance, midpoint, orientation, triangle area
  • Lines: line-line intersection from two point pairs
  • Triangle: centroid, incenter, circumcenter, circumcircle
  • Circles: area, center distance, circle-circle intersections
  • Polygon: area, perimeter, centroid, bounding box, convex hull

Notes

  • The library is header-only, so you can include geom.hpp in your own exercises or projects.
  • Floating-point comparisons use configurable epsilon helpers from utils.hpp.
  • The GUI draws the current problem state so you can visually check your answers during homework or class prep.

About

An analytical geometry library

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors