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><dlclass="paramcmts block"><dtclass="param">p</dt><ddclass="cmt"><p>the point</p></dd><dtclass="param">relativeUp</dt><ddclass="cmt"><p>what the cylinder considers its "up" direction</p></dd><dtclass="param">radius</dt><ddclass="cmt"><p>a distance expressed in all circular cross-sections along the <code>relativeUp</code> direction</p></dd><dtclass="param">height</dt><ddclass="cmt"><p>the distance between the "base" and the "top"</p></dd></dl><dlclass="attributes block"><dt>Source</dt><dd><ahref="https://github.com/psforever/PSF-LoginServer/blob/master//home/runner/work/PSF-LoginServer/PSF-LoginServer/src/main/scala/net/psforever/objects/geometry/PrimitiveShape.scala"target="_blank">PrimitiveShape.scala</a></dd></dl><divclass="toggleContainer"><divclass="toggle block"><span>Linear Supertypes</span><divclass="superTypes hiddenContent"><ahref="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>, <spanname="scala.Product"class="extype">Product</span>, <spanname="scala.Equals"class="extype">Equals</span>, <ahref="Geometry3D.html"name="net.psforever.objects.geometry.Geometry3D"id="net.psforever.objects.geometry.Geometry3D"class="extype">Geometry3D</a>, <ahref="PrimitiveGeometry.html"name="net.psforever.objects.geometry.PrimitiveGeometry"id="net.psforever.objects.geometry.PrimitiveGeometry"class="extype">PrimitiveGeometry</a>, <spanname="scala.AnyRef"class="extype">AnyRef</span>, <spanname="scala.Any"class="extype">Any</span></div></div></div></div><divid="mbrsel"><divclass="toggle"></div><divid="memberfilter"><iclass="material-icons arrow"></i><spanclass="input"><inputplaceholder="Filter all members"id="mbrsel-input"type="text"accesskey="/"/></span><iclass="clear material-icons"></i></div><divid="filterby"><divid="order"><spanclass="filtertype">Ordering</span><ol><liclass="alpha in"><span>Alphabetic</span></li><liclass="inherit out"><span>By Inheritance</span></li></ol></div><divclass="ancestors"><spanclass="filtertype">Inherited<br/></span><olid="linearization"><liclass="in"name="net.psforever.objects.geometry.Cylinder"><span>Cylinder</span></li><liclass="in"name="java.io.Serializable"><span>Serializable</span></li><liclass="in"name="scala.Product"><span>Product</span></li><liclass="in"name="scala.Equals"><span>Equals</span></li><liclass="in"name="net.psforever.objects.geometry.Geometry3D"><span>Geometry3D</span></li><liclass="in"name="net.psforever.objects.geometry.PrimitiveGeometry"><span>PrimitiveGeometry</span></li><liclass="in"name="scala.AnyRef"><span>AnyRef</span></li><liclass="in"name="scala.Any"><span>Any</span></li></ol></div><divclass="ancestors"><spanclass="filtertype"></span><ol><liclass="hideall out"><span>Hide All</span></li><liclass="showall in"><span>Show All</span></li></ol></div><divid="visbl"><spanclass="filtertype">Visibility</span><ol><liclass="public in"><span>Public</span></li><liclass="protected out"><span>Protected</span></li></ol></div></div></div><divid="template"><divid="allMembers"><divid="constructors"class="members"><h3>Instance Constructors</h3><ol><liclass="indented0 "name="net.psforever.objects.geometry.Cylinder#<init>"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="<init>(p:net.psforever.objects.geometry.Point3D,relativeUp:net.psforever.types.Vector3,radius:Float,height:Float):net.psforever.objects.geometry.Cylinder"></a><aid="<init>:Cylinder"></a><spanclass="permalink"><ahref="../../../../net/psforever/objects/geometry/Cylinder.html#<init>(p:net.psforever.objects.geometry.Point3D,relativeUp:net.psforever.types.Vector3,radius:Float,height:Float):net.psforever.objects.geometry.Cylinder"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass
A cylinder is composed of three clearly-defined regions on its exterior -
two flat but circular surfaces that are the "top" and the "base"
and a wrapped "sides" surface that defines all points connecting the "base" to the "top"
along the <code>relativeUp</code> direction.
The requested point may exist on any of these surfaces.</p></div><dlclass="paramcmts block"><dtclass="param">v</dt><ddclass="cmt"><p>the vector in the direction of the point on the exterior</p></dd><dt>returns</dt><ddclass="cmt"><p>a point</p></dd></dl><dlclass="attributes block"><dt>Definition Classes</dt><dd><ahref=""name="net.psforever.objects.geometry.Cylinder"id="net.psforever.objects.geometry.Cylinder"class="extype">Cylinder</a> → <ahref="Geometry3D.html"name="net.psforever.objects.geometry.Geometry3D"id="net.psforever.objects.geometry.Geometry3D"class="extype">Geometry3D</a> → <ahref="PrimitiveGeometry.html"name="net.psforever.objects.geometry.PrimitiveGeometry"id="net.psforever.objects.geometry.PrimitiveGeometry"class="extype">PrimitiveGeometry</a></dd></dl></div></li><liclass="indented0 "name="scala.Product#productElementNames"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="productElementNames:Iterator[String]"></a><spanclass="permalink"><ahref="../../../../net/psforever/objects/geometry/Cylinder.html#productElementNames:Iterator[String]"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">productElementNames</span><spanclass="result">: <spanname="scala.Iterator"class="extype">Iterator</span>[<spanname="scala.Predef.String"class="extype">String</span>]</span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>Product</dd></dl></div></li><liclass="indented0 "name="net.psforever.objects.geometry.Cylinder#radius"group="Ungrouped"fullComment="no"data-isabs="false"visbl="pub"><aid="radius:Float"></a><spanclass="permalink"><ahref="../../../../net/psforever/objects/geometry/Cylinder.html#radius:Float"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">val</span></span><spanclass="symbol"><spanclass="name">radius</span><spanclass="result">: <spanname="scala.Float"class="extype">Float</span></span></span></li><liclass="indented0 "name="net.psforever.objects.geometry.Cylinder#relativeUp"group="Ungrouped"fullComment="no"data-isabs="false"visbl="pub"><aid="relativeUp:net.psforever.types.Vector3"></a><aid="relativeUp:Vector3"></a><spanclass="permalink"><ahref="../../../../net/psforever/objects/geometry/Cylinder.html#relativeUp:net.psforever.types.Vector3"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">val</span></span><spanclass="symbol"><spanclass="name">relativeUp</span><spanclass="result">: <ahref="../../types/Vector3.html"name="net.psforever.types.Vector3"id="net.psforever.types.Vector3"class="extype">Vector3</a></span></span></li><liclass="indented0 "name="scala.AnyRef#synchronized"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="synchronized[T0](x$1:=>T0):T0"></a><aid="synchronized[T0](=>T0):T0"></a><spanclass="permalink"><ahref="../../../../net/psforever/objects/geometry/Cylinder.html#synchronized[T0](x$1:=>T0):T0"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">final </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">synchronized</span><spanclass="tparams">[<spanname="T0">T0</span>]</span><spanclass="params">(<spanname="arg0">arg0: =><spanname="java.lang.AnyRef.synchronized.T0"class="extype">T0</span></span>)</span><spanclass="result">: <spanname="java.lang.AnyRef.synchronized.T0"class="extype">T0</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#wait"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="wait():Unit"></a><spanclass="permalink"><ahref="../../../../n