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

org.jeometry.geom3D.mesh.indexed.IndexedEdge Maven / Gradle / Ivy

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

import org.jeometry.geom3D.mesh.Edge;
import org.jeometry.geom3D.mesh.Face;
import org.jeometry.geom3D.point.Point3D;
import org.jeometry.geom3D.point.Point3DContainer;
import org.jeometry.geom3D.primitive.Polygon3D;

/**
 * An interface that describe an edge within indexed geometry representation. An Edge is a segment that delimits a {@link Polygon3D polygon} 
 * or that delimits {@link Face faces} of a mesh. Within an indexed geometry representation, an indexed edge holds only indices 
 * to the underlying points that compose its vertices.
 * @param  The underlying type of 3D points
 * @author Julien Seinturier - COMEX S.A. - [email protected] - https://github.com/jorigin/jeometry
 * @version 1.0.0
 * @since 1.0.0
 */
public interface IndexedEdge extends Edge{

  /**
   * Get the indices of the vertices that delimit this edge.
   * @return the indices of the vertices that delimit this edge.
   * @see #getVertices()
   * @see #getVerticesSource()
   */
  int[] getVerticesIndexes();

  /**
   * Get the {@link Point3DContainer container} which holds the points that are referenced by the indices of this geometry.
   * @return the {@link Point3DContainer container} which holds the points that are referenced by the indices of this geometry.
   */
  Point3DContainer getVerticesSource();
  
  /**
   * Set {@link Point3DContainer} which holds the points that are referenced by the indices of this geometry.
   * @param source the {@link Point3DContainer} which holds the points that are referenced by the indices of this geometry.
   */
  void setVerticesSource(Point3DContainer source);
  
  /**
   * Return if the indices of the geometry have been validated. The validation is made by calling method {@link #validateIndexes()}.
   * @return true if the geometry has validated indexes and false otherwise.
   */
  boolean isValidatedIndexes();
  
  /**
   * Validate the geometry. This method valid the link between the indexed geometry and the geometry itself.
   * @return true if the validation is effective, false otherwise.
   */
  boolean validateIndexes();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy