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

org.jeometry.geom3D.mesh.Mesh Maven / Gradle / Ivy

There is a newer version: 1.0.5
Show newest version
package org.jeometry.geom3D.mesh;

import java.io.Serializable;
import java.util.List;

import org.jeometry.Jeometry;
import org.jeometry.geom3D.SpatialLocalization3D;
import org.jeometry.geom3D.point.Point3D;
import org.jeometry.geom3D.point.Point3DContainer;
import org.jeometry.geom3D.primitive.Line3D;
import org.jeometry.geom3D.primitive.Polygon3D;

/**
 * This interface represent a mesh within a 3D space.
 * A mesh is made of a {@link Point3DContainer collection of 3D points} (the vertices) that are linked by a collection of {@link Edge edges} 
 * and a collection of faces {@link Face faces}. 
* An {@link Edge} is a {@link Line3D 3D line} that link two vertices. * A {@link Face face} is a {@link Polygon3D 3D polygon}, the set of all faces make the surface of the mesh.
* A mesh can represent a polyhedral object (convex or not) or a surface. * @param The type of the underlying 3D points * @author Julien Seinturier - COMEX S.A. - [email protected] - https://github.com/jorigin/jeometry * @version {@value Jeometry#version} build {@value Jeometry#BUILD} * @since 1.0.0 */ public interface Mesh extends Serializable, SpatialLocalization3D{ /** * Return the {@link Face faces} of the mesh. Faces are planar 3D polygons * @return the list containing the {@link Face faces} of the mesh */ List> getFaces(); /** * Return the {@link Edge edges} of the mesh. Edges are couple of vertices. * @return the list containing the {@link Edge edges} of the mesh */ List> getEdges(); /** * Return the {@link Point3DContainer vertices} of the mesh. * @return the {@link Point3DContainer vertices} of the mesh. */ Point3DContainer getVertices(); /** * Add a new {@link Face face} to the mesh * @param face The {@link Face face} to add to the mesh * @return true if the {@link Face face} is added, false otherwise */ boolean addFace(Face face); /** * Remove the given {@link Face face} from the mesh * @param face the {@link Face face} to remove. * @return true if the {@link Face face} is removed, false otherwise */ boolean removeFace(Face face); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy