/* * $Id$ * * Copyright (c) 2006-10, Multiagent Team, * Laboratoire Systemes et Transports, * Universite de Technologie de Belfort-Montbeliard. * All rights reserved. * * This software is the confidential and proprietary information * of the Laboratoire Systemes et Transports * of the Universite de Technologie de Belfort-Montbeliard ("Confidential Information"). * You shall not disclose such Confidential Information and shall use * it only in accordance with the terms of the license agreement * you entered into with the SeT. * * http://www.multiagent.fr/ */ package org.arakhne.afc.math.geometry.d3.continuous; import org.arakhne.afc.math.geometry.d3.Tuple3D; import org.eclipse.xtext.xbase.lib.Pure; /** * This interface describes an object that permits to classify intersection * between objects and planes. * * @author $Author: sgalland$ * @version $FullVersion$ * @mavengroupid $GroupId$ * @mavenartifactid $ArtifactId$ */ public interface PlaneClassifier { /** * Classifies a plane with respect to the plane. * * @param otherPlane is the plane to classify * @return the classification */ @Pure public PlaneClassification classifies(Plane3D<?> otherPlane); /** * Classifies a point with respect to the plane. * * @param vec * @return the classification */ @Pure public PlaneClassification classifies(Tuple3D<?> vec); /** * Classifies a point with respect to the plane. * * @param x * @param y * @param z * @return the classification */ @Pure public PlaneClassification classifies(double x, double y, double z); /** * Classifies a box with respect to the plane. * * @param lx * @param ly * @param lz * @param ux * @param uy * @param uz * @return the classification */ @Pure public PlaneClassification classifies(double lx, double ly, double lz, double ux, double uy, double uz); /** * Classifies a sphere with respect to the plane. * * @param x * @param y * @param z * @param radius * @return the classification */ @Pure public PlaneClassification classifies(double x, double y, double z, double radius); /** * Replies if the given plane is intersecting the plane. * * @param otherPlane is the plane to classify * @return <code>true</code> if intersection, otherwise <code>false</code> */ @Pure public boolean intersects(Plane3D<?> otherPlane); /** * Replies if the given point is intersecting the plane. * * @param vec * @return <code>true</code> if intersection, otherwise <code>false</code> */ @Pure public boolean intersects(Tuple3D<?> vec); /** * Replies if the given point is intersecting the plane. * * @param x * @param y * @param z * @return <code>true</code> if intersection, otherwise <code>false</code> */ @Pure public boolean intersects(double x, double y, double z); /** * Replies if the given box is intersecting the plane. * * @param lx * @param ly * @param lz * @param ux * @param uy * @param uz * @return <code>true</code> if intersection, otherwise <code>false</code> */ @Pure public boolean intersects(double lx, double ly, double lz, double ux, double uy, double uz); /** * Replies if the given sphere is intersecting the plane. * * @param x * @param y * @param z * @param radius * @return <code>true</code> if intersection, otherwise <code>false</code> */ @Pure public boolean intersects(double x, double y, double z, double radius); }