PSF-LoginServer/net/psforever/objects/geometry/index.html

25 lines
47 KiB
HTML
Raw Normal View History

<!DOCTYPE html ><html><head><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/><title>PSF-LoginServer - master - net.psforever.objects.geometry</title><meta content="PSF - LoginServer - master - net.psforever.objects.geometry" name="description"/><meta content="PSF LoginServer master net.psforever.objects.geometry" name="keywords"/><meta http-equiv="content-type" content="text/html; charset=UTF-8"/><link href="../../../../lib/index.css" media="screen" type="text/css" rel="stylesheet"/><link href="../../../../lib/template.css" media="screen" type="text/css" rel="stylesheet"/><link href="../../../../lib/print.css" media="print" type="text/css" rel="stylesheet"/><link href="../../../../lib/diagrams.css" media="screen" type="text/css" rel="stylesheet" id="diagrams-css"/><script type="text/javascript" src="../../../../lib/jquery.min.js"></script><script type="text/javascript" src="../../../../lib/index.js"></script><script type="text/javascript" src="../../../../index.js"></script><script type="text/javascript" src="../../../../lib/scheduler.js"></script><script type="text/javascript" src="../../../../lib/template.js"></script><script type="text/javascript">/* this variable can be used by the JS to determine the path to the root document */
var toRoot = '../../../../';</script></head><body><div id="search"><span id="doc-title">PSF-LoginServer - <span id="doc-version">master</span></span> <span class="close-results"><span class="left">&lt;</span> Back</span><div id="textfilter"><span class="input"><input autocapitalize="none" placeholder="Search" id="index-input" type="text" accesskey="/"/><i class="clear material-icons"></i><i id="search-icon" class="material-icons"></i></span></div></div><div id="search-results"><div id="search-progress"><div id="progress-fill"></div></div><div id="results-content"><div id="entity-results"></div><div id="member-results"></div></div></div><div id="content-scroll-container" style="-webkit-overflow-scrolling: touch;"><div id="content-container" style="-webkit-overflow-scrolling: touch;"><div id="subpackage-spacer"><div id="packages"><h1>Packages</h1><ul><li class="indented0 " name="_root_.root" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="_root_"></a><a id="root:_root_"></a> <span class="permalink"><a href="../../../../index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../../../index.html" title=""><span class="name">root</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="indented1 " name="_root_.net" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="net"></a><a id="net:net"></a> <span class="permalink"><a href="../../../../net/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../../index.html" title=""><span class="name">net</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="indented2 " name="net.psforever" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="psforever"></a><a id="psforever:psforever"></a> <span class="permalink"><a href="../../../../net/psforever/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../index.html" title=""><span class="name">psforever</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../index.html" name="net" id="net" class="extype">net</a></dd></dl></div></li><li class="indented3 " name="net.psforever.objects" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="objects"></a><a id="objects:objects"></a> <span class="permalink"><a href="../../../../net/psforever/objects/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../index.html" title=""><span class="name">objects</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../index.html" name="net.psforever" id="net.psforever" class="extype">psforever</a></dd></dl></div></li><li class="indented4 " name="net.psforever.objects.avatar" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="avatar"></a><a id="avatar:avatar"></a> <span class="permalink"><a href="../../../../net/psforever/objects/avatar/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../avatar/index.html" title=""><span class="name">avatar</span></
The region is characterized by a regular circular cross-section when observed from above or below
and a flat top and a flat base when viewed from the side.
The "base" is where the origin point is defined (at the center of a circular cross-section)
and the "top" is discovered a <code>height</code> from the base along what the cylinder considers its <code>relativeUp</code> direction.</p></div><dl class="paramcmts block"><dt class="param">p</dt><dd class="cmt"><p>the point</p></dd><dt class="param">relativeUp</dt><dd class="cmt"><p>what the cylinder considers its "up" direction</p></dd><dt class="param">radius</dt><dd class="cmt"><p>a distance expressed in all circular cross-sections along the <code>relativeUp</code> direction</p></dd><dt class="param">height</dt><dd class="cmt"><p>the distance between the "base" and the "top"</p></dd></dl></div></li><li class="indented0 " name="net.psforever.objects.geometry.Geometry3D" group="Ungrouped" fullComment="yes" data-isabs="true" visbl="pub"><a id="Geometry3DextendsPrimitiveGeometry"></a><a id="Geometry3D:Geometry3D"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/Geometry3D.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">trait</span></span> <span class="symbol"><a href="Geometry3D.html" title="Basic interface of all three-dimensional geometry."><span class="name">Geometry3D</span></a><span class="result"> extends <a href="PrimitiveGeometry.html" name="net.psforever.objects.geometry.PrimitiveGeometry" id="net.psforever.objects.geometry.PrimitiveGeometry" class="extype">PrimitiveGeometry</a></span></span><p class="shortcomment cmt">Basic interface of all three-dimensional geometry.</p><div class="fullcomment"><div class="comment cmt"><p>Basic interface of all three-dimensional geometry.
For the only real requirement for a hree-dimensional geometric figure is that it has three components of position
and an equal number of components demonstrating equal that said dimensionality.
</p></div></div></li><li class="indented0 " name="net.psforever.objects.geometry.Line" group="Ungrouped" fullComment="yes" data-isabs="true" visbl="pub"><a id="LineextendsSlope"></a><a id="Line:Line"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/Line.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">trait</span></span> <span class="symbol"><a href="Line.html" title="Characteristics of a geometric figure indicating an infinite slope - a mathematical line."><span class="name">Line</span></a><span class="result"> extends <a href="Slope.html" name="net.psforever.objects.geometry.Slope" id="net.psforever.objects.geometry.Slope" class="extype">Slope</a></span></span><p class="shortcomment cmt">Characteristics of a geometric figure indicating an infinite slope - a mathematical line.</p><div class="fullcomment"><div class="comment cmt"><p>Characteristics of a geometric figure indicating an infinite slope - a mathematical line.
The slope is always a unit vector.
The point that assists to define the line is a constraint that the line must pass through.
</p></div></div></li><li class="indented0 " name="net.psforever.objects.geometry.Line3D" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="Line3DextendsGeometry3DwithLinewithProductwithSerializable"></a><a id="Line3D:Line3D"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/Line3D.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">case class</span></span> <span class="symbol"><a href="Line3D.html" title="The instance of a geometric coordinate position and a specific direction from that position."><span class="name">Line3D</span></a><span class="params">(<span name="p">p: <a href="Point3D.html" name="net.psforever.objects.geometry.Point3D" id="net.psforever.objects.geometry.Point3D" class="extype">Point3D</a></span>, <span name="d">d: <a href="../../types/Vector3.html" name="net.psforever.types.Vector3" id="net.psforever.types.Vector3" class="extype">Vector3</a></span>)</span><span class="result"> extends <a href="Geometry3D.html" name="net.psforever.objects.geometry.Geometry3D" id="net.psforever.objects.geometry.Geometry3D" class="extype">Geometry3D</a> with <a href="Line.html" name="net.psforever.objects.geometry.Line" id="net.psforever.objects.geometry.Line" class="extype">Line</a> with <span name="scala.Product" class="extype">Product</span> with <span name="scala.Serializable" class="extype">Serializable</span></span></span><p class="shortcomment cmt">The instance of a geometric coordinate position and a specific direction from that position.</p><div class="fullcomment"><div class="comment cmt"><p>The instance of a geometric coordinate position and a specific direction from that position.
Mathematical lines have infinite length and their slope is represented as a unit vector.
The point is merely a point used to assist in defining the line.</p></div><dl class="paramcmts block"><dt class="param">p</dt><dd class="cmt"><p>the point of origin</p></dd><dt class="param">d</dt><dd class="cmt"><p>the direction</p></dd></dl></div></li><li class="indented0 " name="net.psforever.objects.geometry.Point" group="Ungrouped" fullComment="no" data-isabs="true" visbl="pub"><a id="PointextendsAnyRef"></a><a id="Point:Point"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/Point.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">trait</span></span> <span class="symbol"><a href="Point.html" title="Characteristics of a geometric figure with only three coordinates to define a position."><span class="name">Point</span></a><span class="result"> extends <span name="scala.AnyRef" class="extype">AnyRef</span></span></span><p class="shortcomment cmt">Characteristics of a geometric figure with only three coordinates to define a position.</p></li><li class="indented0 " name="net.psforever.objects.geometry.Point3D" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="Point3DextendsGeometry3DwithPointwithProductwithSerializable"></a><a id="Point3D:Point3D"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/Point3D.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">case class</span></span> <span class="symbol"><a href="Point3D.html" title="The instance of a geometric coordinate position."><span class="name">Point3D</span></a><span class="params">(<span name="x">x: <span name="scala.Float" class="extype">Float</span></span>, <span name="y">y: <span name="scala.Float" class="extype">Float</span></span>, <span name="z">z: <span name="scala.Float" class="extype">Float</span></span>)</span><span class="result"> extends <a href="Geometry3D.html" name="net.psforever.objects.geometry.Geometry3D" id="net.psforever.objects.geometry.Geometry3D" class="extype">Geometry3D</a> with <a href="Point.html" name="net.psforever.objects.geometry.Point" id="net.psforever.objects.geometry.Point" class="extype">Point</a> with <span name="scala.Product" class="extype">Product</span> with <span name="scala.Serializable" class="extype">Serializable</span></span></span><p class="shortcomment cmt">The instance of a geometric coordinate position.</p><div class="fullcomment"><div class="comment cmt"><p>The instance of a geometric coordinate position.</p></div><dl class="paramcmts block"><dt class="param">x</dt><dd class="cmt"><p>the 'x' coordinate of the position</p></dd><dt class="param">y</dt><dd class="cmt"><p>the 'y' coordinate of the position</p></dd><dt class="param">z</dt><dd class="cmt"><p>the 'z' coordinate of the position</p></dd></dl><dl class="attributes block"><dt>See also</dt><dd><span class="cmt"><p><code>Vector3</code></p></span></dd></dl></div></li><li class="indented0 " name="net.psforever.objects.geometry.PrimitiveGeometry" group="Ungrouped" fullComment="no" data-isabs="true" visbl="pub"><a id="PrimitiveGeometryextendsAnyRef"></a><a id="PrimitiveGeometry:PrimitiveGeometry"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/PrimitiveGeometry.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">trait</span></span> <span class="symbol"><a href="PrimitiveGeometry.html" title="Basic interface for all geometry."><span class="name">PrimitiveGeometry</span></a><span class="result"> extends <span name="scala.AnyRef" class="extype">AnyRef</span></span></span><p class="shortcomment cmt">Basic interface for all geometry.</p></li><li class="indented0 " name="net.psforever.objects.geometry.Ray3D" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="Ray3DextendsGeometry3DwithLinewithProductwithSerializable"></a><a id="Ray3D:Ray3D"></a
Rays are like mathematical lines in that they have infinite length;
but, that infinite length is only expressed in a single direction,
rather than proceeding in both a direction and its opposite direction from a target point.
Infinity just be like that.
Additionally, the point is not merely any point on the ray used to assist defining it
and is instead considered the clearly-defined origin of the ray.</p></div><dl class="paramcmts block"><dt class="param">p</dt><dd class="cmt"><p>the point of origin</p></dd><dt class="param">d</dt><dd class="cmt"><p>the direction</p></dd></dl></div></li><li class="indented0 " name="net.psforever.objects.geometry.Segment" group="Ungrouped" fullComment="no" data-isabs="true" visbl="pub"><a id="SegmentextendsSlope"></a><a id="Segment:Segment"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/Segment.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">trait</span></span> <span class="symbol"><a href="Segment.html" title="Characteristics of a geometric figure that have two endpoints, defining a fixed-length slope."><span class="name">Segment</span></a><span class="result"> extends <a href="Slope.html" name="net.psforever.objects.geometry.Slope" id="net.psforever.objects.geometry.Slope" class="extype">Slope</a></span></span><p class="shortcomment cmt">Characteristics of a geometric figure that have two endpoints, defining a fixed-length slope.</p></li><li class="indented0 " name="net.psforever.objects.geometry.Segment3D" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="Segment3DextendsGeometry3DwithSegmentwithProductwithSerializable"></a><a id="Segment3D:Segment3D"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/Segment3D.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">case class</span></span> <span class="symbol"><a href="Segment3D.html" title="The instance of a limited span between two geometric coordinate positions, called &quot;endpoints&quot;."><span class="name">Segment3D</span></a><span class="params">(<span name="p1">p1: <a href="Point3D.html" name="net.psforever.objects.geometry.Point3D" id="net.psforever.objects.geometry.Point3D" class="extype">Point3D</a></span>, <span name="p2">p2: <a href="Point3D.html" name="net.psforever.objects.geometry.Point3D" id="net.psforever.objects.geometry.Point3D" class="extype">Point3D</a></span>)</span><span class="result"> extends <a href="Geometry3D.html" name="net.psforever.objects.geometry.Geometry3D" id="net.psforever.objects.geometry.Geometry3D" class="extype">Geometry3D</a> with <a href="Segment.html" name="net.psforever.objects.geometry.Segment" id="net.psforever.objects.geometry.Segment" class="extype">Segment</a> with <span name="scala.Product" class="extype">Product</span> with <span name="scala.Serializable" class="extype">Serializable</span></span></span><p class="shortcomment cmt">The instance of a limited span between two geometric coordinate positions, called "endpoints".</p><div class="fullcomment"><div class="comment cmt"><p>The instance of a limited span between two geometric coordinate positions, called "endpoints".
Unlike mathematical lines, slope is treated the same as the vector leading from one point to the other
and is the length of the segment.</p></div><dl class="paramcmts block"><dt class="param">p1</dt><dd class="cmt"><p>a point</p></dd><dt class="param">p2</dt><dd class="cmt"><p>another point</p></dd></dl></div></li><li class="indented0 " name="net.psforever.objects.geometry.Slope" group="Ungrouped" fullComment="no" data-isabs="true" visbl="pub"><a id="SlopeextendsAnyRef"></a><a id="Slope:Slope"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/Slope.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">trait</span></span> <span class="symbol"><a href="Slope.html" title="Characteristics of a geometric figure defining a direction or a progressive change in coordinates."><span class="name">Slope</span></a><span class="result"> extends <span name="scala.AnyRef" class="extype">AnyRef</span></span></span><p class="shortcomment cmt">Characteristics of a geometric figure defining a direction or a progressive change in coordinates.</p></li><li class="indented0 " name="net.psforever.objects.geometry.Sphere" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="SphereextendsGeometry3DwithProductwithSerializable"></a><a id="Sphere:Sphere"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/Sphere.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">case class</span></span> <span class="symbol"><a href="Sphere.html" title="The instance of a volumetric region that encapsulates all points within a certain distance of a central point."><span class="name">Sphere</span></a><span class="params">(<span name="p">p: <a href="Point3D.html" name="net.psforever.objects.geometry.Point3D" id="net.psforever.objects.geometry.Point3D" class="extype">Point3D</a></span>, <span name="radius">radius: <span name="scala.Float" class="extype">Float</span></span>)</span><span class="result"> extends <a href="Geometry3D.html" name="net.psforever.objects.geometry.Geometry3D" id="net.psforever.objects.geometry.Geometry3D" class="extype">Geometry3D</a> with <span name="scala.Product" class="extype">Product</span> with <span name="scala.Serializable" class="extype">Serializable</span></span></span><p class="shortcomment cmt">The instance of a volumetric region that encapsulates all points within a certain distance of a central point.</p><div class="fullcomment"><div class="comment cmt"><p>The instance of a volumetric region that encapsulates all points within a certain distance of a central point.
(That's what a sphere is.)
A sphere has no real "top", "base", or "side" as all directions are described the same.</p></div><dl class="paramcmts block"><dt class="param">p</dt><dd class="cmt"><p>the point</p></dd><dt class="param">radius</dt><dd class="cmt"><p>a distance that spans all points in any direction from the central point</p></dd></dl></div></li></ol></div><div class="values members"><h3>Value Members</h3><ol><li class="indented0 " name="net.psforever.objects.geometry.Cylinder" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="Cylinder"></a><a id="Cylinder:Cylinder"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/Cylinder$.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">object</span></span> <span class="symbol"><a href="Cylinder$.html" title=""><span class="name">Cylinder</span></a><span class="result"> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html#java.io.Serializable" name="java.io.Serializable" id="java.io.Serializable" class="extype">Serializable</a></span></span></li><li class="indented0 " name="net.psforever.objects.geometry.Geometry" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="Geometry"></a><a id="Geometry:Geometry"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/Geometry$.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">object</span></span> <span class="symbol"><a href="Geometry$.html" title=""><span class="name">Geometry</span></a></span></li><li class="indented0 " name="net.psforever.objects.geometry.GeometryForm" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="GeometryForm"></a><a id="GeometryForm:GeometryForm"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/GeometryForm$.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">object</span></span> <span class="symbol"><a href="GeometryForm$.html" title=""><span class="name">GeometryForm</span></a></span></li><li class="indented0 " name="net.psforever.objects.geometry.Line3D" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="Line3D"></a><a id="Line3D:Line3D"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/Line3D$.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">object</span></span> <span class="symbol"><a href="Line3D$.html" title=""><span class="name">Line3D</span></a><span class="result"> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html#java.io.Serializable" name="java.io.Serializable" id="java.io.Serializable" class="extype">Serializable</a></span></span></li><li class="indented0 " name="net.psforever.objects.geometry.Point3D" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="Point3D"></a><a id="Point3D:Point3D"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/Point3D$.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">object</span></span> <span class="symbol"><a href="Point3D$.html" title=""><span class="name">Point3D</span></a><span class="result"> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html#java.io.Serializable" name="java.io.Serializable" id="java.io.Serializable" class="extype">Serializable</a></span></span></li><li class="indented0 " name="net.psforever.objects.geometry.Ray3D" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="Ray3D"></a><a id="Ray3D:Ray3D"></a> <span class="permalink"><a href="../../../../net/psforever/objects/geometry/Ray3D$.html" title="Permalink"><i class="m