/******************************************************************************* * 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. ******************************************************************************/ package org.kabeja.entities; import org.kabeja.common.Type; import org.kabeja.math.Bounds; import org.kabeja.math.MathUtils; import org.kabeja.math.Point3D; import org.kabeja.math.TransformContext; /** * @author <a href="mailto:simon.mieth@gmx.de>Simon Mieth</a> * * */ public class Line extends Entity { private Point3D start; private Point3D end; public Line() { start = new Point3D(); end = new Point3D(); } public void setProperty(int groupcode, String value) { } public void setStartPoint(Point3D start) { this.start = start; } /** * @return Returns the end. */ public Point3D getEndPoint() { return end; } /** * @param end * The end to set. */ public void setEndPoint(Point3D end) { this.end = end; } /** * @return Returns the start. */ public Point3D getStartPoint() { return start; } public Bounds getBounds() { Bounds bounds = new Bounds(); bounds.addToBounds(this.end); bounds.addToBounds(this.start); return bounds; } public Type<Line> getType() { return Type.TYPE_LINE; } public double getLength() { return MathUtils.distance(this.start, this.end); } public void transform(TransformContext context) { this.setStartPoint(context.transform(this.getStartPoint())); this.setEndPoint(context.transform(this.getEndPoint())); } }