vectors", represented by unit quaternions. This permits me to add
circles, where the normal defines the plane of the circle.
Still many things painful. The interface for editing normals is not
so intuitive, and it's not yet clear how I would e.g. export a
circle entity and recreate it properly, since that entity has a
param not associated with a normal or point.
And the transformed points/normals do not yet support rotations.
That will be necessary soon.
[git-p4: depot-paths = "//depot/solvespace/": change = 1705]
and point-in-plane. These work, but the equation is still stupid,
solving everything at once and not substituting trivial equations.
[git-p4: depot-paths = "//depot/solvespace/": change = 1677]
points are now entities like any others; so a line segment request
will generate three entities, the line segment and its endpoints. I
think that's cleaner.
When I do step and repeats (and imports, and other similar), I'll
need a consistent way to assign those entity ids. That assignment
must not change if the sketch is edited. I don't have a clean way
to do that; best thought right now is to keep a record of what maps
have been used previously, and not pick a new map as long as it's
possible to use one that was used previously.
This all means that more crap gets pushed in to the Entity
structure, so that they can keep track of what solver variables
define them. Still seems better, though. I'm closer to ready
to start solving.
[git-p4: depot-paths = "//depot/solvespace/": change = 1673]
stuff, though no file load stuff, and perhaps this can all be made
to work from a table somehow. Move the quaternion stuff into its
own class, and add a fancy animated view when you orient onto a
csys.
[git-p4: depot-paths = "//depot/solvespace/": change = 1672]
expressions that we wish to keep around. And make the 2d coordinate
system (that causes points to generate 2 unknowns, not 3) an
attribute of the request, not the group, and add user interface to
change that.
[git-p4: depot-paths = "//depot/solvespace/": change = 1670]
on-screen, and I can drag the label. That's progress. Also
implement a bunch of untested expression stuff, since I'll need
that for the values of the dimensions, for example.
[git-p4: depot-paths = "//depot/solvespace/": change = 1668]
can use the high bits as an "import ID" for imported parts, for
hierarchy (that retains parametric capabilities).
Implement enought that I can draw a datum point or a line segment,
and drag points around in three-space. Still so much to do.
[git-p4: depot-paths = "//depot/solvespace/": change = 1665]
just for display, and any text entry will happen via some floating
text box, same as entering a dimension on the sketch.
Add the hover and selection mechanism, which now seems to work.
Still not clear how to do imported parts, for assemblies and
hierarchy. The handle formats may still have to change.
[git-p4: depot-paths = "//depot/solvespace/": change = 1662]
and I am assuming that many more operations will require lookups in
the IdList<>.
Add code to represent and draw a 2d coordinate system. The origin
is described by a point, and the orientation by a quaternion. So
now it does the same thing before, and draws the reference planes,
but with a lot more lines of code.
[git-p4: depot-paths = "//depot/solvespace/": change = 1658]
progress. I want to change the sketch.h stuff fairly significantly,
I think, before proceeding.
[git-p4: depot-paths = "//depot/solvespace/": change = 1657]
draw planes that I will use to do the datum planes. Still haven't
settled upon the request/entity/group structure, and that's the
dependency before doing much real.
[git-p4: depot-paths = "//depot/solvespace/": change = 1656]
the text window every time we refresh the graphics window, because
that's slow. Use classes instead of structs for everything; I don't
understand the template handling for structs. And implement the
IdList, which I will try to use in many places.
[git-p4: depot-paths = "//depot/solvespace/": change = 1655]
and add some (non-functional) menus to the graphics window. Start
to rough in some data structures to hold the sketch. No real work
yet, though.
[git-p4: depot-paths = "//depot/solvespace/": change = 1653]
constraint solver drawing. I've started work on the user inteface,
which will be based around two windows: one with the graphical
sketch, and one command line. I've started to implement the command
line, no other work.
[git-p4: depot-paths = "//depot/solvespace/": change = 1652]