12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- /************************************************************************
- * Shape2D.js
- ************************************************************************
- * Copyright (c) 2021 Pedro Tonini Rosenberg Schneider.
- *
- * This file is part of Pandora.
- *
- * Pandora is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Pandora is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Pandora. If not, see <https://www.gnu.org/licenses/>.
- *************************************************************************/
- class Shape2D extends Object2D
- {
- constructor(name, shapeType = null, shape = null)
- {
- super(name);
- this.shapeType = shapeType;
- this.shape = shape;
- this.shapeMode = CORNER;
- this.fillColor = color(255);
- this.noFill = false;
- this.strokeWeight = 1;
- this.strokeColor = color(0);
- this.noStroke = false;
- }
- draw(delta)
- {
- push();
- translate(this.position.x, this.position.y);
- rotate(this.rotationDegrees);
- scale(this.scale.x, this.scale.y);
- fill(this.fillColor);
- strokeWeight(this.strokeWeight)
- stroke(this.strokeColor);
- if (this.noFill) noFill();
- if (this.noStroke) noStroke();
- switch (this.shapeType)
- {
- case SHAPES.RECT:
- rectMode(this.shapeMode);
- rect(0, 0, this.shape.w, this.shape.h);
- break;
- case SHAPES.ELLIPSE:
- ellipseMode(this.shapeMode);
- ellipse(0, 0, this.shape.rx, this.shape.ry);
- }
- this._draw(delta);
- for (let i = 0; i < this.children.length; i++)
- this.children[i].draw(delta);
- pop()
- }
- }
|