internal StatusGV.TypeStatusExec ValidateSimpContInters(GErrList gerrlist) { /* * MEANING: finds ALL intersections: * including D0, D1 and S/I bezier */ ListInfoInters linters = new ListInfoInters(); if (this.outl == null) { //throw new ExceptionGlyph("Glyph","ValidateSimpContInters",null); return(StatusGV.TypeStatusExec.Aborted); } if (!this.outl.Intersect(linters)) { //throw new ExceptionGlyph("Glyph","ValidateSimpContInters",null); return(StatusGV.TypeStatusExec.Aborted); } if (linters.Count > 0) { GErr gerr = new GErrContInters(this.index, linters); gerrlist.Add(gerr); //this.isOrientDefined=false; } return(StatusGV.TypeStatusExec.Completed); }
internal StatusGV.TypeStatusExec ValidateCompComponentDupl(GErrList gerrlist) { ListPairInt pairsIndComponentDupl = new ListPairInt(); if ((this.comp == null) || (this.outl == null)) { //throw new ExceptionGlyph("Glyph","ValidateCompComponentDupl",null); return(StatusGV.TypeStatusExec.Aborted); } int numComponent = this.comp.NumComponent; for (int pozComponentA = 0; pozComponentA < numComponent - 1; pozComponentA++) { Component componentA = this.comp.ComponentByPoz(pozComponentA); for (int pozComponentB = pozComponentA + 1; pozComponentB < numComponent; pozComponentB++) { ListInfoInters linters = new ListInfoInters(); Component componentB = this.comp.ComponentByPoz(pozComponentB); bool areDuplicated; this.outl.AreDuplicatedComponents(componentA, componentB, out areDuplicated); if (areDuplicated) { pairsIndComponentDupl.Add(componentA.IndexGlyphComponent, componentB.IndexGlyphComponent); } } } if (pairsIndComponentDupl.Count != 0) { GErr gerr = new GErrComponentDupl(this.index, pairsIndComponentDupl); gerrlist.Add(gerr); } return(StatusGV.TypeStatusExec.Completed); }
internal StatusGV.TypeStatusExec ValidateCompComponentInters(GErrList gerrlist) { ArrayList arrLinters = new ArrayList(); if ((this.comp == null) || (this.outl == null)) { //throw new ExceptionGlyph("Glyph","ValidateCompComponentInters",null); return(StatusGV.TypeStatusExec.Aborted); } int numComponent = this.comp.NumComponent; for (int pozComponentA = 0; pozComponentA < numComponent - 1; pozComponentA++) { Component componentA = this.comp.ComponentByPoz(pozComponentA); for (int pozComponentB = pozComponentA + 1; pozComponentB < numComponent; pozComponentB++) { ListInfoInters linters = new ListInfoInters(); Component componentB = this.comp.ComponentByPoz(pozComponentB); bool areDuplicated; this.outl.AreDuplicatedComponents(componentA, componentB, out areDuplicated); if (areDuplicated) { continue; } this.outl.IntersectComponents(componentA, componentB, linters); if (linters.Count != 0) { linters.SetIndGlyphComponent(componentA.IndexGlyphComponent, componentB.IndexGlyphComponent); arrLinters.Add(linters); } } } if (arrLinters.Count != 0) { GErr gerr = new GErrComponentInters(this.index, arrLinters); gerrlist.Add(gerr); } return(StatusGV.TypeStatusExec.Completed); }