Commit Graph

  • 01cff278bd Include the remap lists (when we copy entities, that we used to assign the new ids) in the saved file, and split the file load from table stuff into its own function. Jonathan Westhues 2008-04-27 02:01:23 -0800
  • aedd91735f Text window was double-buffered, but background was still getting erased before redraw, which caused a bit of flicker on show. And hide debug prints in solver. Jonathan Westhues 2008-04-27 01:31:56 -0800
  • 49ec1346d7 Add the first `derived' group, that generates entities based on other entities. This requires a new point type, for a point that's defined as a transformation of some other point. All works nicely, I think. There's ugliness because entities are no longer guaranteed to have a parent request. Jonathan Westhues 2008-04-27 01:03:01 -0800
  • bfc7109e0c Standardize the behaviour of constraints, by assigning them a workplane: a free constraint works in three-space (e.g. true distance), and a constraint in a workplane works in that plane (e.g. projected distance). And make the solver go automatically, though solver itself has lots of pieces missing. Jonathan Westhues 2008-04-26 21:00:12 -0800
  • 15476d4732 A great renaming. 2d coordinate systems are now called workplanes, and the associated entities are now just points. Jonathan Westhues 2008-04-26 19:26:27 -0800
  • 5bc3738ec4 Add cubics, and tweak mouse handling code. Jonathan Westhues 2008-04-25 04:07:17 -0800
  • c934737d9e Add a function to combine vertices while tesselating the polygon, so that OpenGL can fill self-intersecting polygons. Jonathan Westhues 2008-04-25 02:11:29 -0800
  • ebdef1818c Simplify the way that the active csys is handled, and default to locked on to the XY plane. And simplify the handling of colors in the text window: identify them by a character, not an integer ID, since the character is easier to remember. Jonathan Westhues 2008-04-25 00:26:15 -0800
  • a7cec38656 Add code to assemble the piecewise linear segments in a group into a polygon, and to fill that polygon. Jonathan Westhues 2008-04-24 23:04:09 -0800
  • 1331457928 Rough file/save for SolveSpace; that's all done from a single table, relatively small code size. No user interface for it, though. Jonathan Westhues 2008-04-23 22:22:16 -0800
  • 80dd0fc029 Draw the horizontal/vertical markers in the direction of the actual basis vectors, not in the direction of the line connecting the points. Jonathan Westhues 2008-04-22 23:46:24 -0800
  • a8001adf33 Add horizontal and vertical constraints. Those have their own 2d/3d issues, when the points are not all in the same coordinate system. All painful, of course. Also add continuous line drawing, and auto-constraining of line segments as I draw. Jonathan Westhues 2008-04-22 23:29:19 -0800
  • 1bf7e3deaf Add an ExprVector class, for a 3-vector whose members are expressions. That simplifies a few things considerably. And some little UI tweaks. Jonathan Westhues 2008-04-22 05:14:15 -0800
  • fa71238def Some graphics tweaks, to the order in which stuff gets drawn, to determine what goes in front (e.g. put a drawn line in front of the reference plane, even if the z order would want the opposite), and some tweaks to the mouse behaviour, and a function to modify constraints like dimensions so that the are initially satisfied. Jonathan Westhues 2008-04-22 02:53:42 -0800
  • 1f77024771 Add an equal length constraint for line segments. Jonathan Westhues 2008-04-21 21:00:49 -0800
  • 9b1b255e85 Now I can display the edit control in the graphics window, and edit the label associated with a constraint. And that even works, changes the length of the line. Jonathan Westhues 2008-04-21 02:12:04 -0800
  • 2926fa95d9 Start to add some constraint stuff. I now have point-coincident, and point-in-plane. These work, but the equation is still stupid, solving everything at once and not substituting trivial equations. Jonathan Westhues 2008-04-21 00:16:38 -0800
  • 7220f998fc Rename the variables for the linear system to solve, for a bit more clarity. Jonathan Westhues 2008-04-20 17:26:36 -0800
  • b78b10ac1a Ultra-rough beginnings of a solver. Write the constraint equations, take the partial derivatives, and run the Newton's method. This seems to sort of work with a single distance constraint. Jonathan Westhues 2008-04-20 03:35:10 -0800
  • ed50632610 Rename some functions in Entity; those specific to a given type all start with some prefix. Jonathan Westhues 2008-04-19 03:44:44 -0800
  • cc03fe40aa Big structural change; eliminate the Point type in SolveSpace. The 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. Jonathan Westhues 2008-04-19 03:09:47 -0800
  • 0d3217c0df Rename some stuff in the IdList again. Rough in the file save 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. Jonathan Westhues 2008-04-18 03:11:48 -0800
  • c097fea4f3 Make the tag (for items in an idlist) a member of the templated data structure, and thus get rid of a level of struct. Jonathan Westhues 2008-04-17 23:21:17 -0800
  • 2f4a3917c5 Add functions to deep-copy Exprs, for those generated from user 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. Jonathan Westhues 2008-04-17 23:06:37 -0800
  • 1fa7865024 Add a little parser, that takes a string and generates and Expr * syntax tree. That's what I'll used for entered dimensions, and algebraic constraints and such. Needs to be extended to handle stuff like points and entities, but I think that it can be. Jonathan Westhues 2008-04-16 22:42:32 -0800
  • 22302dca7a Now I can add a constraint (a length), and it's displayed 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. Jonathan Westhues 2008-04-14 02:28:32 -0800
  • 094e10204d Make the points locked in 2d csys (expressed as two parameters, for the plane basis vectors) work, easy. Tweak the text window a bit, for cosmetics, and start to add the symbolic expression code. Jonathan Westhues 2008-04-13 06:28:35 -0800
  • b6bf07ac2c Rename cmdline.cpp to textwin.cpp, since it no longer has a command line. Jonathan Westhues 2008-04-13 02:58:22 -0800
  • a0e78e0da2 Tweak the handles to make more space in the request ID, so that I can use the high bits as an "import ID" for imported parts, for hierarchy (that retains parametric capabilities). Jonathan Westhues 2008-04-13 02:57:41 -0800
  • d76e708c17 Fix memory corruption in the IdList stuff (stupid freeing), and tweak the way that things are hidden and shown. Jonathan Westhues 2008-04-12 08:28:48 -0800
  • d36c70216a Add the keyboard accelerator mechanism for menu items. Use that to implement zoom in/out, and orient onto a csys. Jonathan Westhues 2008-04-12 07:17:58 -0800
  • 6c63d9c8cb Get rid of the command line from the text window; we'll say that's just for display, and any text entry will happen via some floating text box, same as entering a dimension on the sketch. Jonathan Westhues 2008-04-12 06:12:26 -0800
  • bf8ef7b196 Start to use that text window a bit; user interface to show and hide things. Jonathan Westhues 2008-04-11 04:47:14 -0800
  • 181e50f1d9 Add routines to draw a vector font (public domain Hershey Simplex font, not bad). Use that to label the planes now. Jonathan Westhues 2008-04-11 03:13:47 -0800
  • 3357446278 Simplify the text window in SolveSpace; better scrolling behaviour, and my concept is more like a web page than like a command line. Jonathan Westhues 2008-04-09 01:35:09 -0800
  • 9c2a8a08dc Drastic changes to the handle structure; that's now just 32 bits, and I am assuming that many more operations will require lookups in the IdList<>. Jonathan Westhues 2008-04-09 00:39:01 -0800
  • a7fa89c2cc Check in some SolveSpace stuff, even though I didn't make much progress. I want to change the sketch.h stuff fairly significantly, I think, before proceeding. Jonathan Westhues 2008-04-08 04:54:53 -0800
  • 19c6be530f Bits and pieces of SolveSpace; zoom works now, and some stuff to 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. Jonathan Westhues 2008-04-01 02:48:44 -0800
  • f201d52247 Add hyperlink and colour support to the text window. Don't redraw 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. Jonathan Westhues 2008-03-28 02:00:37 -0800
  • e426fe8a53 Start to add OpenGL support to SolveSpace, for the graphical view. I've got the user interface to pan and rotate an object, more or less works. Jonathan Westhues 2008-03-27 01:53:51 -0800
  • fcdf43d487 More fragments of SolveSpace work. Improve the command line window, 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. Jonathan Westhues 2008-03-26 01:18:12 -0800
  • 67139236fc This is my initial checkin for solvespace, a second attempt at 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. Jonathan Westhues 2008-03-25 02:02:13 -0800