/******************************************************************************* * Copyright 2010 Simon Mieth * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ /* * Created on 09.09.2009 * */ package org.kabeja.entities; import org.kabeja.math.Point3D; public class LW2DVertex { protected double x; protected double y; protected ExtendedData extendedData; public LW2DVertex(double x, double y) { this.x = x; this.y = y; } public LW2DVertex() { this(0.0, 0.0); } /** * @return the x */ public double getX() { return x; } /** * @param x * the x to set */ public void setX(double x) { this.x = x; } /** * @return the y */ public double getY() { return y; } /** * @param y * the y to set */ public void setY(double y) { this.y = y; } /** * @return the startWidth */ public double getStartWidth() { if (extendedData != null) { extendedData.getStartWidth(); } return 0.0; } /** * @param startWidth * the startWidth to set */ public void setStartWidth(double startWidth) { if (startWidth != 0.0) { if (extendedData == null) { extendedData = new ExtendedData(); } extendedData.setStartWidth(startWidth); } } /** * @return the endWidth */ public double getEndWidth() { if (extendedData != null) { return extendedData.getEndWidth(); } return 0.0; } /** * @param endWidth * the endWidth to set */ public void setEndWidth(double endWidth) { if (endWidth != 0.0) { if (extendedData == null) { extendedData = new ExtendedData(); } extendedData.setEndWidth(endWidth); } } /** * @return the bulge */ public double getBulge() { if (extendedData != null) { return extendedData.getBulge(); } return 0.0; } /** * @param bulge * the bulge to set */ public void setBulge(double bulge) { if (bulge != 0.0) { if (extendedData == null) { extendedData = new ExtendedData(); } extendedData.setBulge(bulge); } } public boolean isConstantWidth() { if (extendedData == null) { return true; } else { return extendedData.getStartWidth() == extendedData.getEndWidth(); } } public Point3D getPoint() { return new Point3D(x, y, 0.0); } protected class ExtendedData { protected double startWidth = 0.0; protected double endWidth = 0.0; protected double bulge = 0.0; public double getStartWidth() { return startWidth; } public void setStartWidth(double startWidth) { this.startWidth = startWidth; } public double getEndWidth() { return endWidth; } public void setEndWidth(double endWidth) { this.endWidth = endWidth; } public double getBulge() { return bulge; } public void setBulge(double bulge) { this.bulge = bulge; } } }