All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jeometry.simple.factory.SimplePointBuilder Maven / Gradle / Ivy

The newest version!
package org.jeometry.simple.factory;

import org.jeometry.Jeometry;
import org.jeometry.factory.PointBuilder;
import org.jeometry.geom2D.point.Point2D;
import org.jeometry.geom2D.point.Point2DContainer;
import org.jeometry.geom3D.point.Point3D;
import org.jeometry.geom3D.point.Point3DContainer;
import org.jeometry.math.Vector;
import org.jeometry.simple.geom2D.point.SimplePoint2D;
import org.jeometry.simple.geom3D.point.SimplePoint3D;
import org.jeometry.simple.math.SimpleVector;

/**
 * A {@link PointBuilder point builder} implementation that provide simples pure java implementations.
 * @author Julien Seinturier - COMEX S.A. - [email protected] - https://github.com/jorigin/jeometry
 * @version {@value Jeometry#version}
 * @since 1.0.0
 */
public class SimplePointBuilder implements PointBuilder {

	@Override
	public Vector createPoint(int dimensions, double defaultValue) {
		Vector simpleVector = new SimpleVector(dimensions);
		
		for(int dimension = 0; dimension < simpleVector.getDimension(); dimension++) {
			simpleVector.setValue(dimension, defaultValue);
		}
		
		return simpleVector;
	}

	@Override
	public Point2D createPoint2D() {
		return new SimplePoint2D();
	}

	@Override
	public Point2D createPoint2D(double x, double y) {
		return new SimplePoint2D(x, y);
	}

    @Override
	public Point2D createPoint2D(Point2D point) {
    	return new SimplePoint2D(point);
    }

	@Override
	public Point2D createPoint2D(Vector vector) throws IllegalArgumentException {
		if (vector == null) {
			throw new IllegalArgumentException("Null input vector.");
		}
		
		if (vector.getDimension() < 2) {
			throw new IllegalArgumentException("Invalid input vector dimension "+vector.getDimension()+", expected at least 2.");
		}
		
		Point2D point2d = new SimplePoint2D(vector.getValue(0), vector.getValue(1));
		
		return point2d;
	}
	
	@Override
	public Point2DContainer createPoint2DContainer() {
        // TODO Implements SimplePointBuilder# createPoint2DContainer()
		return null;
	}

	@Override
	public Point2DContainer createPoint2DContainer(int capacity) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Point3D createPoint3D() {
		return new SimplePoint3D();
	}

	@Override
	public Point3D createPoint3D(double x, double y, double z) {
		return new SimplePoint3D(x, y, z);
	}

    @Override
	public Point3D createPoint3D(Point3D point) {
    	return new SimplePoint3D(point);
    }
	
	@Override
	public Point3D createPoint3D(Vector vector) {
		if (vector == null) {
			throw new IllegalArgumentException("Null input vector.");
		}
		
		if (vector.getDimension() < 3) {
			throw new IllegalArgumentException("Invalid input vector dimension "+vector.getDimension()+", expected at least 3.");
		}
		
		Point3D point3d = new SimplePoint3D(vector.getValue(0), vector.getValue(1), vector.getValue(2));
		
		return point3d;
	}
    
	@Override
	public  Point3DContainer createPoint3DContainer() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public  Point3DContainer createPoint3DContainer(int capacity) {
		// TODO Auto-generated method stub
		return null;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy