CadLib 4.0 Silverlight Version history

4.0.36.7 Nov 11, 2014:

  • Bug fix: when FILLMODE is 0 hatch entities should not be displayed.

4.0.36.6 Nov 10, 2014:

  • Fixed precision problem with 2D polyline subdivision (Polyline2D.Subdivide1). This caused a problem in surface rendering of some hatches where first and closing points were very close together.
  • Changed Silverlight demo projects to load unknown objects so proxy graphics are displayed.

4.0.36.5 Nov 7, 2014:

  • Implemented RASTERVARIABLES object.
  • Implemented WIPEOUTVARIABLES object. The settings are used for determining whether or not the draw the WIPEOUT frame.
  • Bug fix: exact versions of polygon boolean operations contained a problem in the release version not filtering out zero length segments.

4.0.36.3 Oct 30, 2014:

  • Switched to using robust polygon boolean operations for the hatch entity rendering. No longer using double-precision boolean operations.
  • Fixed problem with DxfBlock.BaseTransformation using wrong base point when block is XREF
  • Bug fix: BigInteger.GetGcd returned incorrect result in some cases.
  • Bug fix: ignore duplicate dimension styles when reading from DXF. Only the first dimension style with a particular name is kept.
  • Bug fix: the dimension line weight should be assigned to dimension tick lines.
  • Improved accuracy of spline fit point calculation.
  • Bug fix: fixed problem in BigRational calculation (finding least significant one bit was incorrect).
  • Added LongRational struct for doing rational calculations based on longs.
  • Bug fix: fixed bug in handling the proxy graphics line types.
  • Changed approximation of hatch line count will draw hatch lines more often.
  • Different handling of hatch boundaries with TextBox flag set.
  • Infinite values in DXF files are allowed in some places now similar to acad.

4.0.36.2 Oct 2, 2014:

  • Renamed enum DrawCommand to DrawCommandCode and made it internal. Renamed class DrawCommandBase to DrawCommand.

4.0.36.1 Oct 1, 2014:

  • Implemented WPF rendering for proxy graphics.
  • Fixed bug in proxy graphics Text2Base rendering.

4.0.36.0 Sep 30, 2014:

  • Added support for the ACAD_PROXY_ENTITY entity (class DxfProxyEntity).
  • Bug fix: fixed crash when encountering duplicate table cell styles in R24+ DWG files.
  • Bug fix: fixed NullReferenceException when reading DXF file in which an insert references a non-existing block. Added an error message when this happens instead.
  • Improved error handling when reading DWG file with corrupt second header data address.
  • Bug fix: DxfLayout.TabOrder should be int instead of short.
  • Bug fix: ignore duplicate table cell styles (last duplicate is kept, previous table cell styles with the same name are discarded).

4.0.117 Sep 23, 2014:

  • Implemented TransformMe for proxy entity.
  • Bug fix: PagedMemoryStream length was incorrectly updated when writing while position was not at end of stream.
  • Bug fix: fixed NullReferenceException problem in DxfBlock.ExternalModel property when ExternalReference was null.
  • Fixed $INSBASE/BasePoint handling for XREF blocks.

4.0.116 Sep 8, 2014:

  • Implemented DWG read/write of plot settings object.

4.0.115 Aug 28, 2014:

  • Bug fix: Silverlight 2 byte text encoding byte array (used for e.g. the ANSI 950 code page) to string conversion contained a bug (incorrect string length calculation, and therefore the string was sometimes too short/too long).

4.0.114 Aug 26, 2014:

  • Repair drawing that contains a recursive block insertion. The insertion will be removed upon reading.

4.0.112 Aug 8, 2014:

  • Added simple example interactor to show mouse position.
  • Bug fix: getting entity drawables from WireframeGraphicsCache nd WireframeGraphics2Cache didn't work properly when entity was part of a block/insert.

4.0.111 Aug 8, 2014:

  • Bug fix: OpenGL RenderingContext.Dispose() could possibly be called by the GC thread and main thread simultaneously. Added a lock in the Dispose().

4.0.110 Aug 8, 2014:

  • Renamed DxfModel.DefaultDimensionStyle to CurrentDimensionStyle and it is now settable.
  • Added property LoadUnknownObjects to DxfReader and DwgReader, so unknown entities are not filtered out. Unknown entities may contain proxy graphics that CadLib can render.
  • Changed WpfApplication example to show how to set a different background color.
  • Added missing writing of $DIMASSOC to DXF.
  • Documented supported version for various header variables.
  • Fixed NRE when cloning null reference dictionary entry.
  • Fixed incorrect cloning of extended line types.

4.0.109 Jul 16, 2014:

  • Minor bug fix for MLINE rendering where some segment element parameters only contain 1 parameter.
  • Bug fix: hatch gradient color reading from DWG R21 failed when containing color book colors.
  • Took care of writing special names so they are accepted by ancient AutoCAD versions R13 and R14.
  • Fixed writing of unsupported objects to earlier formats.

4.0.108 Jul 4, 2014:

  • Added frame display to layout drawing.

4.0.107 Jun 20, 2014:

  • Fixed problems when GraphicsConfig.TryDrawingTextAsText is set during display rendering.
  • Added the possibility to set a spatial filter for DxfInsert objects.
  • Fixed DWG write of TEXT entity for special alignments.
  • Bug fix: When DXF writing a space has to be inserted after each '^' character.
  • Bug fix: extended data of root dictionary was not written to DXF.

4.0.106 May 7, 2014:

  • Bug fix: discard XRECORD objects with illegal value instead of throwing an exception.
  • Bug fix: dimension block generation failed when the Layer was set to null. (Was recently broken due to reworked dimension block generation).
  • Bug fix: GraphicsPath was not disposed when measuring text bounds.
  • Bug fix: '-' character should be treated as alphabetical with respect to line breaking.

4.0.105 Apr 30, 2014:

  • Bug fix: MTEXT codes were not decoded correctly if the MTEXT ended with a code.
  • Bug fix: treat characters "(){}[]" as normal alphabetic characters so there is no line break (in MTEXT) if any of these characters follow/precede an alphanumeric character.

4.0.104 Apr 28, 2014:

  • The radial dimension edit interactor now recalculates the TextMiddlePosition if UseTextMiddlePosition is true and Measurement if it is non-zero when a control point changes.
  • Improved radial dimension block generation.

4.0.103 Apr 24, 2014:

  • Bug fix: disabled writing class for proxy entity.

4.0.102 Apr 23, 2014:

  • Bug fix: aligned 4-point dimension didn't position the arc at the correct section for dimensionLineArcPoint values that fell outside the extension lines.
  • Bug fix: dimension points did not get the correct color upon regeneration.
  • Bug fix: Polygon2D.OverlapTester failed with segments that had near equal x-coordinates (equal within between 1 and 2 times the precision).
  • Bug fix: dynamic block DxfBlockRepresentationData cloning incorrectly assumed ownership of the referenced DynamicBlock.

4.0.101 Apr 14, 2014:

  • Place radial dimension arrow on inside of circle when text is inside circle.

4.0.100 Apr 14, 2014:

  • Bug fix: fixed exception when drawing radial dimension of zero length.
  • Added some ToString() implementations to several dynamic block classes to facilitate debugging.

4.0.35.99 Apr 12, 2014:

  • Bug fix: fixed minor issue with Point2DTextBoxesControl not focusing on the x-coordinate text box when used for second time by e.g. SelectInteractor.MoveInteractor.

4.0.35.98 Apr 11, 2014:

  • Bug fix: fixed rare problem with 2D polygon overlap test.
  • Bug fix: MLINE background fill didn't work correctly for segments with more than 2 elements.
  • Bug fix: added missing properties DxfDimension.InsertionScaling and InsertionRotation.
  • Bug fix: fixed problem in SelectInteractor with drawing selection rectangle for selected entity when selection rectangle was (much) larger than the window rectangle. For very large selection rectangles the drawing was slow and could cause an OutOfMemoryException being thrown (probably due to use of a dotted pen).
  • Bug fix: fixed DXF reading crash of SORTENTS table with duplicate entities.

4.0.35.97 Apr 7, 2014:

  • Bug fix: fixed memory leak in WW.Cad.UI.CadEditControl. When closing a docked window, the Control wouldn't receive the OnLeave event, and therefore the MessageForwarder wasn't removed from the application's message filters. The filter kept a reference to the CadEditControl, resulting in a memory leak. Now when the CadEditControl is disposed, the MessageForwarder is also disposed.
  • Added class DisposableComponentContainer to facilitate disposing objects owned by a Windows Forms Control.

4.0.35.96 Apr 2, 2014:

  • Bug fix: DxfLwPolyline.ExplodeIntoLinesAndArcs didn't explode arcs correctly if Bulge > 0.
  • Bug fix: CadEditControl.CalculateTo2DTransform should do nothing if Width or Height are 0.
  • Bug fix: SelectInteractor.Select(List<DxfEntity> entities, Matrix4D projectionTransform) didn't select inserts/dimensions.
  • Fixed missing codepage strings.

4.0.35.95 Mar 31, 2014:

  • Used latest Sandcastle version and give the option of installing VS 2010/2012/2013 help during installation.
  • Added DxfLeader annotation scale support.

4.0.35.94 Mar 29, 2014:

  • Bug fix: RedBlackTree.Remove failed in some cases.
  • Stability improvements in the Polygon2D.OverlapTester.

4.0.35.93 Mar 28, 2014:

  • Bug fix: LWPOLYLINE rendering sometimes crashed.

4.0.35.92 Mar 28, 2014:

  • Added method Polyline2D.Subdivide2.GetIntersections to calculate all intersections between polylines.
  • Improved hatching for speed and reliability. Duration for complete rendering of our regression test set is reduced by some 33%.

4.0.35.91 Mar 26, 2014:

  • Bug fix: RedBlackTree.Remove was not correctly implemented.
  • Added RedBlackTree.Remove(Node node) method that removes the node without first having to search for it. Useful when the caller already knowns the node.
  • Annotative dimensions support.
  • Added Polygon2D.Overlap method to test if polygons overlap.
  • Made RedBlackTree<T>.Node public and added a Parent property to the node so iterating is more efficient.
  • Added MovePrevious() method to RedBlackTree<T> iterators.
  • Added CurrentNode property to the RedBlackTree<T> iterators so their state can be easily retrieved/restored.
  • Added method Polyline2D.HasIntersections.
  • Added method Segment2d.IntersectsInclusive that also includes the segment end points in the intersection tests.

4.0.35.90 Mar 19, 2014:

  • Bug fix: fixed rare problem with getting true type font due to recursion (probably as a result of the application Exception handling).
  • Fixed sometimes incorrect positioning of LTYPE shapes/texts

4.0.35.89 Mar 14, 2014:

  • Bug fix: layer transparency was not read from/written to DWG files.

4.0.35.88 Mar 12, 2014:

  • Bug fix: PdfExporter did not create images of multiple OLE objects correctly.

4.0.35.87 Mar 11, 2014:

  • Bug fix: the dimension's text style wasn't set.
  • Bug fix: place the radial dimension's dimension line outside the arc if the text is placed outside the arc with the use text middle point setting.

4.0.35.86 Feb 24, 2014:

  • UndoRedoPropertyDescriptor: support nested property descriptor.

4.0.35.85 Feb 19, 2014:

  • Bug fix: fixed problem with line type element text reading/writing from/to DWG R21 and later.
  • Bug fix: line type with text using SHX font was not rendered.

4.0.35.84 Feb 18, 2014:

  • Bug fix: fixed line type element symbol/text scaling bug when used in (nested) inserts with non-uniform scaling.
  • Bug fix: QuaternionD constructor with from/to vector was incorrect.
  • Bug fix: rendering of DxfLine with line type symbols had incorrectly position symbols when part of a block/insert (OCS to WCS transform applied twice).

4.0.35.83 Feb 18, 2014:

  • Bug fix: fixed another line type element text/symbol scaling bug for LWPOLYLINE entity.
  • Bug fix: fixed line type element text/symbol scaling bug for LWPOLYLINE entity.
  • Bug fix: line type scaling fix broke the scaling of polyline with width.

4.0.35.82 Feb 14, 2014:

  • Fixed problem with open hatch boundaries which were not always connected.

4.0.35.81 Feb 14, 2014:

  • Bug fix: triangulation of chinese characters with overlapping outer contours sometimes failed (used in OpenGL rendering).
  • Breaking change: allow cloning within the same model. When cloning an object within the same model, only its owned objects are cloned.

4.0.35.80 Feb 7, 2014:

  • DxfEllipse.TransformMe now also handles non-uniform scaling.
  • Bug fix: fixed problem in DxfEllipse.TransformMe().

4.0.35.79 Feb 6, 2014:

  • Bug fix: accept illegal entity line weight in DWG files and convert it to standard line weight.

4.0.35.78 Feb 4, 2014:

  • Changed CadEditControl.TransformationProvider type to ModelTransformationProvider3D.
  • Added EntitySelector.GetEntitiesPartiallyInRectangle methods that allow for selecting entities that are partially in a given rectangle.
  • Added WW.Cad.UI.Actions.ModelTransformationProvider3D that allows a model transformation as first transformation, which is treated separately from the subsequent transformations which are affected by ResetTransforms().
  • Added convenience methods for view transformation access.
  • Provided convenience methods for VIEW, VPORT, and VIEWPORT mapping.
  • Added ImageExporter method allowing to create VPORT configuration bitmaps.
  • Bug fix: table entity reading failed in some circumstances.
  • Bug fix: line type was applied in the OCS instead of in the WCS.
  • Fixed incorrect handling of DxfText mirroring when text is aligned.

4.0.35.77 Dec 19, 2013:

  • Bug fix: cloning of complete model failed in some cases where objects were indirectly cloned. Improved cloning to do a better exact model clone with preserved table record order.
  • Bug fix: fixed problem writing field date time value to DWG (R21 and later).
  • Bug fix: cloning of complete model failed when line type had a reference to a text style. Improved cloning to do a better exact model clone with preserved table record order.
  • First steps for a more unified handling of view-related classes.
  • Write OSMODE heaver variable to DWG R13/14.
  • Added possibility to map DXF line styles to WPF dashes, giving the possibility to reduce WPF memory footprint and drawing duration. See ScaledLinetypeDashStrokePreparer and WpfApplicationExample.

4.0.35.76 Dec 3, 2013:

  • Bug fix: PdfExporter with property UseMultipleLayers set to false wrote corrupt a Pdf file in case of a drawing with empty texts.
  • Bug fix: writing of table cell boolean value to DXF failed.

4.0.35.75 Dec 2, 2013:

  • Bug fix: SelectInteractor.MoveInteractor activated when clicking on grid line. Added property StartInteractionOnMouseDownAtSelectionRectangle to make behavior configurable.
  • Bug fix: fixed NullReferenceException during snap points calculation for overlapping arcs.
  • Small improvements: better drawing speed, less memory footprint.

4.0.35.74 Nov 27, 2013:

  • Bug fix: bounds calculation of OLE objects failed when they were clipped away.
  • Removed public Repair() method from DxfHandledObject as it shouldn't be used by library users.
  • Added basic support for snap related header variables.
  • Added DXF i/o support for snap related header variables.

4.0.35.73 Nov 26, 2013:

  • Bug fix: fixed problem with reading of extended data from DWG files for polyline entities.
  • Fixed possible null Layer reference.

4.0.35.72 Nov 25, 2013:

  • CadEditControl: Remove zoom rectangle interactor upon deactivation.

4.0.35.71 Nov 18, 2013:

  • Added property GraphicsConfig.DisplayLineTypeElementShapes (default value is false). CadLib's current rendering of line type element shapes is too slow when drawing many shapes.
  • Bug fix: renamed anonymous with no name (illegal) upon reading.
  • Bug fix: fixed issue with selection move interactor and snapping.
  • Replaced exception for missing handle in block stretch action with warning.

4.0.35.70 Nov 15, 2013:

  • Relaxed type casting of various internal references, instead of throwing an exception for wrong types and stop reading now only a warning is issued.

4.0.35.69 Nov 12, 2013:

  • Bug fix: snap points were not updated when entity was changed through property grid.
  • Allow moving selection by using snap points for base and target point.
  • Bug fix: snap points were not always updated when moving selection.
  • Entity edit interactors are no longer removed upon deactivation.
  • Bug fix: spline rendering crashed when knot vector was invalid.

4.0.35.68 Nov 7, 2013:

  • Improved stability of hatching triangulation used by the surface rendering.

4.0.35.67 Nov 7, 2013:

  • Bug fix: fixed OLE image rendering problem when image boundary was clipped away.

4.0.35.66 Nov 6, 2013:

  • Bug fix: snap points were not updated when performing a do/undo.
  • Refactored WpfWireframeGraphics3D to be closer in line with GDIGraphics3D. Because of this some methods and properties have been renamed/removed. WpfWireframeGraphics3D methods CreateFrameworkElements, UpdateFrameworkElements and RemoveFrameworkElements have been renamed to CreateDrawables, UpdateDrawables and RemoveDrawables. Property FrameworkElements has been removed, instead call method Draw(UIElementCollection) to e.g. draw onto Canvas.Children.
  • Refactored WireframeGraphics2Cache to be in line with WireframeGraphicsCache.
  • Added WireframeGraphicsFactory2ColorChanger, analogous to WireframeGraphicsFactoryColorChanger.

4.0.35.65 Nov 1, 2013:

  • Bug fix: snap points were not updated when performing a do/undo.

4.0.35.64 Oct 30, 2013:

  • Bug fix: closest point on arc snap points were not calculated.
  • Added method accepting DxfMessageCollection return value to CadReader.

4.0.35.63 Oct 30, 2013:

  • Bug fix: introduced DxfTimeSpan to replace System.TimeSpan because some DWG files contain time spans that cannot be contained by System.TimeSpan.

4.0.35.62 Oct 29, 2013:

  • Added parameter Action<IWireframeGraphicsFactory> graphicsFactoryWrapper to method void UpdateDrawables(RenderedEntityInfo renderedEntityInfo, System.Action updateDrawables, Action<IWireframeGraphicsFactory> graphicsFactoryWrapper), so the user can possibly wrap the graphics factory to change the drawable color.

4.0.35.61 Oct 29, 2013:

  • Updated extended Win forms viewing example with entity highlighting.
  • Bug fix: GDIGraphics3D didn't properly update existing entity drawables.
  • Bug fix: WireframeGraphicsCache.GetDrawables(RenderedEntityInfo renderedEntityInfo) didn't return the entity geometry object that included the begin/end entity calls, but just the drawables themselves. The begin/end entity calls were therefore missing, which broke updating GDIGraphics3D drawables.

4.0.35.60 Oct 29, 2013:

  • Fixed Silverlight concurrency problem with font access.
  • Added possibility to decide what happens when hatch line creation overflows limit.

4.0.35.59 Oct 24, 2013:

  • Bug fix in DxfText.TransformMe when mirroring for certain horizontal/vertical alignment cases.
  • DxfMText.TransformMe refinement for mirroring: if the text is mirrored, update the x-axis (optional) and attachment point such that text doesn't get upside down when it was not upside down before the transformation.

4.0.35.58 Oct 23, 2013:

  • Fixed NPE when broken hatch boundary is drawn to ISurfaceGraphicsFactory.
  • Fixed NRE when drawing zero length polylines to ISurfaceGraphicsFactory.
  • DxfText.TransformMe refinement for mirroring: mirroring of DxfText now adjusts AlignmentPoint1/AlignmentPoint2 and horizontal/vertical alignment accordingly. E.g. mirroring text such that the x-axis is flipped, will swap AlignmentPoint1 and AlignmentPoint2 and make left aligned text into right aligned text. If there was no AlignmentPoint2 and it is needed, it is calculated.
  • Implemented DXF read/write for the DxfScale class.

4.0.35.57 Oct 17, 2013:

  • Bug fix: reading of 2 text styles with the same name from a DXF file resulted in a crash.

4.0.35.56 Oct 14, 2013:

  • Bug fix: generation of dimension block for angular 4 point dimension generated incorrected angle when one of the extension lines were reversed.
  • Refactored GDIGraphics3D updateable graphics creation to no longer need the use of null drawables as markers. Instead using nested linked lists of drawables, which is a bit easier to manage and debug.
  • Added support for exchanging line weights during rendering.
  • Bug fix: updating WireframeGraphicsCache when entity visibility changes didn't work properly.
  • Bug fix: Point2DTextBoxesControl didn't use InteractionContext.LengthFormatString.
  • Fixed bug with polygon spline mesh reading.
  • Implemented possibility to add a rectangle in background color to the SvgExporter.
  • Added radius text box to default arc create interactor.
  • Bug fix: rectangle zoom interactor was not displaying the rectangle.
  • Made some changes to SelectInteractor.MoveInteractor so it deactivates at a double click.
  • Added angle check when adding angular 4 point dimension between 2 lines.
  • Turned InvalidCastExceptions for broken non-critical internal references into warnings, making CadLib accept more files.

4.0.35.55 Sep 25, 2013:

  • Bug fix: ignore illegal text style reference from line type element and generate an error message when this is encountered.

4.0.35.54 Sep 25, 2013:

  • Bug fix: ignore illegal text style reference from MTEXT entity and generate an error message when this is encountered.

4.0.35.53 Sep 24, 2013:

  • Bug fix: reading some polygon meshes from DWG where the polygon had more vertices than m * n caused an IndexOutOfRangeException. This change is a minor breaking change, as the vertex 2D arrays are replaced by lists. Vertices now have to be added to the list.

4.0.35.52 Sep 18, 2013:

  • Added support for read/write of a hatch color gradient.
  • Moved clipping related classes from WW.Cad.* to WW.Math.Geometry.
  • Added Box3D class and IInsideTester4D interface to test whether points/polylines are inside a box/rectangle.

4.0.35.51 Sep 5, 2013:

  • Improved DWG reading performance by roughly 30% by caching memory pages. See new class WW.IO.MemoryPageCache.
  • Improved EntityCounter to allow for better fine-tuning.
  • Added EntityCounter for simple statistics creation.

4.0.35.50 Sep 2, 2013:

  • Bug fix: snap point calculation crashed for an lwpolyline without vertexes.

4.0.35.49 Sep 2, 2013:

  • Bug fix: CadEditControl snap points were not updating when an entity was added by an external command.
  • Bug fix: deactivating a entity creation didn't rollback the transaction when deactivating the interactor externally.

4.0.35.48 Aug 29, 2013:

  • Allow DXF writing of ACI color index greater than 255, this is used by some CNC machine software interfaces.

4.0.35.47 Aug 28, 2013:

  • Show selection in original position (in gray) while dragging around the selection.
  • Redesigned the snapping calculation. Added a SnapInfoCache for better efficiency and finer control over when the snap points are updated. E.g. while dragging a selection or when editing a line, the snap points should not be updated. The snap points are calculated in 2 stages, first collection of all snap points. And then while moving the mouse around from these snap points only the close ones are highlighted, and some extra snap points are calculated on the fly (like tangent points).
  • Added copy & paste feature to CadEditControl.

4.0.35.46 Aug 23, 2013:

  • Added SelectInteractor.MirrorInteractor.
  • Changed control points to be defined in the OCS instead of in the WCS. Because the DxfLwPolyline control points are defined in the OCS. Transformation the control points on a higher level is more efficient, so the projection matrix can be reused for multiple control points. So transformation from OCS to WCS and vice versa now happens at the DxfEnity.Interactor level.
  • Added SelectInteractor.RotateInteractor.

4.0.35.45 Aug 22, 2013:

  • Bug fix: fixed problem with writing files in the CadLib evaluation version.

4.0.35.44 Aug 22, 2013:

  • Bug fix: fixed rare problem reading DWG R18 (2004) file containing pages filled with zero bytes.

4.0.35.43 Aug 20, 2013:

  • Repair broken DXF files that have missing AcDbBlockBegin/AcDbBlockEnd entities upon reading.
  • Use snap points when moving selection.
  • Added property Interactor.IsEnabled.
  • Snapping now works in SelectInteractor.MoveInteractor.

4.0.35.42 Aug 15, 2013:

  • Bug fix: LWDISPLAY (DxfHeader.DisplayLineWeight) was not checked when rendering model space.

4.0.35.41 Aug 9, 2013:

  • Repair model upon reading.
  • If dimension does not have a dimension style, assign the default dimension style upon reading.
  • Merged DrawableContext and InteractorDrawableContext into InteractionContext for simplicity.
  • Interactor text boxes now use InteractionContext.LengthFormatString for formatting lengths.
  • Allow entering length when editing a line entity.
  • Allow user to edit circle radius when creating a circle.
  • Replaced property SelectInteractor.ScaleInteractor.KeepAspectRatio by KeepAspectRatioDiagonal and KeepAspectRatioNonDiagonal for finer control of scaling behavior.
  • Used 2 color circles in CadColorEditor instead of the enumeration of the 255 colors.

4.0.35.40 Aug 8, 2013:

  • Bug fix: fixed issue with arc snap points also including the whole circle.
  • Fixed block renaming not handling case correctly during cloning resulting in name clash.
  • Bug fix: mouse sometimes ended up on the tool window, created a FloatingForm that works better (mouse never ends up on that).
  • Bug fix: when pressing Esc on a tool window, the window control was removed from the parent, but was still receiving mouse events. Therefore pressing esc twice resulted the transaction in being rolled back twice. Solved as well by using the new FloatingForm. (Otherwise making the control invisible or not enabled also seemed to solve the issue). Rolling back/committing a transaction twice should also be impossible, so that has been changed as well on the Transaction level.
  • Bug fix: snapping did not work for first point of polyline/spline when creating polyline/spline.

4.0.35.39 Aug 6, 2013:

  • Bug fix: fixed issue with the trial version of CadLib with read/write of a DXF/DWG file previously written by the CadLib trial version.
  • Display line type graphic in UITypeEditor for DxfLineType.
  • Added UndoRedoPropertyDescriptor custom type descriptor that supports undo/redo.
  • Bug fix: editing entity color did not work when selecting multiple entities with different colors.
  • Added UITypeEditor classes for WW.Cad.Model.Color and EntityColor so they can be changed in a property grid.
  • Added a control to edit WW.Cad.Model.Color.
  • Added ColorRgbEditor, ColorWheel and ColorListPicker Windows Forms controls. Will serve as base for replacing System.Drawing.Design.ColorEditor which is not present in the .NET Client Profile.

4.0.35.37 Jul 26, 2013:

  • Bug fix: renamed anonymous blocks with duplicate names upon reading and report the renamed block.
  • Bug fix: table cell reading from DXF sometimes failed for empty string cells.
  • Speed up model writing by disregarding line type in the bounds calculation.
  • Bug fix: table style was not read correctly when cell style map object did not contain any cell styles.

4.0.35.36 Jul 25, 2013:

  • Implemented DXF reading and writing of summary info.
  • Bug fix: time spans were not written correctly to DWG.
  • Fixed internal exception thrown when Silverlight 5 accesses line break info.
  • Made handling of all rendering pipelines for DxfIDBlockReference consistent

4.0.35.35 Jul 17, 2013:

  • Minor bug fixes in WW.Cad.UI snap point handling.

4.0.35.34 Jul 17, 2013:

  • WW.Cad.UI. Created string resources for some hard coded error messages.
  • Refined snap mode handling.
  • Added special snap mode for tangent points with a new symbol, and gave it higher priority in the snap mode order.
  • Bug fix: only show tangent snap point if mouse position is close.
  • Bug fix: spline creation by interactor was not correct (no knots where calculated).
  • Bug fix: BSplineD.CreateDefaultKnotValues created an incorrect knot vector in some cases (for control point count greater than degree + 1).

4.0.35.33 Jul 17, 2013:

  • Bug fix: discard 3D polylines that reference vertices with invalid type upon reading from file.
  • Fixed bug in SHX rendering which resulted in missing lines under rare circumstances (eg "parallelism" in gdt.shx).
  • Fixed hatch creation to mimick AutoCAD's behavior (hatch lines might be rendered slightly dislocated compared to earlier versions).
  • Added pattern transformation to DxfHatch.TransformMe().
  • Added setting for pattern transformation handling to TransformConfig.
  • Added PatternOffset property to DxfHatch allowing to move pattern.

4.0.35.32 Jul 11, 2013:

  • Bug fix: SelectInteractor.MoveInteractor behavior upon enter/esc key didn't properly add a translation command/undo the translation.

4.0.35.31 Jul 11, 2013:

  • Used transaction in SelectInteractor.ScaleFromBasePointInteractor, so undo/redo works properly and the action can be cancelled.
  • Moved Transaction from WW.Cad.UI.Actions to WW.Actions.
  • Removed AssociatedInteractor property from Transaction class and promoted Committed/RolledBack/Completed events to ITransaction interface.
  • Bug fix: CadEditControl did not highlight the correct snap point.
  • Bug fix: Scale from base point interactor was broken.
  • Fixed problem with hatch pattern not obeying hatch angle.

4.0.35.30 Jul 10, 2013:

  • Bug fix: selection move interactor didn't work properly when using two clicks for interaction.

4.0.35.29 Jul 8, 2013:

  • Bug fix: arc with start and end point and radius creation should allow a radius of at least half the distance between start and end point.
  • Bug fix: LWPOLYLINE creation with length when next vertex has not been provided yet resulted in an overflow exception.

4.0.35.28 Jul 8, 2013:

  • Exposed CadEditControl.MinorGridLinePen and MajorGridLinePen properties.

4.0.35.27 Jul 8, 2013:

  • Improved error messages when trying to create arc with start point, end point and radius and not all inputs were provided/correct.
  • CadEditControl now allows moving a single selected entity. Before only the control points could be moved with the mouse.
  • Bug fix: several interactors always returned true in their ProcessMouse* methods, but should only return true if it actually consumed the event.
  • Changed interactors with text box controls such that the text boxes follow the mouse position even when other interactors consume the mouse events.
  • Added a Windows message forwarder so the scroll wheel works in the CadEditControl even when there is a TextBox control on it that has focus.
  • Fixed issue with zoom/pan not working during editing of an entity by changing the order of the interactors.
  • CadEditControl: Added option to add external snap points.
  • Added setting that allows users to draw non-diagonal lines by default. Introduced CadInteractionContext for this.
  • Added Vector3D.GetAngleAroundAxis() method.

4.0.35.26 Jul 1, 2013:

  • Added new create interactor for LWPOLYLINE entity that allows entering a length (distance between two consecutive vertices).
  • Implemented extended line type fitting
  • Refactored CadEditControl to allow any layout/block to be displayed.

4.0.35.25 Jun 24, 2013:

  • Shows intersection points of entity currently being edited.
  • Added convenience ImageExporter.Create[AutoSized]Bitmap methods w/o backColor parameter
  • Added snap to tangent point filter.
  • Special line/arc create interactors that have text boxes now accept the Esc key.
  • Added option to add a angular dimension between two selected lines.
  • Added interactor to create an arc from a start/end point and a radius (and a mid point hint).
  • Bug fix: using shift key to force line to be horizontal/vertical didn't work properly.
  • Added new interactor to create a line by entering a length in a text box.
  • Breaking change: DxfEntity.CreateInteractor.CreateWinFormsDrawable method parameters, added parameters InteractorDrawableContext context, System.Windows.Forms.Control hostControl.
  • Fixed issue with flicker of child controls on the CadEditControl by using the WS_EX_COMPOSITED flag on CreateParams.ExStyle.

4.0.35.23 Jun 12, 2013:

  • Bug fix: CtbFile should accept line weights that have extra text after the line weight (seems encoded, meaning unknown at the moment).

4.0.35.22 Jun 12, 2013:

  • Silverlight: Extended ICadView interface with convenience properties Model, Layout and ModelTransform.
  • Bug fix: don't show spatial filter when insert's layer is disabled.
  • Updated incorrect documentation on the DxfSpatialFilter class.

4.0.35.21 May 28, 2013:

  • Bug fix: conversion to GraphicsPath of wide polyline that represents a circle failed. Improved wide polyline rendering to recognize when one side of the wide polyline is compressed into a dot.
  • Bug fix: reading Int64 from DWG was incorrect for values larger than max Int32.

4.0.35.20 May 24, 2013:

  • Bug fix: fixed problem reading/writing TEXT entity zero second alignment point from/to a DWG file.
  • Fixed rare XCLIP (DxfSpatialFilter) problems.

4.0.35.19 May 21, 2013:

  • Bug fix: fixed problem writing DXF file containing LWPOLYLINE vertices with start/end width.

4.0.35.18 May 15, 2013:

  • Bug fix: SimpleTransformationProvider2D did not scale the view correctly when the view became width constrained (and first was height constrained).

4.0.35.17 May 13, 2013:

  • Bug fix: ToGraphicsPathConverter sometimes caused GraphicsPath to throw an ArgumentException("parameter is not valid") when adding a polyline containing a dot. The dot is now handled separately (a rectangle is created for it).

4.0.35.16 May 13, 2013:

  • Added ToPolygon2D() and ToPolygon3D() convenience methods to Polygon4D().
  • Fixed initialization problem in Silverlight door builder demo.

4.0.35.15 May 8, 2013:

  • SelectInteractor.MoveInteractor: allow user to enter the coordinates for moving the selection using 2 text boxees.
  • SelectInteractor.ScaleFromBasePointInteractor allows user to enter scale factor in a text box.
  • DxfArc.ThreePointOnArcCreateInteractor shows the points entered so far.

4.0.35.14 May 2, 2013:

  • Based DoorBuilder examples on 2D instead of 3D
  • Ficed possible stack overflow when using BitmapCadview, caused by invalid matrix
  • Breaking change: split SelectAndTransformInteractor into a SelectInteractor and a SelectInteractor.TransformInteractor that has several subclasses. The user can decide which transform interactors he wants to use on the selection. This replaces the SelectAndTransformInteractor.Mode property (enum InteractionMode has been removed).
  • WW.Cad.UI.Snapping.Filters.EntityArcPointCollector: snap to closest point on circle.
  • WW.Cad.UI.Snapping.Filters.EntityArcPointCollector: Added option to snap to closest point on arc.
  • Bug fix: arc snap point calculation did not take the arc's z-axis into account.
  • Bug fix: try to keep a positive z-axis z-coordinate when creating an arc using the 3-point on arc interactor.

4.0.35.13 Apr 29, 2013:

  • Fixed problem with vertical MTEXT.

4.0.35.12 Apr 24, 2013:

  • Bug fix: fixed problem with .pat (hatch pattern) files containing lines with only a 0x1a character. CadLib now trim 0x1a characters from each line.

4.0.35.11 Apr 23, 2013:

  • Bug fix: swap arc start angle and end angle when TransformMe mirrors the arc.

4.0.35.10 Apr 23, 2013:

  • Implemented DXF 2013 read/write support.

4.0.35.9 Apr 18, 2013:

  • Clear z-coordinate in DxfArc.ThreePointOnArcCreateInteractor when creating arcs, because otherwise the z-axis might become something else than (0, 0, 1) in case of snapping to 3D points (this would be unexpected).

4.0.35.8 Apr 18, 2013:

  • Added property DxfReader.ThrowExceptionOnInvalidGroupCode. If false it will ignore invalid DXF group codes and create a warning message.
  • Added a DxfArc.ThreePointOnArcCreateInteractor that allows creating an arc by letting the user specify 3 points on the arc.
  • Added optional entity snap filter to CadEditControl/SnapPointHelper.
  • Fixed adding to/removing from selection using the Ctrl key in .NET 3.5.

4.0.35.7 Apr 16, 2013:

  • Added property SelectAndTransformInteractor.MoveSelectionWhenMouseDownAtArea so user can click inside the selection rectangle to move the selection.
  • Bug fix: circle interacting/drawing was incorrect when circle had negative z-axis.
  • Bug fix: CanonicalMouseEventArgs returned a Z component in the WCS position when the projection transform contained a Z-translation. Explicitly set the Z-coordinate to zero.
  • Line edit interactor supports pressing the shift key for snapping horizontally/vertically.
  • Changed edit arc interactor to guess if user wants to create a clockwise/counter clockwise arc. Before it was always counter clockwise.

4.0.35.6 Apr 10, 2013:

  • Bug fix: DxfLineCreator was broken in recent IInteractor redesign.

4.0.35.5 Apr 10, 2013:

  • Bug fix: allow reading duplicate handles in DWG handle table.

4.0.35.4 Apr 9, 2013:

  • Bug fix: reject polyface mesh entities with an illegal vertex index and return an error message.
  • Enabled reading of packed DXF files in Silverlight versions

4.0.35.3 Apr 8, 2013:

  • Bug fix: header variable DIMFXLON wasn't read from/written to DXF.
  • Bug fix: fixed crash when XRECORD reading from DWG containing group code 5014.
  • DxfPolyline2D lost Plinegen flag on read
  • Fixed documentation bug concerning PdfExporter line weight handling (GraphicsConfig.DotsPerInch is not used).

4.0.35.1 Apr 2, 2013:

  • Added DxfLwPolyline.ExplodeIntoLinesAndArcs() method and incorporated into WW.Cad.UI.

4.0.35.1 Apr 1, 2013:

  • Disabled R27 DXF writing, not yet functional.

4.0.35.0 Apr 1, 2013:

  • Bug fix: fixed NullReferenceException in CadEditControl.OnPaint when used in the VS Windows Forms designer.
  • Bug fix: take into account circle/arc z-axis when getting/setting values from the control points (editor functionality).
  • Fixed incorrect DWG writing of spline polyline w/o control points.
  • Fixed missing writing of DxfText's oblique angle for old DXF versions.
  • Fixed NRE in cloning of dynamic blocks.
  • Bug fix: fixed problem reading an R27 DWG file containing an extension dictionary that has no owner handle.
  • Fixed DxfLeader sometimes using wrong arrow when read from DXF.
  • Fixed potential lost of EED during DXF read.
  • Bug fix: dimension block base point transformation should not be applied by rendering.
  • Completed DWG R27 read/write support.

4.0.111 Mar 12, 2013:

  • Fixed incorrect initialization of DxfMLineStyle.Element objects during DXF read, possibly resulting in incorrect color.
  • Fixed lineweight not written for DXF versions 15 to 17.
  • Added missing reading of DxfTextStyle for DxfDimensionStyle table entry.
  • Fixed cloning of DxfUnknownEntity loses handle.
  • Fixed possible NRE during DXF write of DxfPolygonSplineMesh.

4.0.110 Mar 1, 2013:

  • Bug fix: merge broke a few things in last release (DWG R13 color writing and polygon spline mesh cloning).

4.0.109 Mar 1, 2013:

  • Bug fix: dimension style cannot contain rgb colors in the DXF format.
  • DxfText.BoxWidth and BoxHeight now return 0 when the text is empty instead of -infinity.
  • Fixed sometimes incorrect cloning of DxfImage entity.
  • Fixed incorrect cloning of DxfText.ObliqueAngle.
  • Fixed possible NRE in DxfPolygonSplineMesh cloning.
  • Fixed possible NRE in DxfImage cloning.
  • Fixed sometimes incorrect writing of ACI colors (both DXF and DWG).
  • Added documentation and example code for Color/EntityColor classes.
  • Moved DxfIndexedColor to WW.Cad.Model.DxfIndexedColorSet.

4.0.108 Feb 26, 2013:

  • Bug fix: problem with reading from a DXF file with an empty dynamic block without nodes or edges.
  • Fixed incorrect position of DxfText on special circumstances.
  • Fixed InvalidCastException in DxfWriter.
  • Fixed misplaced DxfText when DWG file is saved as DXF.
  • Bug fix: ChunkedMemoryStream didn't read correctly when reading from more than 1 full chunks. Problem was infrequent because reading from multiple chunks for an object is not very common. Added extra unit test.
  • Bug fix: fixed issue with reading the DWG header that popped up occasionally, introduced in version 4.0.34.99.

4.0.106 Feb 19, 2013:

  • Bug fix: recent bug fix with reading multiple blocks with the same name in a DXF file wasn't correct.
  • Fixed incorrect DXF reading of MTEXT rectangle height.
  • Bug fix: PDMODE does not apply to points on the DEFPOINTS layer.
  • Ignore PDSIZE <= 0, just draw points in that case.
  • Bug fix: point cross shape (PDMODE) was factor 2 too large.
  • Set default encoding for SHX 1.1 fonts to ANSI1252.

4.0.105 Feb 15, 2013:

  • Allow multiple AcDbBlockBegin objects with the same name to be present in a DXF file. Only the last one is relevant for non-anonymous blocks.

4.0.104 Feb 15, 2013:

  • Added support for point display mode/size (system variables PDMODE/PDSIZE). When size is equal or less than zero, the value GraphicsConfig.defaultPointDisplaySize is used (default value is 1).

4.0.103 Feb 13, 2013:

  • Added support for R21 dimension style properties: DIMFXL, DIMJOGANG, DIMTFILL, DIMTFILLCLR, DIMARCSYM.
  • When generating the dimension block, respect the SuppressFirstExtensionLine/SuppressSecondExtensionLine settings.
  • Finetuning of PDF output
  • Added a ICommand.Target property, which is the target object being modified.
  • Added a CommandInvoker that can be used to subscribe to commands being executed (useful when commands are nested).
  • Added r/w support for DxfMText ReferenceRectangleHeight property

4.0.102 Feb 1, 2013:

  • Shrinked included fonts for Silverlight
  • Embedded Silverlight fonts contain more glyphs
  • Silverlight: allowed interception during WWF loading

4.0.101 Jan 23, 2013:

  • Changed CadLib's obfuscation settings to fix the following C++/CLI error: error C2686: cannot overload static and non-static member functions with the same parameter types.
  • Allowed to set encoding of old non.Unicode SHX files
  • SHX rendering now additionally tries 'char as index' char selection when default char based selection failed

4.0.100 Jan 21, 2013:

  • Bug fix: WPF image drawing problem in WireframeGraphics2Cache.
  • Implemented WPF drawing of OLE entity.
  • Added property GraphicsConfig.OleImageSize that determines the image size when an OLE entity is drawn (should possibly be adaptive in the future).

4.0.34.99 Jan 21, 2013:

  • Added property SvgExporter.WriteSvgXmlElementAttributes so users can add their own XML attributes to the created XML elements.
  • Bug fix: in some cases a text style's font filename is stored in its extended data.
  • Bug fix: fixed problem with dynamic block reading of extended data.

4.0.34.98 Jan 10, 2013:

  • Added validation on hatch spline edge knots as these are mandatory. Improved the documentation/example code on spline/hatch spline edge.

4.0.34.97 Jan 10, 2013:

  • Bug fix: rendering of some OLE objects crashed due to a NullReferenceException.
  • Made WPF graphics (wpfWireframeGraphics3D) and WireframeGraphics2Cache updateable.

4.0.34.96 Jan 2, 2013:

  • Implemented audit for reading LWPOLYLINE double values from DWG.
  • Bug fix: attribute definition rendering crashed for attdef with MTEXT groups in extension dictionary, and text style was not set. In that case use the attdef's text style.
  • Bug fix: fixed issue with table writing to DXF. Made DxfTable.FlowDirection and DxfTableContent.FlowDirection nullable because it is an override property.
  • Bug fix: fixed DWG table entity read problem that caused the DxfTableContent.TableStyle not to be set.

4.0.34.95 Dec 4, 2012:

  • Minor rendering performance improvements by using a more direct GeneralShape2D to GraphicsPath conversion and slightly more efficient point drawing.
  • Bug fix: the DWG reading sometimes caused an OutOfMemoryException, caused by MemoryStream. Replaced with a chunked memory stream (ChunkedMemoryStream), allocating blocks of 64 KB instead.

4.0.34.94 Dec 3, 2012:

  • Bug fix: fixed rendering problem for OLE2FRAME entity without OLE data.

4.0.34.93 Nov 30, 2012:

  • Bug fix: the lower limit of the range check on the conversion from julian date to regular dates was too low. Changed the limit to match 0001-01-01.

4.0.34.92 Nov 30, 2012:

  • Bug fix: the PolylineShape4D iterator didn't iterate over multiple polylines. This caused a drawing issue in some cases where text was partially clipped and only the first letter would be rendered. The clipping was also slightly refined where it checks if actual clipping took place, if not, then the original shape is returned.

4.0.34.91 Nov 29, 2012:

  • Bug fix: don't crash on DXF files with block begin records with corrupt non block record owner.

4.0.34.90 Nov 28, 2012:

  • Bug fix: plot viewports before/after paper space entities depending on flags DxfPlotsettings.PlotLayoutFlags, bit PlotLayoutFlags.DrawViewportsFirst.
  • Fixed OutOfMemory exception resulting from explicit cast of an empty Shape2D to GraphicsPath
  • Fixed naming of SHX font version constants

4.0.34.89 Nov 7, 2012:

  • Bug fix: table left border overrides were not written correctly to DWG until R21.
  • Bug fix: cloning of nested blocks sometimes failed. Improved the block cloning approach by first creating new instances, and later copying the contents.
  • Bug fix: decoding table entity 2008 data was incorrect.
  • Bug fix: fixed problem in cloning a FIELD object.
  • Bug fix: fixed problem in cloning a whole drawing where table styles were indirectly cloned (can happen if in e.g. an extension dictionary of another object, before the table styles are cloned explicitly).
  • Bug fix: text rendering using IWireframeGraphicsFactory on GDI didn't use the proper GraphicsPath.FillMode. Added property GeneralShape2D.FillMode, similar to GraphicsPath.FillMode.
  • Changed line wrap algorithm to improve support for Eastern languages
  • Bug fix: fixed problem with the spatial filter Clone method (issue WW.Cad-61).
  • Refactored undoable actions. Simplified IUndoableAction interface, renamed UndoableActionStack to UndoableActionGroup, which contains do and undo stacks.
  • Added utility methods DxfEllipse.AngleToParameter and DxfEllipse.ParameterToAngle.
  • Show model/paper space layout depending on the drawing's active layout in the Silverlight 2D example and the 3D bitmap view example (not XNA).
  • Bug fix: rendering of LWPOLYLINE is incorrect in some cases with identical consecutive vertices with bulge.
  • Fixed incorrect handling of vertical texts (only for SHX, SHX files required)

4.0.34.87 Sep 18, 2012:

  • Fixed incorrect color correction with GraphicsConfig.WhiteBackground and GraphicsConfig.BlackBackground

4.0.34.86 Sep 14, 2012:

  • Bug fix: repair DWG files upon reading that contain broken block/layout references.

4.0.34.85 Sep 11, 2012:

  • Bug fix: writing very large handles (larger than uint.MaxValue) to a DWG file failed.
  • Added static methods to DxfReader/DwgReader allowing access to the messages issued during the read
  • Added r/w support for CTB files (WW.Cad.Drawing.CtbFile)
  • Implemented better ACI color handling
  • Fixed MTEST bug showing incorrect color

4.0.34.84 Aug 27, 2012:

  • Fixes entity drawing order for blocks which are not associated with a layout
  • Allows to use or not use SORTENTSTABLE reordering during drawing by setting GraphicsConfig.UseSortEntsTables
  • Fixed incorrect interpretation of MTEXT oblique angle.
  • Fixed concurrent modification exception during DxfModel's preparation for writing.
  • Bug fix: some DWG files may contain a block without a name. CadLib used to reject these.

4.0.34.82 Aug 20, 2012:

  • DxfBody entity supported (IO, Clone)
  • Made improvements to radial/diametric dimension block generation. Text is positioned on the inside of the circle unless there is not enough room.

4.0.34.80 Jul 31, 2012:

  • Bug fix: fixed some issues with table and table style reading/writing from/to DWG (until R21).
  • Bug fix: DIMENSION block generation generated MTEXT entities for R12 files, which doesn't support MTEXT yet. So for R12 generate TEXT entities.
  • Implemented DATATABLE object.
  • Implemented writing TABLECONTENT object to DXF (this is used in the table entity internally since the 2008 release).
  • Fixed a few issues with writing table style.
  • XRECORD now stores DxfHandledObject in the values instead of the handles.
  • Bug fix: DWG writing crashed in trial version when doing two consecutive read/write cycles of the same file.
  • Use faster segment sub division in 2D polygon boolean operations (using a sweep line).

4.0.34.79 Jun 30, 2012:

  • Bug fix: insert attributes weren't updated before writing to DXF/DWG.

4.0.34.78 Jun 29, 2012:

  • Bug fix: NullReferenceException was thrown in XNA text rendering.

4.0.34.77 Jun 28, 2012:

  • Bug fix: DWG reading failed when table cell contained a FIELD object.

4.0.34.76 Jun 28, 2012:

  • Implemented FIELDLIST object, added property DxfModel.FieldList.
  • Bug fix: fixed writing of empty DxfValue object to DWG 2004 and later.
  • Bug fix: writing of DxfValue string until DWG 2004 needs to be 0 terminated.
  • Bug fix: fixed DXF reading until DWG 2004 of value objects that contained an object reference.
  • Bug fix: fixed writing of table cell until DXF 2004.
  • Implemented DWG I/O for the FIELD object.
  • Bug fix: the new polygon boolean operations didn't handle very close points well. Close points are now merged before continuing with the actual boolean operations.
  • Fixed ugly SHX characters in PDF output when linewidth is large
  • Added red black tree.
  • Introduced TransformConfig as defining transformation settings for TransformMe() methods
  • Made GraphicsConfig extend TransformConfig so old code is still compilable
  • Added DXF i/o support for FIELD object
  • Fixed problem with TABLE datetime cell values not handled correctly for versions before 2005, resulting in System.ArgumentOutOfRangeException during read and incorrectly written values
  • Added ColorExchanger example

4.0.34.75 Jun 21, 2012:

  • Bug fix: added support for DXF group codes 5000-5020.

4.0.34.74 Jun 20, 2012:

  • Bug fix: VIEWPORT's were not added to the paper space layout when reading from DXF before R15 (WW.Cad-43).
  • Made DxfLwPolyline.Transform public.

4.0.34.73 Jun 20, 2012:

  • Bug fix: ignore short/ushort group values that are too large when reading DXF, and report an error message instead of throwing an exception.

4.0.34.72 Jun 20, 2012:

  • Reimplemented the 2D polygon boolean operations using a different algorithm for better robustness (issue WW.Cad-44).
  • Switched point inside 2d polygon test from counting ray crossings to counting winding number (basically the same principle, but faster. By only including odd winding numbers the result is the same).

4.0.34.71 Jun 12, 2012:

  • Bug fix: resolving text style/text height from table cell (style) now falls back on the row/column table cell style if there were no overrides.
  • Bug fix: error writing table value string to DWG 21.
  • Fixed bug with solid hatches resulting in missing holes

4.0.34.69 Jun 5, 2012:

  • Fixed bug parsing concatenated format escapes in DxfMText, resulting in incorrect rendering and return of SimplifiedText property
  • Bug fix: some MTEXT contain back slashes in the font specifiers, e.g. /FC:\Windows\...\SomeFont.ttf;.

4.0.34.68 May 31, 2012:

  • Fixed missing layers in PdfExporter with ExportLayers enabled

4.0.34.67 May 31, 2012:

  • Bug fix: fixed problem reading DXF files that don't have a BLOCKS section.

4.0.34.66 May 29, 2012:

  • Bug fix: line segment intersection for overlapping line segments didn't always work.

4.0.34.65 May 28, 2012:

  • Bug fix: introduced IDxfHandledObject interface that DxfModel implements. DxfModel no longer inherits from DxfHandledObject since the model itself cannot have an extension dictionary or xdata (issue WW.Cad-33).
  • Added new methods to EntitySelector to be able to do custom entity selections by implementing EntitySelector.IFilter.
  • Added XML documentation to the new surface rendering classes.

4.0.34.63 May 23, 2012:

  • Added WW.Math.ITransformer4D for allowing non-linear transformations to transform GDIGraphics3D drawables.
  • Fixed issues with SelectAndTransformInteractor, insert can no longer be independently transformed from attribute, but attribute can still be transformed separately.

4.0.34.62 May 20, 2012:

  • Added option to the SVG exporter to export the CAD layers as SVG groups.

4.0.34.61 May 19, 2012:

  • Added constructors to SvgExporter that take a XmlTextWriter as parameter so the caller can change the stream close behavior.
  • Added undo/redo to the SelectAndTransformInteractor.

4.0.34.59 May 12, 2012:

  • Implemented TransformMe for the shape, solid, spline, table and tolerance entity.
  • Bug fix: shape entity wasn't drawn correctly (shape should always start with pen down command).
  • Bug fix: table cell style overrides weren't handled properly.
  • Bug fix: fixed problem writing table cell value to DWG until version 18 (2004).
  • Implemented TransformMe for entities ellipse, hatch, leader, mline, ray and xline.
  • Fixed broken DXF when outputting strings containing linefeeds
  • Added DxfModel.FallbackShxFont and DxfModel.FallbackTrueTypeFont for user-defined fallbacks
  • Made integer group value reading more generous to allow reading of slightly broken DXF

4.0.34.59 May 9, 2012:

  • Implemented TransformMe for the dimension entity.
  • Bug fix: oblique angle wasn't applied properly when generating the aligned dimension block.
  • Bug fix: OCS/WCS transformations were not correct for angular dimensions.
  • Bug fix: angular dimension dimension line arc point is defined in WCS instead of OCS.
  • Bug fix: Extension directory is lost on saving for attribute with field

4.0.34.57 May 8, 2012:

  • Breaking change: DxfEntity.TransformMe method now takes a GraphicsConfig object as extra parameter.
  • Added property GraphicsConfig.TreatAttributesAsPartOfInsert.
  • Implemented TransformMe for arc, circle, mtext, point, all polyline types.
  • Implemented TransformMe for DxfMText.
  • Implemented TransformMe for DxfCircle and DxfArc.
  • Bug fix: SelectAndTransformInteractor didn't select multiple entities that were part of an insert correctly.
  • DxfInsert.TransformMe no longer transforms its attributes. The attributes have to be transformed separately. Reason is that SelectAndTransformInteractor selects inserts and attributes separately, and attributes would otherwise be transformed twice. The behavior might need to be configurable in the future though.

4.0.34.56 May 4, 2012:

  • Made another small performance improvement to the triangulator and solid hatch surface rendering (got rid of the remaining quadratic terms in the number of calculations).

4.0.34.55 May 4, 2012:

  • Improved surface rendering performance for solid hatches, uses faster segment-segment intersection and faster triangle filtering. This especially helps for displaying large GIS files.
  • Improved performance of the 2D triangulator.
  • Added pixel based output for SvgExporter.

4.0.34.54 Apr 30, 2012:

  • Bug fix: Silverlight license checking contained a problem when writing a DXF/DWG file.

4.0.34.53 Apr 28, 2012:

  • Further improved the performance of the 2D triangulator, by doing a faster triangle lookup (again roughly 50% faster).
  • Minor performance enhancements to spline drawing.

4.0.34.52 Apr 27, 2012:

  • Improved the performance of the 2D triangulator, roughly 50% faster for triangulating text.
  • Made triangulator more robust against very close points and points lying on an edge of a triangle.

4.0.34.51 Apr 27, 2012:

  • Made some further performance tweaks after profiling.

4.0.34.50 Apr 24, 2012:

  • Bug fix: getting to WCS transform from z-axis broke in release *.*.34.47.

4.0.34.49 Apr 24, 2012:

  • Bug fix: don't write groups 420/430 (true color/color book color) to DXF before version 18 (2004).

4.0.34.48 Apr 24, 2012:

  • Performance optimization of getting a unit length vector by replacing division by multiplication as much as possible.

4.0.34.47 Apr 24, 2012:

  • Performance optimization of getting a unit length vector by first checking if the length is one. This benefits the overall rendering speed (seems to give about 20-30% performance gain).

4.0.34.46 Apr 20, 2012:

  • Fixed not thread-safe access to SHX characters, resulting in possible NRE or ArgumentException.

4.0.34.45 Apr 18, 2012:

  • Fixed NRE when DxfAttribute/DxfAttributeDefinition is using MTEXT substitute and default style.
  • Fixed NRE when using DxfInsert.AddAttribute() with DxfAttributeDefinition using default style.
  • Fixed broken cloning of DxfSortEntsTable.
  • Fixed exception when evaluating broken DxfPolyline3DSpline.
  • Fixed exception when evaluating broken DxfSpline.

4.0.34.44 Apr 17, 2012:

  • Bug fix: OpenGL example code didn't pass the proper transform to the EntitySelector.
  • Bug fix: TEXT transformation failed on spatial rotation.
  • Added AddAttribute() method to DxfInsert which is taking care of transformation.
  • Enhanced spline calculation accuracy.
  • Added FrameworkElementTaggerDelegate to WpfWireframeGraphics3D to allow for more flexible tagging of WPF framework elements.
  • COMBATIBILITY BREAK: method CreateImage of IWireframeGraphicsFactory2 got additional parameter.

4.0.34.43 Apr 9, 2012:

  • Bug fix: OpenGL normal was inverted for textured triangles (this affected IMAGE entity rendering).

4.0.34.41 Apr 6, 2012:

  • Bug fix: creating drawables with GDIGraphics3D for passed entities argument ignored the entities parameter and drew all model entities.

4.0.34.40 Apr 6, 2012:

  • Bug fix: fixed problem with writing hatch entity to DXF (z-axis is mandatory, even if it has the default value).

4.0.34.39 Apr 6, 2012:

  • Tweaked the Segment2D.GetIntersectionParameters method a little further for more stable dealing with segments that overlap/are on a shared line.

4.0.34.38 Apr 5, 2012:

  • Bug fix: Segment2D.GetIntersectionParameters didn't always correctly detect overlapping line segments.
  • Bug fix: Drawing properties don't have to have a unique name.
  • Bug fix: Polygon debug visualizer mirrored the y-axis.

4.0.34.37 Apr 3, 2012:

  • ssue/WW.Cad-20 fixed (tried to add 3d vertex to 2d polyline)
  • Fixed incorrect vertical alignment for DxfText when vertical alignment is Bottom, Middle or Top
  • Fixed NullReferenceException on broken files referencing no longer available boundary path source objects
  • Fixed view placement problem.
  • Bug fix: DXF layer color reading was incorrect for disabled layers.
  • Improved Exception message when adding duplicate item to ActiveKeyedCollection.

4.0.34.36 Mar 22, 2012:

  • Added support to the PDF exporter for including all layers and customizing the PDF layer's enabled value based on the CAD layer.

4.0.34.35 Mar 14, 2012:

  • Added support to the PDF exporter for changing the layer order and layer formatting.
  • Fixed incorrect renderings of SHX fonts.
  • Bug fix: fixed problem with DWG 2004 decompression.

4.0.34.34 Feb 27, 2012:

  • Bug fix: anonymous block cloning didn't work for block names starting with (*U, *E, *X, *A).
  • Fixed hatch rendering bugs

4.0.34.33 Feb 27, 2012:

  • Bug fix: fixed crash when reading illegal polyface mesh from DXF (issue WW.Cad-22).
  • Fixed incorrect rendering of SHX characters with arcs

4.0.34.32 Feb 21, 2012:

  • Don't write 210, 220, 230 groups to DXF when z-axis is the default (0, 0, 1) vector.

4.0.34.31 Feb 15, 2012:

  • Adds correct rendering for DxfAttribute/DxfAttributeDefinition when based on DxfMText
  • Added support for layers to the PDF export.
  • Bug fix: fixed crash on rendering MLINE without MLINESTYLE. (issue WW.Cad-12).

4.0.34.29 Feb 9, 2012:

  • Bug fix: DWG read/write of LWDISPLAY/XEDIT system variables was inverted.
  • Disabled check on R21 maintenance version 1 DWG writing.

4.0.34.28 Feb 8, 2012:

  • Bug fix: allow reading Int16 values from DXF that are out of range. The illegal value is replaced with zero and an error message is added to the DxfReader.Messages.

4.0.34.27 Feb 7, 2012:

  • Bug fix: fixed issue with cloning of table records that were indirectly cloned as part of extended data.

4.0.34.26 Feb 7, 2012:

  • Bug fix: DWG writing of SPLINE entity: writing of control points/weights and fit points at the same time is not allowed, write one or the other.

4.0.34.25 Feb 3, 2012:

  • Bug fix: update SORTENTS entities cache when related block entities are updated.

4.0.34.24 Feb 2, 2012:

  • Bug fix: fixed DXF reading of 3DSOLID.
  • Exposed methods for getting shapes from a ShxFile.
  • Bug fix: 3DSOLID wasn't read from DWG/DXF.
  • ample file
  • Separated graphics factory from draw context. Removed DrawContext.Wireframe2 class (use DrawContext.Wireframe instead).
  • Added test code

4.0.34.23 Jan 14, 2012:

  • Bug fix: drawing dots (and also line types with dots) still failed in WpfWireframeGraphics3D.

4.0.34.22 Jan 12, 2012:

  • Bug fix: drawing dots (and also line types with dots) failed in WpfWireframeGraphics3D and WpfWireframeGraphics3DUsingDrawingVisual.
  • Fixed problem with Unicode escapes not evaluated in DxfText entity.

4.0.34.20 Jan 12, 2012:

  • Bug fix: also transform attributes when transforming an insert.
  • Added Transformation4D.Scaling overloads that accept an origin as a parameter.

4.0.34.19 Jan 10, 2012:

  • Bug fix: filling graphics caches failed when AreDrawablesUpdateable is false.

4.0.34.18 Jan 9, 2012:

  • Rendering takes into account entity the drawing order as specified by the SORTENTSTABLE object.

4.0.34.17 Jan 9, 2012:

  • Added read/write support for the SORTENTSTABLE object.
  • Removed EntityColors.Black/Colors.Black as this was in reality the BYBLOCK color.
  • Fixed another PDF export problem resulting in "error in page" warning.
  • Draw model space when layout is the model space layout in WireframeGraphicsFactory2Util.
  • Fixed problem with model space layouts not drawn.

4.0.34.16 Jan 5, 2012:

  • Bug fix: line weight rendering by block/by layer were swapped.

4.0.34.15 Dec 30, 2011:

  • Implemented TransformMe for DxfInsertBase.
  • Moved to new Polygon2D.IsInside implementation using winding number (4x faster).

4.0.34.14 Dec 29, 2011:

  • Bug fix: ACAD_TABLE entity was read incorrectly in pre R18 (2004) DXF files.
  • Allowed DxfGroup to contain any handled object as member because in some files at least a DxfDictionary is referenced. This means there is no more DxfGroup.Entities property, but an DxfGroup.Members property instead.

4.0.34.13 Dec 28, 2011:

  • Removed dependencies on System.Design, so CadLib can be used with .NET 4.0 Client Profile.
  • Fixed problem that Adobe Reader sometimes shows warnings when PDF contains underlined text in text output mode.
  • Added spatial filtering based on non-convex polygons.
  • Made text clipping work in PdfExporter.

4.0.34.12 Dec 16, 2011:

  • Bug fix: fixed LEADER color bug in case of BYBLOCK dim line color + entity BYLAYER color.

4.0.34.11 Dec 16, 2011:

  • Bug fix: fix leader color when part of insert/block.
  • Bug fix: dimstyle overrides writing of bylayer colors was incorrect.

4.0.34.10 Dec 16, 2011:

  • Bug fix: fall back to entity color when there is no block context for the BYBLOCK dimension color (used e.g. in LEADER color).
  • Fixed GraphicsConfig.UseSpatialFilters value not cloned.

4.0.34.9 Dec 15, 2011:

  • Bug fix: viewport cloning failed in some cases.

4.0.34.6 Dec 13, 2011:

  • Added support for spatial filtering. Support includes: * i/o for DxfSpatialFilter in both DXF and DWG. * rendering of spatial filters for both Wireframe and Wireframe2 when config.UseSpatialFilters is set to true (the default) Support includes not: * Surface rendering * easy creation of a spatial filter and assignment to DxfInsert

4.0.34.5 Dec 12, 2011:

  • Bug fix: updating graphics (cache) failed when updating both insert and its attributes.
  • Added DWG read/write support for spatial filter.

4.0.34.4 Dec 4, 2011:

  • Bug fix: SelectAndTransformInteractor didn't work properly for attributes in an insert.
  • Addition of DxfFilter/DxfSpatialFilter and r/w for DXF.
  • Added WireframeGraphicsCache.
  • Bug fix: minor issue with handling transformation of bounding box.
  • Implemented DxfRasterImage.TransformMe.

4.0.34.3 Nov 24, 2011:

  • Bug fix: SelectAndTransformInteractor didn't work properly in paper space.

4.0.34.2 Nov 22, 2011:

  • Fixed incorrect calculation of text alignment point 1.

4.0.34.1 Nov 17, 2011:

  • Bug fix: when cloning table records indirectly as a result of cloning extended data, then add the cloned table records to the appropriate collection in the target model.
  • Don't crash on reading invalid XDATA, but return an error message in the DXF/DWG reader.

4.0.34.0 Nov 13, 2011:

  • Released 3DSOLID support (read/write).
  • Made tweaks to GDIGraphics3D api to be more consistent with other updateable graphics factories (the recent graphics cache classes).

4.0.33.56 Nov 11, 2011:

  • Added methods to add/remove drawables from SurfaceGraphicsCache and WireframeGraphics2Cache.

4.0.33.55 Nov 11, 2011:

  • Bug fix: calculation of DxfText.AlignmentPoint1 from AlignmentPoint2 was incorrect for non-horizontal text.

4.0.33.54 Nov 10, 2011:

  • Added SurfaceGraphicsCache class (similar to WireframeGraphics2Cache).
  • Bug fix: updating drawables in WireframeGraphics2Cache didn't work properly.
  • Simplified ISurfaceGraphicsFactory a little (removed entity and draw context parameters where not necessary).

4.0.33.53 Nov 8, 2011:

  • Bug fix: HATCH entities with a boundary path consisting of just 2 line segments should not be rendered.

4.0.33.52 Nov 7, 2011:

  • Bug fix: SvgExporter wrote heigth instead of height.

4.0.33.51 Nov 5, 2011:

  • Removed unnecessary check on duplicate hatch boundary polyline vertices.

4.0.33.50 Nov 5, 2011:

  • Added support to SelectAndTransformInteractor for working in a paper space layout.

4.0.33.49 Nov 1, 2011:

  • Bug fix: reading transparency from DXF was incorrect.
  • Used WireframeGraphicsFactoryUtil in WriteableBitmapExGraphics3D (Silverlight).

4.0.33.48 Oct 30, 2011:

  • Added GDIGraphics3D.CreateGraphicsFactory() method so a user can make direct calls to the graphics factory. This way he can create his own wrapper graphics factory and do something special for certain entities. Can use in conjunction with WireframeGraphicsFactoryUtil.
  • Added example solution for new WpfWireframeGraphics3DUsingDrawingVisual class and WireframeGraphics2Cache.

4.0.33.47 Oct 28, 2011:

  • Added wpfWireframeGraphics3DUsingDrawingVisual class that is faster than wpfWireframeGraphics3D.
  • Added WireframeGraphics2Cache.UpdateDrawables method.
  • Added a WireframeGraphics2Cache that caches drawables created using the IWireframeGraphicsFactory2 interface. This helps to speed up recreating WPF drawables when a Canvas is resized.
  • Added properties to access insert transformations or made them public.

4.0.33.46 Oct 23, 2011:

  • Bug fix: rectangle zoom in Silverlight WPF rendering didn't display the correct rectangle.

4.0.33.45 Oct 21, 2011:

  • Added win forms drawables for the rect zoom/rotate interactors.
  • Used the new interactors in the WinFormsExtendedViewExampleCS to replace the old mouse interaction code.
  • Bug fix: SimpleRectZoomInteractor zooming was slightly off.
  • Bug fix: CanonicalMouseEventArgs ignored the mouse wheel in the constructor with win forms mouse event args as parameter.

4.0.33.44 Oct 19, 2011:

  • Adapted plot style handling to allow for overridden colors

4.0.33.43 Oct 19, 2011:

  • Bug fix: GDIGraphics3D.UpdateDrawables failed in some cases (INSERT/ATTRIB) after first attribute drawables were updated, and then later the insert drawables.
  • Bug fix: text transformation failed in some cases.

4.0.33.41 Oct 18, 2011:

  • Bug fix: line weight values BYBLOCK and BYLAYER were swapped.
  • Bug fix: LEADER rendering should use the dimension style's dimension line color for rendering the leader instead of the entity color.

4.0.33.40 Oct 18, 2011:

  • Bug fix: DXF writing of XRECORD crashed for certain groups in some cases. Made POINT3D group handling more consistent between DXF/DWG related code.

4.0.33.39 Oct 10, 2011:

  • Bug fix: GDIGraphics3D.UpdateDrawables had a bug in the drawable linked list administration.

4.0.33.38 Oct 10, 2011:

  • Bug fix: SelectAndTransformInteractor didn't scale horizontal/vertical line correctly when trying to keep the same aspect ratio.

4.0.33.37 Oct 9, 2011:

  • Made a few bug fixes in the SelectAndTransformInteractor and the updating of entity drawables in GDIGraphics3D.
  • Implemented partial updating of drawables in GDIGraphics3D (no noticeable slowdown on CreateDrawables).

4.0.33.35 Oct 6, 2011:

  • Compiled a .NET 4.0 version of SharpZipLib.

4.0.33.33 Sep 30, 2011:

  • All WW assemblies now have the same assembly version.
  • Bug fix: VPORT table record didn't support reading/writing the R21 properties from/to DXF/DWG.

4.0.33.32 Sep 29, 2011:

  • Bug fix: generating BLOCK for ACAD_TABLE ignored the non-zero text STYLE fixed text height setting.
  • Fixed coloring bug in PDF
  • Bug fix: writeablebitmap drawing rectangles in interactors had swapped y-coordinates (broke in last rev).

4.0.33.31 Sep 26, 2011:

  • Bug fix in XRECORD cloning.
  • Added SetBitmap method to DxfImageDef.

4.0.33.30 Sep 23, 2011:

  • Initial release.