diff options
author | Marko Živković <[email protected]> | 2014-06-11 10:10:33 +0000 |
---|---|---|
committer | Marko Živković <[email protected]> | 2014-06-11 10:10:33 +0000 |
commit | 1107aa0763e3d7554408c401d2a1dbed11a94c51 (patch) | |
tree | 7074264bc7b63f2ee5ee14a39458380fcce1904b /logo/src/xlogo/kernel/perspective/Element3D.java |
Add initial directories and files
git-svn-id: https://svn.code.sf.net/p/xlogo4schools/svn/trunk@1 3b0d7934-f7ef-4143-9606-b51f2e2281fd
Diffstat (limited to 'logo/src/xlogo/kernel/perspective/Element3D.java')
-rw-r--r-- | logo/src/xlogo/kernel/perspective/Element3D.java | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/logo/src/xlogo/kernel/perspective/Element3D.java b/logo/src/xlogo/kernel/perspective/Element3D.java new file mode 100644 index 0000000..d3473cf --- /dev/null +++ b/logo/src/xlogo/kernel/perspective/Element3D.java @@ -0,0 +1,115 @@ +/* XLogo4Schools - A Logo Interpreter specialized for use in schools, based on XLogo by Lo�c Le Coq + * Copyright (C) 2013 Marko Zivkovic + * + * Contact Information: marko88zivkovic at gmail dot com + * + * This program 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 2 of the License, or (at your option) + * any later version. This program 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 this program; if not, write to the Free + * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * + * This Java source code belongs to XLogo4Schools, written by Marko Zivkovic + * during his Bachelor thesis at the computer science department of ETH Z�rich, + * in the year 2013 and/or during future work. + * + * It is a reengineered version of XLogo written by Lo�c Le Coq, published + * under the GPL License at http://xlogo.tuxfamily.org/ + * + * Contents of this file were initially written by Lo�c Le Coq, + * modifications, extensions, refactorings might have been applied by Marko Zivkovic + */ + +package xlogo.kernel.perspective; + +import java.awt.Color; +import java.util.Vector; + +import javax.vecmath.Point3d; + +import xlogo.kernel.LogoError; + +/** + * @author Marko - I decoupled this and its subclasses from Application + * + */ +abstract public class Element3D +{ + protected Viewer3D v3d; + + /** + * Color for each vertex + * + * @uml.property name="color" + * @uml.associationEnd multiplicity="(0 -1)" elementType="java.awt.Color" + */ + protected Vector<Color> color; + + /** + * Vertex coordinates in virtual world + * + * @uml.property name="vertex" + * @uml.associationEnd multiplicity="(0 -1)" + * elementType="javax.vecmath.Point3d" + */ + protected Vector<Point3d> vertex; + + public Element3D(Viewer3D v3d) + { + this.v3d = v3d; + vertex = new Vector<Point3d>(); + color = new Vector<Color>(); + + } + + public void addVertex(Point3d p, Color c) + { + vertex.add(p); + color.add(c); + } + + /** + * This method calculates all attributes for polygon and add it in the 3D + * Viewer + */ + abstract public void addToScene() throws LogoError; + + /** + * This method indicates if the Element3D is a Point. + * + * @return true if this Element3D is a Point, false otherwise + */ + abstract public boolean isPoint(); + + /** + * This method indicates if the Element3D is a Polygon. + * + * @return true if this Element3D is a Polygon, false otherwise + */ + abstract public boolean isPolygon(); + + /** + * This method indicates if the Element3D is a line. + * + * @return true if this Element3D is a line, false otherwise + */ + abstract public boolean isLine(); + + /** + * This method indicates if the Element3D is a Text2D. + * + * @return true if this Element3D is a Text2D, false otherwise + */ + abstract public boolean isText(); + + public int getVertexCount() + { + return vertex.size(); + } +} |