This project is read-only.




by Project Collectio...
Oct 1, 2012
10:49 PM

Upgrade: New Version of LabDefaultTemplate.xaml. To upgrade your build definitions, please visit the following link:

by Project Collectio...
Oct 1, 2012
10:43 PM

Checked in by server upgrade

by DavidHartmann
Mar 8, 2012
5:02 PM

by DavidHartmann
Mar 8, 2012
4:41 PM

1) Moved construction hint text from DrawingControl to Behavior. This way behaviors, particularly figure creators, can have better control of the hints displayed to users.
2) Improved hint text for tranformations.
3) Translated points can now have dependency figures for magnitude and direction. Magnitude can come from ILengthProviders (segments, labels, etc). Direction can come from IAngleProviders (arcs, lines, rays, labels, etc.)
4) Changing DilatedPoint to use a single dependency for the dilation factor. It did use two dependencies for the factor. Two dependencies is still supported so that previously saved drawings with dilations will appear correctly.
5) Drawing now has a version number that gets written to xml when saved. A class called DrawingUpdater (in new file) has been created and gets called when drawings are loaded. This is not yet needed in Live Geometry but provides important override capability for other implementations. The creator (application) is also written to xml.
6) Adding a new setting "TextScalesWithDrawing" which is false by default. If changed to true, a scale transform that refers to the drawing's scale is added to textual figures. Currently it is only used when printing. Typically drawings are scaled to fit on the paper and text will not appear correct unless it is scaled as well.
7) Hyperlinks were mistakenly being centered when updating visual. Fixed. They also can now be dragged when Enabled is false.
8) Reflected points use prime naming scheme.
9) Fixed HitTesting of circle and ellipse sectors.
10) Adding new "Serializable" IFigure property. Used when saving a drawing.

by DavidHartmann
Jan 27, 2012
2:41 AM

Oops. Missed one change in last check in.

by DavidHartmann
Jan 27, 2012
2:30 AM

1) Fixed an expression (like one entered in a text box) error. If expression did not return a double value an error was occurring in TreeBuilder.CreateExpression(). For example "A.Coordinates" or "Polygon1.Locked" would cause an error.
2) Segment bisectors and angle bisectors are now taking Flipped (false by default) into account.
3) Label is now IAngleProvider and ILengthProvider. It exposes a double value that can be used as a dependency (e.g. for rotatedPoint, dilatedPoint, etc). Also, decimal precision can be set in property grid for label.
4) PointOnFigure Parameter exposed in property grid. Removed setters for X and Y.
5) Fixed logic error in Ray.HitTest(Point).

by DavidHartmann
Dec 4, 2011
5:30 PM

1) Small changes made to circles and arcs.
2) Ellipse and Circle Sectors added. Created by conversion buttons in property grid.

by DavidHartmann
Oct 24, 2011
3:43 PM

1) Minor changes to CoordinateSystem and Drawing classes.
2) Fixed autolabeling/undo problem.
3) Fixed problems selecting AngleArc.
4) Fixed problems creating figures with SnapToGrid on. For example it was often impossible to create a parallel line because FigureCreator would not find the line the user clicked on.
5) Fixed reflection of arcs issue.

by DavidHartmann
Sep 26, 2011
2:08 AM

1) Made small changes to allow for a more efficient player.
2) Fixed mistake in AngleArc that I introduced in changeset 70021.

by DavidHartmann
Sep 16, 2011
2:45 PM

Fixing two problems identified by leonli77hot. Incorrect Y coordinate fixed. Error in opening a document with a regular polygon fixed.

by DavidHartmann
Aug 31, 2011
7:35 PM

1) Updating library so that the player compiles.

2) RaiseCommandExecuted() added to DrawingHost. Does nothing in Live Geometry but can be overridden.

3) AreaMeasurement generalized to measure any IShapeWithInterior (polygons, ellipses, circles).

4) DistanceMeasurement generalized to measure any IDefinedLength (figure with Length defined, currently segment, circle arc, and polyline). Having trouble with my calculus for ellipse arc length (and area).

5) Center has now been defined for all figures. Usually defined by the centroid. Figures without geometric centers return something sensible.

6) Measurements can be unitless or in cm or in. Units are exposed in PropertyGrid for a measurement.

7) CircleSegment and EllipseSegment classes created. They are subclasses of CircleArc and EllipseArc. Convert CircleArcs and EllipseArcs to these in Property Grid.

8) Cleaned up arc classes and interfaces.

by DavidHartmann
Aug 13, 2011
1:05 AM

1) Changed HitTestMany() so that returned result lists more recently added and higher zIndex figures first.

2) Added suppression option for autoLabelPoints.

3) Now preventing duplicate names. If the user changes the name of figure A to the name of figure B, figure B's name is changed to next available name (subscripts or prime symbols might be better). Duplicate names can result in errors.

4) Using new naming scheme. Each class generates a unique name based on its own index. So the first ray created will be called ray1 and the second, even after creating other figures, will be called ray2. In the old scheme all figures used the same index.

5) Unique name checking and name genererating no longer looks recursively into figures. So for example multilple composite figures can have a child figure named "arc1".

by DavidHartmann
Jun 28, 2011
7:20 PM

Missed one file in last check-in.

by DavidHartmann
Jun 28, 2011
7:13 PM

Check-In Notes
1) Fixed error in all figures using CompileExpression. An erroneous duplicate dependence was resulting in a consistency error. (Kirill this relates back to when we decided to allow duplicates in dependency list. In this case we were getting a duplicate by mistake. See DrawingExpression.Recalculate())

2) Distance, Angle, and Area Measurements now have a public property called Measure.

3) Fixed problem where duplicate labels were created when undoing a deletion with autoLabelPoints on.

4) Commenting out custom ToString() for vector and segment. I think having a ToString() value that is different from the Name value is confusing to the user, especially when building expressions.

by DavidHartmann
Jun 3, 2011
7:53 PM

1) Addressed reflection issues:
-wind of reflecting arcs about points corrected
-reflection creator now allows only points to be reflected about a circle (it was incorrectly reflecting other figures about a circle, though it would be nice to one day add the code that would do this correctly)

2) Appearance of vector changed to resolve style issues. Axes no longer have vector appearance (they could but I thought it would just be a little extra rendering overhead).

by DavidHartmann
Apr 20, 2011
11:43 PM

- FigureStyle.Name now prevents invalid style names. A while back I added the ability for users to change style names. But if a user creates a duplicate style name, problems ensue. Now it's fixed.
- Slight improvement to FunctionGraph. It now prevents the graphing of undefined values. Functions such as ln(x) are now more accuratly graphed. However, functions with discontinuities, such as 1/x, still have mistakes in the graph.
- Interface IMirror added. Currently only used to show proper hints when constructing a reflected figure. Point, Line, Circle are IMirrors.
- Added new setting called PointsOnEllipticalsUseAbsoluteAngle. The default value, true, does not change anything. Changing this to false affects the way a PointOnFigure on an elliptical behaves - basically causing the point to rotate with the figure.
- Fixed mistake in EllipseBase.GetPointFromParameter().

by DavidHartmann
Mar 22, 2011
7:23 PM

-Clearing Undo history once a drawing is loaded. This is necessary as part of the new unsaved changes alert functionality. (Kirill if you don't want this in DG, I can restrict this change to my project.)
-Command buttons now show at 50% opacity when they are disabled.
-Slight change to SetPropertyAction.TryToMerge() to allow proper merging.
-Figure name changes now change in FigureExplorer. A temporary inefficient solution, of resetting FigureExplorer.ItemsSource, is used in DrawingHost.SyncFigureExplorerSelection() and DrawingHost.ToggleFigureExplorer().
-Slight fix to FigureCreator.Stopping() to properly update the enabled state of undo/redo.

by DavidHartmann
Mar 7, 2011
7:57 PM

The Silverlight Client will now alert the user when he/she is closing a drawing with unsaved changes and provide the options to save, don't save, or cancel. This only kicks in when the client is running with elevated permissions. Kirill should the client settings be changed to "Require elevated trust when running outside the browser"?

by DavidHartmann
Mar 5, 2011
3:49 PM

Checking in a file that did not get checked in with last change set.

by DavidHartmann
Mar 5, 2011
3:39 PM

- Fixed flaw in Math.GetProjection() that I had inadvertantly introduced.
- Slight change to JoinTwoSegmentsCreator to allow it to work on polygons
- Locus was creating freepoints on mouse clicks when it should not. To fix this I had to override two figureCreator methods: LookForExpectedDependencyUnderCursor() and AddDependency() to get around the false assumptions involved in expecting an IPoint and using a TempPoint
- FunctionGraph.HitTest() was failing to detect hits on high-slope sections of functions (such as parts of y=x^3 or all of y=100 * x). Switched to using Curve.HitTest() which is its base.
- Slight refactor of CircleByEquationCreator.
- Arcs are not reflecting properly. The wind needs to be flipped. So, adding Clockwise property to IEllipseArc. Implemented in EllipseArcBase. Exposing it in the property grid. Adjusting methods such as HitTest() and WriteToXml() to incorporate it.
- Modified FigureBase.Clone() to use Read/WriteXml so that the clone inherits all properties of a figure. Thusfar, Clone() is only used in Transformer class.
- Fixed transformed figure creators so that they no longer attempt and fail to transform functions, circle by equations, line by equations, and locii.

by DavidHartmann
Feb 22, 2011
4:45 PM

- Making Hyperlink URL visible in the property grid
- New LabelWithOffset subclass called Measurement - First role of class is to Improve control over format and precision of measurement labels ( point coordinates, distance , angle, and area).
- Axes can be hidden programmatically or through property grid for the coordinate plane (which can only be brought up by selecting the coordinate plane in the figure list). The axes visibility is stored with documents. This is a less-than-ideal approach that can be improved upon.
- Blocking the deletion of Coordinate grid through DeleteSelection()
- SnapToPoints, SnapToCenters no longer snap to invisible points and segments

by DavidHartmann
Feb 14, 2011
3:13 PM

- Fixed DeleteSelection() so that undoing a labeled point does not create duplicate labels. (Lot's of problems related to points managing the adding and removing of their labels rather than treating them like any other dependent.)
- Styles can now be deleted. To delete a style, choose the Edit Style button, then there will be a Delete button. I put it within style editing to keep the property grid for a figure from getting too crowded and confusing. The feature prevents deletion of one of the default styles, reverts all figures using that style to the default style, and is undoable.
- Transformed lines, polygons, and ellipticals use the style of source figure
- Vector given an appropriate ZIndex to improve the selecting of it.
- AngleArc was not honoring Visible property.

by DavidHartmann
Jan 30, 2011
3:39 PM

The zipped download of my last check-in did not seem to be valid so trying again.

by DavidHartmann
Jan 30, 2011
3:20 PM

Improved the selecting of small arcs.
Vector (all CompositeFigures) now changing appearance when selected
Option to increase precision of coordinates displayed for points. This option shows up in the Property Grid when the label showing the coordinates of a point is selected.
FigureCreator - modified Stopping() so that changes made in the PropertyGrid are not undone by Transaction.Rollback().
Fixed Two Undo Errors - ReplaceFigureAction.UnExecuteCore() was adding dependents redundantly resulting in eventual errors (Kirill should validate change) When points having labels are replaced and then that action is undone a CheckConsistency error would result.
Ortho - Fixed FigureCreator so that mouse-dragging during creation is also constrained to orthogonal directions.
Function Creator - no longer going to default behavior after each function plotted
UserDefinedTool - this has been broken for a while, fixed error in CreateFigures() caused by EnsureUniqueNames() (Kirill, you may want to validate my change)
Math.SolveLinearSystem() - fixed another checking for zero rather than epsilon problem
There are still two problems in Live Geometry that I notice related to point labels: the Label New Points toggle is out of sync, and undoing the deletion of a labeled point with AutoLabelPoints enabled creates a duplicate label

by KirillOsenkov
Jan 20, 2011
11:30 PM

Adding Math.ArePointsCollinear(Point, Point, Point)