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

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

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

import java.util.List;

import org.jeometry.Jeometry;
import org.jeometry.factory.MeshBuilder;
import org.jeometry.geom3D.mesh.Edge;
import org.jeometry.geom3D.mesh.Face;
import org.jeometry.geom3D.mesh.Mesh;
import org.jeometry.geom3D.mesh.indexed.IndexedEdge;
import org.jeometry.geom3D.mesh.indexed.IndexedFace;
import org.jeometry.geom3D.mesh.indexed.IndexedMesh;
import org.jeometry.geom3D.mesh.indexed.IndexedTriangleMesh;
import org.jeometry.geom3D.neighbor.MeshNeighborhood;
import org.jeometry.geom3D.point.Point3D;
import org.jeometry.geom3D.point.Point3DContainer;
import org.jeometry.geom3D.primitive.Triangle;
import org.jeometry.geom3D.primitive.indexed.IndexedTriangle;
import org.jeometry.simple.geom3D.mesh.SimpleEdge;
import org.jeometry.simple.geom3D.mesh.SimpleFace;
import org.jeometry.simple.geom3D.mesh.SimpleMesh;
import org.jeometry.simple.geom3D.mesh.indexed.SimpleIndexedEdge;
import org.jeometry.simple.geom3D.mesh.indexed.SimpleIndexedFace;
import org.jeometry.simple.geom3D.mesh.indexed.SimpleIndexedMesh;
import org.jeometry.simple.geom3D.mesh.indexed.SimpleIndexedTriangleMesh;
import org.jeometry.simple.geom3D.mesh.indexed.textured.SimpleIndexedTexturedFace;
import org.jeometry.simple.geom3D.mesh.indexed.textured.SimpleIndexedTexturedTriangle;
import org.jeometry.simple.geom3D.neighbor.SimpleMeshNeighborhood;
import org.jeometry.simple.geom3D.primitive.SimpleTriangle;
import org.jeometry.simple.geom3D.primitive.indexed.SimpleIndexedTriangle;

/**
 * A {@link MeshBuilder mesh 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 SimpleMeshBuilder implements MeshBuilder {

	@Override
	public  Mesh createMesh() {
		return new SimpleMesh();
	}

	@Override
	public  Edge createMeshEdge(Mesh mesh, T vertex1, T vertex2) {
		return new SimpleEdge(mesh, vertex1, vertex2);
	}

	@Override
	public  Face createMeshFace(Mesh mesh, Point3DContainer vertices) {
		return new SimpleFace(mesh, vertices);
	}

	@Override
	public  Face createMeshFace(Point3DContainer vertices) {
		return new SimpleFace(vertices);
	}

	@Override
	public  Triangle createMeshTriangle(T vertex1, T vertex2, T vertex3) {
		return new SimpleTriangle(vertex1, vertex2, vertex3);
	}

	@Override
	public  IndexedMesh createIndexedMesh() {
		return new SimpleIndexedMesh();
	}

	@Override
	public  IndexedMesh createIndexedMesh(int capacity) {
		return new SimpleIndexedMesh(capacity);
	}

	@Override
	public  IndexedEdge createIndexedMeshEdge(int vertex1Index, int vertex2Index) {
		return new SimpleIndexedEdge(vertex1Index, vertex2Index);
	}

	@Override
	public  IndexedEdge createIndexedMeshEdge(int vertex1Index, int vertex2Index,
			IndexedMesh mesh) {
		return new SimpleIndexedEdge(vertex1Index, vertex2Index, mesh);
	}

	@Override
	public  IndexedFace createIndexedMeshFace(int[] indices) {
		return new SimpleIndexedFace(indices);
	}

	@Override
	public  IndexedFace createIndexedMeshFace(int[] indices, IndexedMesh mesh) {
		return new SimpleIndexedFace(indices, mesh);
	}

	@Override
	public  IndexedFace createIndexedMeshFace(List indices) {
		return new SimpleIndexedFace(indices);
	}

	@Override
	public  IndexedFace createIndexedMeshFace(List indices, IndexedMesh mesh) {
		return new SimpleIndexedFace(indices, mesh);
	}

	@Override
	public  IndexedTriangle createIndexedTriangle(int vertex1, int vertex2, int vertex3,
			IndexedMesh mesh) {
		return new SimpleIndexedTriangle(vertex1, vertex2, vertex3, mesh);
	}

	@Override
	public  IndexedTriangle createIndexedTriangle(int[] vertices, IndexedMesh mesh) {
		return new SimpleIndexedTriangle(vertices, mesh);
	}

	@Override
	public  IndexedTriangleMesh createIndexedTriangleMesh(Point3DContainer source) {
		return new SimpleIndexedTriangleMesh(source);
	}

	@Override
	public  IndexedTriangleMesh createIndexedTriangleMesh(int size, Point3DContainer source) {
		return new SimpleIndexedTriangleMesh(size, source);
	}

	@Override
	public  IndexedFace createTexturedIndexedMeshFace(int[] indices) {
		return new SimpleIndexedTexturedFace(indices);
	}

	@Override
	public  IndexedFace createTexturedIndexedMeshFace(int[] indices, IndexedMesh mesh) {
		return new SimpleIndexedTexturedFace(indices, mesh);
	}

	@Override
	public  IndexedFace createTexturedIndexedMeshFace(List indices) {
		return new SimpleIndexedTexturedFace(indices);
	}

	@Override
	public  IndexedFace createTexturedIndexedMeshFace(List indices,
			IndexedMesh mesh) {
		return new SimpleIndexedTexturedFace(indices, mesh);
	}

	@Override
	public  IndexedTriangle createTexturedIndexedTriangle(int vertex1, int vertex2, int vertex3,
			IndexedMesh mesh) {
		return new SimpleIndexedTexturedTriangle();
	}

	@Override
	public  IndexedTriangle createTexturedIndexedTriangle(int vertex1, int vertex2, int vertex3) {
		return new SimpleIndexedTexturedTriangle(vertex1, vertex2, vertex3);
	}

	@Override
	public  IndexedTriangle createTexturedIndexedTriangle(int[] vertices) {
		return new SimpleIndexedTexturedTriangle(vertices);
	}

	@Override
	public  IndexedTriangle createTexturedIndexedTriangle(int[] vertices, IndexedMesh mesh) {
		return new SimpleIndexedTexturedTriangle(vertices, mesh);
	}

	@Override
	public  MeshNeighborhood createMeshNeighborhood() {
		return new SimpleMeshNeighborhood();
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy