Cenon Change Log - June 2001 2001-06-05 Ilonka Fleischmann * vhf2DFunctions.m (vhfIntersectVectors()): horicontal/vertical parallelen -> muss 0 zuröckgeben ! vhf2DFunctions.m (-pointInArray:): < 10.0*TOLERANCE instead < 20.0 *TOLERANCE vhf2DFunctions.m (vhfIntersectsRect()): eigene !!!!!!!!!!!!!!! * Line.m (-intersectLine:): parallel abfragen brauchen eine TOLERANCE Line.m (-bounds:): 0.001 statt 0.01 * HiddenArea.m (-removeSingleGraphicsInList:): #define CLOSETOLERANCE 0.0009 -> 0.03*0.03 HiddenArea.m,h (-removeSingleGraphicsInList:) in .h declared now HiddenArea.m,h (removeGraphics:outside) in .h declared now HiddenArea.m,h (removePartsOf:) in .h declared now * Path.m (-pickOutWithTipAngle:): Aufruf von neuem PickOut Path.m: #import "PickOutAri.h" Path.m (-createOutput:) contour nicht zum outputStream adden ! Path.m (-removeIntersectionsInSubpath:): new algorithm - with tangentIntersection test Path.m (-begEndPairTwiceInArray) new Path.m (-removeSingleGraphicsAtEnd) new Path.m (-getLastObjectOfSubPath:tolerance:) new mit kleinerer Toleranz !!!!!!!!!! Path.m (-isShortGraphic) new Path.m (-isPointInside:dist:): last check if Diff(point.y, bRect.y+bRect.height) <= dist*1.5 Path.m (-isPointInside:dist:): go up and down with horicontal line Path.m (-isPointInside): sidestep + TOLERANCE/2.0 instead + TOLERANCE*10.0 Path.m (-isPointInside:dist:): ON check beröcksichtigt sidestep falls einer gemacht wurde Path.m (-intersectionsForPtInside:with:): own intersection for check of tangential parallel/parallel intersection Path.m (parallelPointbetweenObjects()): double statt float -> gab zwar keine Verbesserung aber mh Path.m (-contour:inlay:removeloops:): Macro AngleNotSmallEnough new (angle smaller 150) Path.m (-contour:inlay:removeloops:): calculation point if(!AngleNotSmallEnough) cut parallel graphics instead parallelPointbetweenObjects() Path.m,h (-getLastObjectOfSubPath:) Bekanntmachung von .m nach .h -> PickOutAri Path.m,h (-directionOfSubPath::) Bekanntmachung von .m nach .h -> PickOutAri Path.m,h (-subPathInsidePath::) Bekanntmachung von .m nach .h -> PickOutAri Path.m (-uniteWith:) intersect and splitt in one part (for self) Path.m (-uniteWith:) remove single graphics after unite Path.m (-getIntersectionsAndSplittedObjects:) new Path.m #import "HiddenArea.h" * Arc.m (-intersectArc:): calculation of ba/ea and ba1/ea1 with TOLERANCE*5.0 instead of 0.1 ! Arc.m (-intersectArc:): at statt a; else if( cnt && Diff(at, 0.0) < TOLERANCE/100.0 ) cnt = 2; // Tangente Arc.m (-getListOfObjectsSplittedFrom:): distance to center > 3.5*TOL.. instead of 2.0 Arc.m (-identicalWith:): arc gleich aber in andere Richtung ? 15.0*TOLERANCE beim angle Arc.m (-identicalWith:): ArcAngleTolerance bei angle vergleich Arc.m,h (-tangentIntersectionWithPath:): new Arc.m (-tangentIntersectionWith:): new Arc.m (-tangentIntersectionLine:): new Arc.m (-tangentIntersectionArc:): new Arc.m (-tangentIntersectionCurve:): new Arc.m (intersectCurveT()): new Arc.m,h (-setFullArcWithCenter:radius:): new Arc.m,h (-init:): ohne wurzeln etc -> setzt full arc Arc.m,h (-setFullArcWithCenter:): new ohne sin cos etc Arc.m,h (-tangentIntersections....!!!!!!!!!!!!:): new Arc.m #import "../vhf2DFunctions.h" Arc.h: (-tangentIntersectionWithPath:): - new Arc.m,h (-setFullArcWithCenter::): new speed for PickOut * Curve.m, h (pointOnCurveNextToPoint()..) now declared in .h needed in PCBContour * PickOutAri.m,h new * PCBContour.m,h new * PathCFill.m (-uniteLinesWithSameGradient2:) if( [[path list] count] > 1 ) return FALSCH -> < 2 instead 2001-06-05 Georg Fleischmann * LayerObject.m, h (-mirrored, -setMirrored:): new, added in places where needed LayerObject.m, h (-isFillable, -hasDip, -isPassive): new * App.m, h (-import:): new * Main.nib: importAccessory added * DocView.m, h (-addList:toLayerAtIndex:): new 2001-06-06 Georg Fleischmann * App.m (validateMenuItem): disable document menu items, if no document exist * DINImportSub.m, h (+layerListFromGraphicList:): new 2001-06-07 Georg Fleischmann * TPAlign.nib: alignLayerSwitch -> new * TPAlign.m, h (-alignLayer:): new 2001-06-08 Georg Fleischmann * ToolObject.m, h: settlement, steps removed * dvOutput.m (-calcOutputForLayer:): calculate isolation of PCB 2001-06-09 Georg Fleischmann * DPLayerDetails.m, h, nib (switchMatrix1, layerTypePopup, -setLayerType): new, changes where needed * dvOutput.m (-calcOutputForLayer:): blow up and rub out added * PCBContour (+createOutputWithList..., +createRubOutputWithList...): new 2001-06-11 Georg Fleischmann * LayerCell.m (-drawInteriorWithFrame...): use hasDip, isFillable, fastSideSelection from layerObject * DPLayerDetails.m (-setLayetType:): only one layer allowed for some types * types.h (VHFLine, VHFMakeLine(), VHFZeroLine): new * Mark.m, h (-origin): new * DPControl.m (-buildOutputAndExecute:): mirror with Mark objects from fitting layer * vhf2DFunctions.m, h (pointMirroedAtAxis()): new vhf2DFunctions.m, h (pointOnLineClosestToPoint()): no pointers as parameters * Arc.m: use pointOnLineClosestToPoint() without pointers * PCBContour.m: use pointOnLineClosestToPoint() without pointers * OutputStream.m, h (-appendStream...): mirroring added * messages.h (LAYERNOTEDITABLE_STRING): new * German/Localizable.strings (LAYERNOTEDITABLE_STRING): new * App.m (import:): import to selected layer instead to first editable layer 2001-06-12 Ilonka Fleischmann * Path.m (-getLastObjectOfSubPath): TOLERANCE instead TOLERANCE*10.0 Path.m (-contour:) Aufruf von contour:inlay:removeLoops: mit NO YES statt NO NO * PCBContour.m (-rubOut): oldFillStyle bleibt in rubOut liste erhalten !! 2001-06-13 Ilonka Fleischmann * Path.m (-contourOpen:): new Path.m (-contour): Abfrage ob closed -> Verteilung nach contour:inlay:: oder contourOpen * PCBContour.m (-pcbContourWithList:::): Farbverteilung isPointInside nur wenn path closed PCBContour.m (-pcbContourWithList:::): Farbverteilung vhfIntersectionsRect() statt !NSIsEmptyRect(NSIntersectio.. 2001-06-13 Georg Fleischmann * DocView.m (-initWithCoder): if tileLimits=0 set tile = NO * dvTile.m (-setTileWithLimits): if tileLimits = 0 set tileOriginList = nil 2001-06-14 Georg Fleischmann * dvOutput.m (-calcOutputForLayer): set BlowUp dirty if isolation object is dirty 2001-06-14 Ilonka Fleischmann * PCBContour.m (-pcbContourWithList:::): Group wird aufgelðst in listCopy copiert * Group.m,h (-ungroupRecursiveTo:with:): new * Path.m (-uniteWith:): 1. Abfrage auch auf Group Path.m (-uniteWith:): ug not splitted and no Path AND no Group * PCBContour.m (-graphicTouchGraphic:): [g1 isKindOfClass:Path] || Group ! * Group.m,h (-getIntersections:with:): new wie beim Path Group.m,h (-uniteWith:): new wie beim Path Group.h (-setFilled:): new Group.m,h (-isPointInside:): new Group.m,h (-getListOfObjectsSplittedFrom:): new wie beim Path Group.m (-getIntersectionsAndSplittedObjects::with): new wie beim Path Group.m (-contour:): color wird wie original gesetzt ! Group.m #import "HiddenArea.h" * Line.m (-getIntersections:with:): Group wie Path * Curve.m (-getIntersections:with:): Group wie Path * Arc.m (-getIntersections:with:): Group wie Path Arc.m (-uniteWith:): 1. Abfrage auch auf Group * Rectangle.m (-uniteWith:): 1. Abfrage auch auf Group * HiddenArea.m (-removeGraphics:inside:) -> Group beröcksichtigen HiddenArea.m (-removeGraphics:outside:) -> Group beröcksichtigen HiddenArea.m (-uniteAreas:) -> cg oder og ist Group -> diese in sich (list) uniten Cenon 3.50 beta 1 2001-06-16 Georg Fleischmann * Graphic.m (-propertyList, initFromPropertyList:): ccw instead of isDirectionCCW, 1 instead of YES * propertyList.m (-colorFromPropertyList, -propertyListFromNSColor:): shorter keys 2001-06-17 Georg Fleischmann * DINImporSub.m (+sortLayer:): convert diameter to mm * DocView.m (draw:): draw output starting with last layer 2001-06-18 Georg Fleischmann * Path.m (-contour:): check for filled instead of closed Cenon 3.50 beta 2 2001-06-19 Georg Fleischmann * PCBContour.m (+createRubOutputWithList:, +createOutputWithList:): remove output if we have no tool * DPLayer.m (-update:): call -setLayerList with currectLayerList instead of nil DPLayer.m (-setLayerList:): allow to set layerList = nil DPLayer.m (-setLayerList:): check if layerObject is in LayerList before setting name. If not update move matrix * LayerCell.m (-dealloc): new LayerCell.m (-setLayerObject:): retain/release 2001-06-20 Georg Fleischmann * TextGraphic.m, h (-setString:font:color:): new TextGraphic.m (-setString:): set lineHeight for font 2001-06-21 Georg Fleischmann * PCBContour.m (+createRubOutputWithList:, +createOutputWithList:): set negative dip * DPLayerDetails.m (setSwitches:): use switchMatrix1 * vhf2DFunctions.m (pointMirroredAtAxis()): Verwndung von Vektor statt Linie 2001-06-22 Georg Fleischmann * PCBContour.m (+createRubOutputWithList:, +createOutputWithList:): remove output if we have no tool 2001-06-22 Ilonka Fleischmann * PCBContour.m (-buildRectanglesFromList): nicht default filled ! nur wenn polygon auch filled ! * DINImport.m (-checkFileFormat:): alles was nicht sm ist ist excellon DINImport.m (-loadExcellonApertures:): viel Umgestellt (mm/inch för tools und inch/mm för bohrungen mðglich, Toolsuche bricht nicht ab wenn kein C gefunden - sucht weiter, res Korrektur nach Toolsuche) Cenon 3.50 beta 3 2001-06-24 Ilonka Fleischmann * Arc.m (-realBounds): MAX(ur.x - ll.x, 0.001) instead MAX(ur.x - ll.x, 1.0) !!! auch Arc.m (-bounds): MAX(ur.x - ll.x, 0.001) instead MAX(ur.x - ll.x, 1.0) Arc.m,h (-isPointInsideOrOn:): new - war isPointInside Arc.m (-isPointInside:): ruft -isPointInsideOrOn auf * Rectangle.m,h (-isPointInsideOrOn:): new - war isPointInside - erweitert um ON Rectangle.m (-isPointInside:): ruft -isPointInsideOrOn auf * PCBContour.m (-clearListForPCBContour): stroked Path elements will be tested if IN or ON Polygon ! PCBContour.m (-clearListForPCBContour): width compare tolerance 250.0*TOLERANCE instead 10.0*TOLERANCE PCBContour.m (-clearListForPCBContour): isPointInsideOrOn instead of isPointInside * Path.m,h (-isPointInsideOrOn:): new - war isPointInside:dist - erweitert um ON Path.m (-isPointInside:): ruft -isPointInsideOrOn:dist auf Path.m (): if(!NSPointInRect()) raus -> beröcksichtigt ON nicht * DINImport.m (-setLine:): no tools -> state.width = state.tool DINImport.m (-setMark:): no tools -> state.width = state.tool DINImport.m (-importDIN:): if( ![tools count]) nur Meldung kein return ! DINImport.m (-getTool:): indirekt state.tool zugewiesen - damit ohne tool verschiedene toolstÙrken 2001-06-26 Ilonka Fleischmann * Line.m (-getListOfObjectsSplittedFrom:): bei horiz./vert. linien werden die Schnittpunkte jeweilig "korrigiert" Cenon 3.50 beta 4 2001-06-27 Georg Fleischmann * OutputStream.m (-drawWithStart:showMoves:): no output for arcs with radius == 0.0