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

org.jeometry.geom3D.primitive.Polygon3D Maven / Gradle / Ivy

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

import java.io.Serializable;

import org.jeometry.Jeometry;
import org.jeometry.geom3D.point.Point3D;
import org.jeometry.geom3D.point.Point3DContainer;


/**
 * A polygon with vertices expressed within a 3D space.
 * @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 Polygon3D extends Serializable{
  
  /**
   * Get the vertices of the polygon. Each vertex is a {@link Point3D 3D point}.
   * @return the vertices of the polygon
   */
  Point3DContainer getVertices();

  /**
   * Set the vertices of the polygon. Each vertex is a 3D point.
   * @param vertices the vertices of the polygon. Each vertex is a {@link Point3D 3D point}.
   */
  void setVertices(Point3DContainer vertices);
  
  /**
   * Return the segments of the polygon as a 3D line set. 
   * Polygon segments are the lines that link consecutive vertices.
   * @return Vector a Vector containing all the edges of a polygon
   * @see Line3D
   */
  LineSet3D getSegments();


  /**
   * Reverse the order of the vertices that define the polygon.
   */
  void inverseVerticesOrder();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy