/* GeoGebra - Dynamic Mathematics for Everyone http://www.geogebra.org This file is part of GeoGebra. 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. */ /* * AlgoMidPoint.java * * Created on 24. September 2001, 21:37 */ package org.geogebra.common.geogebra3D.kernel3D.algos; import org.geogebra.common.geogebra3D.kernel3D.geos.GeoPoint3D; import org.geogebra.common.kernel.Construction; import org.geogebra.common.kernel.Matrix.Coords; import org.geogebra.common.kernel.kernelND.AlgoMidpointND; import org.geogebra.common.kernel.kernelND.GeoPointND; import org.geogebra.common.kernel.kernelND.GeoSegmentND; /** * * @author mathieu */ public class AlgoMidpoint3D extends AlgoMidpointND { /** * * @param cons * @param label * @param P * @param Q */ AlgoMidpoint3D(Construction cons, String label, GeoPointND P, GeoPointND Q) { this(cons, P, Q); getPoint().setLabel(label); } /** * * @param cons * @param P * @param Q */ public AlgoMidpoint3D(Construction cons, GeoPointND P, GeoPointND Q) { super(cons, P, Q); } /** * * @param cons * @param segment */ public AlgoMidpoint3D(Construction cons, GeoSegmentND segment) { super(cons, segment); } private Coords tmpCoords; @Override protected GeoPointND newGeoPoint(Construction cons) { tmpCoords = Coords.createInhomCoorsInD3(); return new GeoPoint3D(cons); } @Override public GeoPoint3D getPoint() { return (GeoPoint3D) super.getPoint(); } @Override protected void copyCoords(GeoPointND point) { getPoint().setCoords(point.getCoordsInD3()); } @Override protected void computeMidCoords() { tmpCoords.setAdd3(getP().getInhomCoordsInD3(), getQ().getInhomCoordsInD3()).mulInside3(0.5); getPoint().setCoords(tmpCoords); } }