Further simplify boole kit code
This commit is contained in:
parent
30b6469f8f
commit
4db665ce07
2 changed files with 6 additions and 12 deletions
|
@ -7,10 +7,6 @@ export : define [SetupBuilders args] : begin
|
||||||
define [BooleImplFn] : begin
|
define [BooleImplFn] : begin
|
||||||
define k : {}.slice.call arguments 0
|
define k : {}.slice.call arguments 0
|
||||||
return : lambda [dontinc] : begin
|
return : lambda [dontinc] : begin
|
||||||
local g : new Glyph
|
|
||||||
set g.gizmo : this.gizmo || GlobalTransform
|
|
||||||
if (k.length == 0) : return g
|
|
||||||
|
|
||||||
local contourArcs : getArcsFromProc this k.0
|
local contourArcs : getArcsFromProc this k.0
|
||||||
if (k.length === 1) : set contourArcs : TypoGeom.Boolean.removeOverlap
|
if (k.length === 1) : set contourArcs : TypoGeom.Boolean.removeOverlap
|
||||||
begin contourArcs
|
begin contourArcs
|
||||||
|
@ -27,9 +23,7 @@ export : define [SetupBuilders args] : begin
|
||||||
|
|
||||||
local ctx : new CurveUtil.BezToContoursSink
|
local ctx : new CurveUtil.BezToContoursSink
|
||||||
TypoGeom.ShapeConv.transferBezArcShape contourArcs ctx
|
TypoGeom.ShapeConv.transferBezArcShape contourArcs ctx
|
||||||
set g.contours ctx.contours
|
this.includeContours ctx.contours 0 0
|
||||||
this.includeGlyph g
|
|
||||||
return g
|
|
||||||
|
|
||||||
define [getArcsFromProc g p] : begin
|
define [getArcsFromProc g p] : begin
|
||||||
local g1 : new Glyph
|
local g1 : new Glyph
|
||||||
|
|
|
@ -116,7 +116,7 @@ module.exports = class Glyph {
|
||||||
includeGeometry(geom, shiftX, shiftY) {
|
includeGeometry(geom, shiftX, shiftY) {
|
||||||
if (!geom || !geom.contours || !geom.contours.length) return null;
|
if (!geom || !geom.contours || !geom.contours.length) return null;
|
||||||
if (this.includeGeometryAsTransparentReferences(geom, shiftX, shiftY)) return null;
|
if (this.includeGeometryAsTransparentReferences(geom, shiftX, shiftY)) return null;
|
||||||
return this.includeGeometryImpl(geom, shiftX, shiftY);
|
return this.includeContours(geom.contours, shiftX, shiftY);
|
||||||
}
|
}
|
||||||
|
|
||||||
isPureComposite() {
|
isPureComposite() {
|
||||||
|
@ -138,7 +138,7 @@ module.exports = class Glyph {
|
||||||
if (!geom.isPureComposite()) return false;
|
if (!geom.isPureComposite()) return false;
|
||||||
|
|
||||||
for (const sr of geom.semanticInclusions) {
|
for (const sr of geom.semanticInclusions) {
|
||||||
const cs = this.includeGeometryImpl(sr.glyph, sr.x + shiftX, sr.y + shiftY);
|
const cs = this.includeContours(sr.glyph.contours, sr.x + shiftX, sr.y + shiftY);
|
||||||
if (cs) {
|
if (cs) {
|
||||||
this.semanticInclusions.push({
|
this.semanticInclusions.push({
|
||||||
glyph: sr.glyph,
|
glyph: sr.glyph,
|
||||||
|
@ -150,11 +150,11 @@ module.exports = class Glyph {
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
includeGeometryImpl(geom, shiftX, shiftY) {
|
includeContours(contours, shiftX, shiftY) {
|
||||||
let newContours = [];
|
let newContours = [];
|
||||||
for (const contour of geom.contours) {
|
for (const contour of contours) {
|
||||||
let c = [];
|
let c = [];
|
||||||
c.tag = contour.tag || geom.tag || this.defaultTag;
|
c.tag = contour.tag || contours.tag || this.defaultTag;
|
||||||
for (const z of contour) c.push(Point.translated(z, shiftX, shiftY));
|
for (const z of contour) c.push(Point.translated(z, shiftX, shiftY));
|
||||||
this.contours.push(c);
|
this.contours.push(c);
|
||||||
newContours.push(c);
|
newContours.push(c);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue