Package org.apache.commons.math3.geometry.spherical.oned

# Class LimitAngle

java.lang.Object
org.apache.commons.math3.geometry.spherical.oned.LimitAngle

All Implemented Interfaces:
  `Hyperplane<Sphere1D>`

public class LimitAngle extends Object implements Hyperplane<Sphere1D>
This class represents a 1D oriented hyperplane on the circle.

An hyperplane on the 1-sphere is an angle with an orientation.

Instances of this class are guaranteed to be immutable.

Since:
  3.3

## Constructor Summary

Constructors
Constructor
Description
`LimitAngle(S1Point location, boolean direct, double tolerance)`
Simple constructor.

## Method Summary

Modifier and Type
Method
Description
`LimitAngle`
`copySelf()`
Copy the instance.
`S1Point`
`getLocation()`
Get the hyperplane location on the circle.
`double`
`getOffset(Point<Sphere1D> point)`
Get the offset (oriented distance) of a point.
`LimitAngle`
`getReverse()`
Get the reverse of the instance.
`double`
`getTolerance()`
Get the tolerance below which points are considered to belong to the hyperplane.
`boolean`
`isDirect()`
Check if the hyperplane orientation is direct.
`Point<Sphere1D>`
`project(Point<Sphere1D> point)`
Project a point to the hyperplane.
`boolean`
`sameOrientationAs(Hyperplane<Sphere1D> other)`
Check if the instance has the same orientation as another hyperplane.
`SubLimitAngle`
`wholeHyperplane()`
Build a region covering the whole hyperplane.
`ArcsSet`
`wholeSpace()`
Build a region covering the whole space.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### LimitAngle

public LimitAngle(S1Point location, boolean direct, double tolerance)
Simple constructor.

Parameters:
  `location` - location of the hyperplane
  `direct` - if true, the plus side of the hyperplane is towards angles greater than `location`
  `tolerance` - tolerance below which angles are considered identical

## Method Details

### copySelf

public LimitAngle copySelf()
Copy the instance.

Since instances are immutable, this method directly returns the instance.

Specified by:
  `copySelf` in interface `Hyperplane<Sphere1D>`
Returns:
  the instance itself

### getOffset

public double getOffset(Point<Sphere1D> point)
Get the offset (oriented distance) of a point.

The offset is 0 if the point is on the underlying hyperplane, it is positive if the point is on one particular side of the hyperplane, and it is negative if the point is on the other side, according to the hyperplane natural orientation.

Specified by:
  `getOffset` in interface `Hyperplane<Sphere1D>`
Parameters:
  `point` - point to check
Returns:
  offset of the point

### isDirect

public boolean isDirect()
Check if the hyperplane orientation is direct.

Returns:
  true if the plus side of the hyperplane is towards angles greater than hyperplane location

### getReverse

public LimitAngle getReverse()
Get the reverse of the instance.

Get a limit angle with reversed orientation with respect to the instance. A new object is built, the instance is untouched.

Returns:
  a new limit angle, with orientation opposite to the instance orientation

### wholeHyperplane

public SubLimitAngle wholeHyperplane()
Build a region covering the whole hyperplane.

Since this class represent zero dimension spaces which does not have lower dimension sub-spaces, this method returns a dummy implementation of a `SubHyperplane`. This implementation is only used to allow the `SubHyperplane` class implementation to work properly, it should not be used otherwise.

Specified by:
  `wholeHyperplane` in interface `Hyperplane<Sphere1D>`
Returns:
  a dummy sub hyperplane

### wholeSpace

public ArcsSet wholeSpace()
Build a region covering the whole space.

Specified by:
  `wholeSpace` in interface `Hyperplane<Sphere1D>`
Returns:
  a region containing the instance (really an `IntervalsSet` instance)

### sameOrientationAs

public boolean sameOrientationAs(Hyperplane<Sphere1D> other)
Check if the instance has the same orientation as another hyperplane.

This method is expected to be called on parallel hyperplanes. The method should not re-check for parallelism, only for orientation, typically by testing something like the sign of the dot-products of normals.

Specified by:
  `sameOrientationAs` in interface `Hyperplane<Sphere1D>`
Parameters:
  `other` - other hyperplane to check against the instance
Returns:
  true if the instance and the other hyperplane have the same orientation

### getLocation

public S1Point getLocation()
Get the hyperplane location on the circle.

Returns:
  the hyperplane location

### project

public Point<Sphere1D> project(Point<Sphere1D> point)
Project a point to the hyperplane.

Specified by:
  `project` in interface `Hyperplane<Sphere1D>`
Parameters:
  `point` - point to project
Returns:
  projected point

### getTolerance

public double getTolerance()
Get the tolerance below which points are considered to belong to the hyperplane.

Specified by:
  `getTolerance` in interface `Hyperplane<Sphere1D>`
Returns:
  tolerance below which points are considered to belong to the hyperplane