Skip to content

Commit 238e476

Browse files
committed
Betere boundaries rond lichtpunt in zowel het eendraadschema als het situatieplan.
1 parent 843205c commit 238e476

File tree

4 files changed

+114
-3
lines changed

4 files changed

+114
-3
lines changed

builddate.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
var CONF_builddate="20250119-133005"
1+
var CONF_builddate="20250119-143835"

eendraadschema.js

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3904,6 +3904,15 @@ var Electro_Item = /** @class */ (function (_super) {
39043904
//this.updateSituationPlanElement(myElement); //Lijkt niet nodig aangezien dit zoiezo gebeurt in getScaledSVG bij iedere update
39053905
return (myElement);
39063906
};
3907+
/**
3908+
* Geeft de boundary's terug van het element in het situatieplan. Deze boundary's worden gebruikt om het element te positioneren en te clippen.
3909+
*
3910+
* @returns {Object} Een object met de volgende properties:
3911+
* - clipleft: de afstand die links wordt weggesneden op de standaard tekening van het Electro_Item. Vaak zit hier 20 nutteloze pixels waar in het eendraadschema een stukje leiding en het nummer staat.
3912+
* - addright: een eventuele afstand die rechts dient toegevoegd te worden, of (indien negatief) een clipping aan de rechter kant.
3913+
* - cliptop: zelfs als clipleft maar aan de bovenkant.
3914+
* - addbottom: zelfde als addright maar aan de onderkant.
3915+
*/
39073916
Electro_Item.prototype.getSitPlanBoundaries = function () {
39083917
return {
39093918
clipleft: 12,
@@ -3912,6 +3921,16 @@ var Electro_Item = /** @class */ (function (_super) {
39123921
addbottom: 0
39133922
};
39143923
};
3924+
/**
3925+
* Genereert de SVG voor gebruik in het Situatieplan. Deze wordt gegenereerd op basis van de standaard SVG in het eendraadschema
3926+
* maar met extra aanpassingen:
3927+
* - de getSVG functies van het Electro_Item worden aangeroepen met een flag dat het hier over een situatieplan symbool gaat. Dit zal er vaak toe leiden dat het stukje leiding links niet getekend wordt.
3928+
* ook is het in dat geval niet altijd nodig om alle tekst rond de symbolen te zetten.
3929+
* - er kunnen clipping operaties plaats vinden omdat de bounding box van het SVG element geoptimaliseerd werd voor gebruik in het eendraadschema en dit is niet noodzakelijk handig
3930+
* voor gebruik in het situatieplan.
3931+
*
3932+
* @param myElement - Het SituationPlanElement waarvoor de SVG gecreëerd moet worden.
3933+
*/
39153934
Electro_Item.prototype.updateSituationPlanElement = function (myElement) {
39163935
var spiegeltext = false;
39173936
var rotate = myElement.rotate % 360;
@@ -6595,6 +6614,42 @@ var Lichtpunt = /** @class */ (function (_super) {
65956614
+ ", Adres/tekst: " + this.stringPropToHTML('adres', 5);
65966615
return (output);
65976616
};
6617+
/**
6618+
* Berekent de grenzen voor het sitplan-element op basis van het type lamp.
6619+
*
6620+
* @returns Een object met de grensverrekeningen: clipleft, addright, cliptop en addbottom.
6621+
* De waarde van clipleft wordt kleiner gezet voor standaardlampen omdat die tekening iets meer naar links ligt.
6622+
*/
6623+
Lichtpunt.prototype.getSitPlanBoundaries = function () {
6624+
var clipleft;
6625+
var addright = 0;
6626+
var cliptop = 0;
6627+
var addbottom = 0;
6628+
switch (this.props.type_lamp) {
6629+
case "led":
6630+
clipleft = 14;
6631+
break;
6632+
case "TL":
6633+
clipleft = 20;
6634+
if (+this.props.aantal_buizen_indien_TL > 3) {
6635+
cliptop = -1;
6636+
addbottom = 1;
6637+
}
6638+
break;
6639+
case "spot":
6640+
clipleft = 17;
6641+
break;
6642+
case "standaard":
6643+
clipleft = 10;
6644+
break;
6645+
}
6646+
return {
6647+
clipleft: clipleft,
6648+
addright: addright,
6649+
cliptop: cliptop,
6650+
addbottom: addbottom
6651+
};
6652+
};
65986653
Lichtpunt.prototype.toSVG = function (sitplan, mirrortext) {
65996654
if (sitplan === void 0) { sitplan = false; }
66006655
if (mirrortext === void 0) { mirrortext = false; }
@@ -6770,7 +6825,7 @@ var Lichtpunt = /** @class */ (function (_super) {
67706825
}
67716826
// Verdere uitlijning en adres onderaan
67726827
mySVG.xright = 90;
6773-
mySVG.data += (sitplan ? "" : this.addAddressToSVG(mySVG, endy + 13, Math.max(mySVG.ydown, endy + 18 - 25), 2));
6828+
mySVG.data += (sitplan ? "" : this.addAddressToSVG(mySVG, endy + 13, Math.max(0, endy - 25 - 5), 2));
67746829
break;
67756830
default: //Normaal lichtpunt (kruisje)
67766831
switch (this.props.type_noodverlichting) {

src/List_Item/Electro_Item.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,15 @@ class Electro_Item extends List_Item {
250250
return(myElement);
251251
}
252252

253+
/**
254+
* Geeft de boundary's terug van het element in het situatieplan. Deze boundary's worden gebruikt om het element te positioneren en te clippen.
255+
*
256+
* @returns {Object} Een object met de volgende properties:
257+
* - clipleft: de afstand die links wordt weggesneden op de standaard tekening van het Electro_Item. Vaak zit hier 20 nutteloze pixels waar in het eendraadschema een stukje leiding en het nummer staat.
258+
* - addright: een eventuele afstand die rechts dient toegevoegd te worden, of (indien negatief) een clipping aan de rechter kant.
259+
* - cliptop: zelfs als clipleft maar aan de bovenkant.
260+
* - addbottom: zelfde als addright maar aan de onderkant.
261+
*/
253262
getSitPlanBoundaries() {
254263
return {
255264
clipleft: 12,
@@ -259,6 +268,16 @@ class Electro_Item extends List_Item {
259268
}
260269
}
261270

271+
/**
272+
* Genereert de SVG voor gebruik in het Situatieplan. Deze wordt gegenereerd op basis van de standaard SVG in het eendraadschema
273+
* maar met extra aanpassingen:
274+
* - de getSVG functies van het Electro_Item worden aangeroepen met een flag dat het hier over een situatieplan symbool gaat. Dit zal er vaak toe leiden dat het stukje leiding links niet getekend wordt.
275+
* ook is het in dat geval niet altijd nodig om alle tekst rond de symbolen te zetten.
276+
* - er kunnen clipping operaties plaats vinden omdat de bounding box van het SVG element geoptimaliseerd werd voor gebruik in het eendraadschema en dit is niet noodzakelijk handig
277+
* voor gebruik in het situatieplan.
278+
*
279+
* @param myElement - Het SituationPlanElement waarvoor de SVG gecreëerd moet worden.
280+
*/
262281
updateSituationPlanElement(myElement: SituationPlanElement) {
263282

264283
let spiegeltext = false;

src/List_Item/Lichtpunt.ts

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,43 @@ class Lichtpunt extends Electro_Item {
4646
return(output);
4747
}
4848

49+
/**
50+
* Berekent de grenzen voor het sitplan-element op basis van het type lamp.
51+
*
52+
* @returns Een object met de grensverrekeningen: clipleft, addright, cliptop en addbottom.
53+
* De waarde van clipleft wordt kleiner gezet voor standaardlampen omdat die tekening iets meer naar links ligt.
54+
*/
55+
getSitPlanBoundaries() {
56+
let clipleft;
57+
let addright = 0;
58+
let cliptop = 0;
59+
let addbottom = 0;
60+
switch (this.props.type_lamp) {
61+
case "led":
62+
clipleft = 14;
63+
break;
64+
case "TL":
65+
clipleft = 20;
66+
if (+this.props.aantal_buizen_indien_TL > 3) {
67+
cliptop = -1;
68+
addbottom = 1;
69+
}
70+
break;
71+
case "spot":
72+
clipleft = 17;
73+
break;
74+
case "standaard":
75+
clipleft = 10;
76+
break;
77+
}
78+
return {
79+
clipleft: clipleft,
80+
addright: addright,
81+
cliptop: cliptop,
82+
addbottom: addbottom
83+
}
84+
}
85+
4986
toSVG(sitplan: boolean = false, mirrortext = false) {
5087
let mySVG:SVGelement = new SVGelement();
5188

@@ -231,7 +268,7 @@ class Lichtpunt extends Electro_Item {
231268

232269
// Verdere uitlijning en adres onderaan
233270
mySVG.xright = 90;
234-
mySVG.data += (sitplan? "" : this.addAddressToSVG(mySVG,endy+13,Math.max(mySVG.ydown,endy+18-25),2));
271+
mySVG.data += (sitplan? "" : this.addAddressToSVG(mySVG,endy+13,Math.max(0,endy-25-5),2));
235272
break;
236273

237274
default: //Normaal lichtpunt (kruisje)

0 commit comments

Comments
 (0)