Commit Graph

36 Commits

Author SHA1 Message Date
e33ac16ae9 fix: hacks and bugfixes to get Book 13 working 2024-02-11 15:33:29 -08:00
be13a384b1 feat: Complete operation through Book Twelve (#58)
The only actual new command is the construction of a polygon
   as a face of a previously defined polyhedron.
   Aside from that, just adds some hacky "bugfixes" to Joyce's
   underlying Geometry Applet code to convert drawings that
   Joyce left in 2D when they should be in 3D.

Reviewed-on: #58
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2024-02-11 05:30:36 +00:00
0b241e010e feat: joyce commands needed for BookEleven (#57)
Reviewed-on: #57
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2024-02-10 07:01:20 +00:00
9e69613425 fix: Use geonames for auxiliaries (#56)
Otherwise sometimes they will convert points into vectors (ugh!)
  Also adds debugging output.

Reviewed-on: #56
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2024-01-19 03:58:14 +00:00
f8c95860b8 feat: Implement 'meanProportional' point construction method (#55)
Also fixes a typo in a triple-slash regular expression that
  was preventing the "quadrilateral" method from being recognized.
Completes operation of Joyce's elements through Book VI.

Reviewed-on: #55
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2024-01-18 06:10:23 +00:00
a9a5a3584f fix: Improve labeling of line segments (#54)
Gets all of Joyce through Book V working.

Reviewed-on: #54
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2024-01-17 23:14:02 +00:00
b1e480a4be feat: Allow pentagons and hexagons (#53)
Also update all dependencies.
With this PR, one can process all of Joyce's elements through Book IV.

Reviewed-on: #53
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-11-30 23:51:59 +00:00
29dfc54646 fix: correct colors of labels when point color defaults (#51)
Also fixes motion of points when pivoting if they lie on a circle that only later has its center identified as the pivot point (i.e., not yet at the time the pivotable point is being defined).
Also implements the "center" method of constructing a point.

With this PR, apparently all diagrams through Book III work OK.

Reviewed-on: #51
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-11-29 05:37:20 +00:00
6489fb7fac fix: correct handedness of polygon application in some cases (#50)
Resolves #49.
Also adds a special-case hack to correct a small error in Joyce's rendition of Book II, Prop 14. (That the error is truly in Joyce's spec rather than adapptlet is shown by the screenshot, which has an incorrect diagram.)

With this PR, as far as I know all diagrams in Books I and II work,

Reviewed-on: #50
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-11-28 07:33:58 +00:00
d024fcfa31 feat: add line-foot construction method (#48)
With this PR, the adapptlet appears to handle Joyce's entire Euclid Book I.

Reviewed-on: #48
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-11-27 04:21:06 +00:00
52272ff728 fix: conform to Joyce's original axis orientations (#47)
Seems to produce correct diagrams for all of Joyce Euclid up to but not including the Pythagorean Theorem (I.47), so hopefully I have managed to find and correct all of the necessary orientation flips (but I won't be shocked if I have not).

Resolves #46.

Reviewed-on: #47
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-11-27 03:40:04 +00:00
5b1ca40b26 feat: Implement additional Geometry Applet commands toward Book I (#45)
Reviewed-on: #45
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-10-22 17:33:01 +00:00
277d9b0a8c feat: Get all of Rostamian's old pages working (#44)
Implements the pivot parameter to the Geometry applet and numerous new construction methods.
Resolves #36.

Reviewed-on: #44
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-10-18 01:07:58 +00:00
a236e15990 feat: Get extension working in the Edge browser (#42)
To accomplish this, it needed to be bundled up in a zip file, so
  code to do that was added. (Quite possibly the zip will be able to
  be renamed as an .xpi file to create the file needed for Firefox.
  At the moment, you must extract this zip and "sideload" the extension
  into Edge by selected the extracted folder. I read that Edge will
  handle the packing into a single extension file itself.

  Also, some of the features used in the extension had to be polyfilled
  into Edge. And the final major change is that the "Xray" feature is
  not available in Edge, so data passed from the content script to the
  script injected into the page had to be moved from Xray to attributes
  of the script element. This all represents more progress on #28,
  Chrome(ium) is next.

Reviewed-on: #42
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-10-10 03:17:19 +00:00
fff75f67e3 chore: update and prune embedded GeoGebra (#41)
Reviewed-on: #41
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-10-08 22:15:11 +00:00
25ba69c621 feat: Enable 3D constructions when adapting Geometry Applet (#40)
Turns on 3D viewing only for the constructions that use a 3D primitive, but loads the more extensive web3d bundle from the embedded GeoGebra package whenever any applet on the page uses 3d. (The idea is to only require the loading of one bundle per page.) Provides progress on #36.

Reviewed-on: #40
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-10-08 17:10:59 +00:00
c99b51dafa feat: Start implementing Rostamian's pages (#39)
Began with incenter.html, the first one alphabetically. Needed one
  new point construction method, and a new option to see what was
  going on.

  Got the planar diagrams on that page working. The next step on #36 will
  be to get 3D diagrams as the theorem on this page generalizes to 3D. That
  will be a bigger task, so merging this now.

Reviewed-on: #39
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-10-06 19:38:56 +00:00
e7361f94a7 feat: Produce an archematics plugin that works in Firefox (#38)
With this loaded in under the Firefox debugger, one can see linked WRL files and Java Geometry Applets on arbitrary web pages.
This represents significant progress on #28, but getting more controls and getting it to work in other browsers is still on deck.

Reviewed-on: #38
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-10-05 06:19:11 +00:00
b31c0671d2 chore: update to x_ite 8.12.4 2023-09-26 12:30:12 -07:00
01d78081a2 fix: Handle Joyce Geometry Applet color specifications (#33)
This PR attempts to capture all of the color structure
of the original Geometry Applet, except for pivot points
defaulting to green, since there are no pivot points yet.

Resolves #8.

Reviewed-on: #33
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-09-25 22:44:44 +00:00
bab48b25ad feat: Improve construction element handling (#32)
This change implements several additional construction methods,
  including the first polygon ones. In particular, it now allows
  arbitrary strings as entity names, even ones that are not allowed
  as GeoGebra identifiers, using captions to show the original
  entity names. In addition, line arguments are interpreted as a pair
  of point arguments as needed.

  Resolves #6.
  Resolves #30.
  Resolves #31.

Reviewed-on: #32
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-09-25 00:47:35 +00:00
550ce0168c feat: Enough commands to get to the @ (#29)
Reviewed-on: #29
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-09-19 07:32:11 +00:00
a55342ae95 feat: Add a separate browser and toggle control for each link (#27)
Resolves #20.
Resolves #26.

Reviewed-on: #27
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-09-19 04:40:23 +00:00
285554137d fix: Expand the world info viewer so you can see content (#25)
Also update to latest x_ite.d.ts
  Resolves #22.

Reviewed-on: #25
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-09-18 02:05:19 +00:00
af472d7bfe feat: Adjust the X3D browser size (#24)
Does this simply by setting CSS properties on the canvas element.
  Also updates vrml1to97 and switches to using x_ite.d.ts directly
  from the x_ite repository (although the link will have to change
  once it is merged into main).
  Resolves #21.
  Resolves #23.

Reviewed-on: #24
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-09-11 18:20:09 +00:00
765d4ff840 fix: Interpret relative URLs correctly. (#19)
Also update to latest version of Civet.
  Resolves #11.

Reviewed-on: #19
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-09-11 03:44:16 +00:00
b5478254af chore: Check types and add draft full typing for x_ite. (#18)
Enabling type checking involves a full rearrangement of the
  build process, as well as supplying types for some of the
  dependencies.

  Now that (hopefully) all of the methods are typed, can call
  (for example) browser.setBrowserOption to manage the
  viewer navigation.

  Resolves #14.
  Resolves #17.

Reviewed-on: #18
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-09-11 01:52:39 +00:00
a8707386aa chore: Update dependencies and fix build script (#15)
Reviewed-on: #15
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-09-05 07:32:38 +00:00
545c5f550f feat: Convert VRML 1 files with vrml1to97 (#13)
Now that the vrml1to97 package has been published, uses it to convert
  any VRML 1 files it encounters. Also uses the new x_ite module

  Resolves #12

Reviewed-on: #13
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-09-05 01:50:52 +00:00
9107c82f13 feat: Proof of concept for displaying wrl files (#10)
Mostly works on VRML97 and up files. Unfortunately, many of the target files are VRML 1.0,
so an on-the-fly converter will be needed. The strategy for that is to translate the converter in Wings 3D.

Resolves #9.

Reviewed-on: #10
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-08-31 05:30:41 +00:00
97f7138d7b feat: Create geogebra applet and implement some Joyce commands (#5)
Reviewed-on: #5
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-08-30 03:56:13 +00:00
10146073c8 feat: Allow civet code to modify DOM (#4)
This commit uses the jQuery package for DOM manipulation. So far, it
  performs just a toy modification, on a page modified to include the
  object javascript. For this purpose the build script was modified
  to place object files in `public/js`. Adds a script to build and
  serve the resulting code.

  Resolves #2.

Reviewed-on: #4
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
2023-08-29 01:29:08 +00:00
16f38e769e chore: Add first target webpage and package to serve it 2023-08-28 10:31:35 -07:00
3a14bb1e89 chore: Set up simple civet build 2023-08-28 09:01:25 -07:00
b9cd84eae3 chore: Initialize pnpm package manager 2023-08-28 08:33:10 -07:00
3a2bd5c917 Initial commit 2023-08-28 05:11:26 +00:00