This is a stub/very preliminary implementation of calling JSXGraph for
3D Joyce applets. The only element/construction method implemented so far
is a free point.
NOTE: This implementation is so far extremely buggy. Loading a page with a
3D applet such as
http://aleph0.clarku.edu/~djoyce/java/elements/bookXI/defXI9.html
appears to enter a loop in which the div containing the JSXGraph Board
progressively grows larger and larger, while using a tremendous amount
of cpu.
Organize the plugin for submission, and restore its operation on Chrome. Unfortunately GeoGebra's files block submission, so further work will be needed to create a plugin installer.
Reviewed-on: #69
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>