summaryrefslogblamecommitdiff
path: root/doc/sims/geometry/Segment.html
blob: 084cfb6ddd646d15ff510134e6331e1797889b1a (plain) (tree)


































                                                                                                                                                                                                                                                                                           
                                                           
                                            

                                                                                                                                                                                                       












                                                                                  
                                                                            









                                                                                    
                                           









                                                                                                         
                                          









                                                                                  
                                       









                                                                                    
                                            























                                                                                                                                                                                                                                              
                                                                                           


































































































                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
                                               










                                                                                            
                                                                                 










                                                                                             
                                                










                                                                                            
                                            










                                                                                             
                                                 












                                                                                                                                                                                                                    
                                                                                                





























































































































































                                                                                                                                                                                                                                                                    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
        <head><title>class Segment in sims.geometry</title>
        <meta http-equiv="content-type" content="text/html; charset=UTF8"></meta><meta content="scaladoc (version 2.7.5.final)" name="generator"></meta><link href="../../style.css" type="text/css" rel="stylesheet"></link><script type="text/javascript" src="../../script.js"></script>
        </head>
        <body onload="init()">
        <table summary="" class="navigation">
        <tr>
          <td class="navigation-links" valign="top">
            <!-- <table><tr></tr></table> -->
          </td>
          <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
            <div class="doctitle-larger">SiMS</div>
          </td>
        </tr>
        <tr><td></td></tr>
      </table>
        
      <div class="entity">
        <a href="../../sims/geometry$package.html" target="_self">sims.geometry</a>
        <br></br>
        <span class="entity">class  Segment</span>
      </div><hr></hr>
      <div class="source">
        [source: <a href="" class="sims/geometry/Segment"><code>sims/geometry/Segment.scala</code></a>]
      </div><hr></hr>
      <a name="Segment"></a><dl>
      <dt>
        
        <code>case</code>
        <code>class</code>
        <em>Segment</em>(<code>val </code><em>vertex1</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <code>val </code><em>vertex2</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>)
      </dt>
      <dd><code> extends </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
    </dl>
      <dl><dd>A segment is given by its vertices.</dd></dl>
      <dl><dt style="margin:10px 0 0 20px;">
        <b>Parameters</b></dt><dd><code>vertex1 - </code>position vector of the first vertex</dd><dd><code>vertex2 - </code>position vector of the second vertex</dd><dt style="margin:10px 0 0 20px;">
        <b>Throws</b></dt><dd><code>IllegalArgumentException - </code>if both vertices are equal</dd></dl>
    
      

<table summary="" cellpadding="3" class="member">
      <tr><td class="title" colspan="2">Value Summary</td></tr>
      <tr>
      <td class="modifiers" valign="top"> 
        <code> val</code>
      </td>
      <td class="signature">
        <em><a href="../../sims/geometry/Segment.html#d" target="_self">d</a></em>
         : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
        
        <div>Vector from <code>vertex1</code> to <code>vertex2</code>.</div>
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code> val</code>
      </td>
      <td class="signature">
        <em><a href="../../sims/geometry/Segment.html#d0" target="_self">d0</a></em>
         : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
        
        <div>Unit directional vector.</div>
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code> val</code>
      </td>
      <td class="signature">
        <em><a href="../../sims/geometry/Segment.html#length" target="_self">length</a></em>
         : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
        
        <div>Length of this segment.</div>
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code> val</code>
      </td>
      <td class="signature">
        <em><a href="../../sims/geometry/Segment.html#n" target="_self">n</a></em>
         : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
        
        <div>Right normal vector.</div>
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code> val</code>
      </td>
      <td class="signature">
        <em><a href="../../sims/geometry/Segment.html#n0" target="_self">n0</a></em>
         : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
        
        <div>Right normal unit vector.</div>
      </td>
    </tr>
      </table>
<table summary="" cellpadding="3" class="member">
      <tr><td class="title" colspan="2">Method Summary</td></tr>
      <tr>
      <td class="modifiers" valign="top"> 
        <code> def</code>
      </td>
      <td class="signature">
        <em><a href="../../sims/geometry/Segment.html#clipToSegment%28sims.geometry.Segment%29" target="_self">clipToSegment</a></em>
        (<em>s</em> : <a href="../../sims/geometry/Segment.html" target="_self">Segment</a>) : <a href="" target="contentFrame" class="scala/Option">scala.Option</a>[<a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>]
        
        
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code> def</code>
      </td>
      <td class="signature">
        <em><a href="../../sims/geometry/Segment.html#distance%28sims.geometry.Vector2D%29" target="_self">distance</a></em>
        (<em>point</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
        
        <div>Smallest distance between this segment and the point <code>point</code>.</div>
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code>override def</code>
      </td>
      <td class="signature">
        <em><a href="../../sims/geometry/Segment.html#equals%28Any%29" target="_self">equals</a></em>
        (<em>arg0</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html" target="_self">Any</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
        
        <div>This method is used to compare the receiver object (<code>this</code>)
    with the argument object (<code>arg0</code>) for equivalence.</div>
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code>override def</code>
      </td>
      <td class="signature">
        <em><a href="../../sims/geometry/Segment.html#hashCode%28%29" target="_self">hashCode</a></em>
         : <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>
        
        <div>Returns a hash code value for the object.</div>
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code>override def</code>
      </td>
      <td class="signature">
        <em><a href="../../sims/geometry/Segment.html#productArity" target="_self">productArity</a></em>
         : <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>
        
        
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code>override def</code>
      </td>
      <td class="signature">
        <em><a href="../../sims/geometry/Segment.html#productElement%28Int%29" target="_self">productElement</a></em>
        (<em>arg0</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html" target="_self">Any</a>
        
        
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code>override def</code>
      </td>
      <td class="signature">
        <em><a href="../../sims/geometry/Segment.html#productPrefix" target="_self">productPrefix</a></em>
         : <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>
        
        
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code>override def</code>
      </td>
      <td class="signature">
        <em><a href="../../sims/geometry/Segment.html#toString%28%29" target="_self">toString</a></em>
         : <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>
        
        <div>Returns a string representation of the object.</div>
      </td>
    </tr>
      </table><table summary="" cellpadding="3" class="inherited">
        <tr><td class="title" colspan="2">
          Methods inherited from <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
        </td></tr>
        <tr><td class="signature" colspan="2">
          <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#getClass%28%29" target="_self">getClass</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#clone%28%29" target="_self">clone</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#notify%28%29" target="_self">notify</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#notifyAll%28%29" target="_self">notifyAll</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28Long%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28Long%2CInt%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#finalize%28%29" target="_self">finalize</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#%3D%3D%28AnyRef%29" target="_self">==</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#%21%3D%28AnyRef%29" target="_self">!=</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#eq%28AnyRef%29" target="_self">eq</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#ne%28AnyRef%29" target="_self">ne</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#synchronized%28T0%29" target="_self">synchronized</a>
        </td></tr>
      </table><table summary="" cellpadding="3" class="inherited">
        <tr><td class="title" colspan="2">
          Methods inherited from <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html" target="_self">Any</a>
        </td></tr>
        <tr><td class="signature" colspan="2">
          <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#%3D%3D%28Any%29" target="_self">==</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#%21%3D%28Any%29" target="_self">!=</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#isInstanceOf" target="_self">isInstanceOf</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#asInstanceOf" target="_self">asInstanceOf</a>
        </td></tr>
      </table>


      

<table summary="" cellpadding="3" class="member-detail">
          <tr><td class="title">Value Details</td></tr>
        </table><div><a name="length"></a><dl>
      <dt>
        
        <code></code>
        <code>val</code>
        <em>length</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>Length of this segment.</dd></dl>
      <dl></dl>
    <hr></hr>
<a name="d"></a><dl>
      <dt>
        
        <code></code>
        <code>val</code>
        <em>d</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>Vector from <code>vertex1</code> to <code>vertex2</code>.</dd></dl>
      <dl></dl>
    <hr></hr>
<a name="d0"></a><dl>
      <dt>
        
        <code></code>
        <code>val</code>
        <em>d0</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>Unit directional vector.</dd></dl>
      <dl></dl>
    <hr></hr>
<a name="n"></a><dl>
      <dt>
        
        <code></code>
        <code>val</code>
        <em>n</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>Right normal vector.</dd></dl>
      <dl></dl>
    <hr></hr>
<a name="n0"></a><dl>
      <dt>
        
        <code></code>
        <code>val</code>
        <em>n0</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>Right normal unit vector.</dd></dl>
      <dl></dl>
    <hr></hr></div>
<table summary="" cellpadding="3" class="member-detail">
          <tr><td class="title">Method Details</td></tr>
        </table><div><a name="distance%28sims.geometry.Vector2D%29"></a><dl>
      <dt>
        
        <code></code>
        <code>def</code>
        <em>distance</em>(<em>point</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>Smallest distance between this segment and the point <code>point</code>.</dd></dl>
      <dl></dl>
    <hr></hr>
<a name="clipToSegment%28sims.geometry.Segment%29"></a><dl>
      <dt>
        
        <code></code>
        <code>def</code>
        <em>clipToSegment</em>(<em>s</em> : <a href="../../sims/geometry/Segment.html" target="_self">Segment</a>) : <a href="" target="contentFrame" class="scala/Option">scala.Option</a>[<a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>]
      </dt>
      <dd></dd>
    </dl><hr></hr>
<a name="hashCode%28%29"></a><dl>
      <dt>
        
        <code>override</code>
        <code>def</code>
        <em>hashCode</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>Returns a hash code value for the object.  
    <p>
    The default hashing algorithm is platform dependent.  
    Note that it is allowed for two objects to have identical hash
    codes (<code>o1.hashCode.equals(o2.hashCode)</code>) yet not be
    equal (<code>o1.equals(o2)</code> returns <code>false</code>).  A
    degenerate implementation could always return <code>0</code>.
    However, it is required that if two objects are equal
    (<code>o1.equals(o2)</code> returns <code>true</code>) that they
    have identical hash codes
    (<code>o1.hashCode.equals(o2.hashCode)</code>).  Therefore, when
    overriding this method, be sure to verify that the behavior is
    consistent with the <code>equals</code> method.
    </p>
    <p></dd></dl>
      <dl><dt style="margin:10px 0 0 20px;">
        <b>Returns</b></dt><dd>the hash code value for the object.      </p></dd></dl>
    <hr></hr>
<a name="toString%28%29"></a><dl>
      <dt>
        
        <code>override</code>
        <code>def</code>
        <em>toString</em> : <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>Returns a string representation of the object.  
    <p>
    The default representation is platform dependent.</dd></dl>
      <dl><dt style="margin:10px 0 0 20px;">
        <b>Returns</b></dt><dd>a string representation of the object.     </p></dd></dl>
    <hr></hr>
<a name="equals%28Any%29"></a><dl>
      <dt>
        
        <code>override</code>
        <code>def</code>
        <em>equals</em>(<em>arg0</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html" target="_self">Any</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>This method is used to compare the receiver object (<code>this</code>)
    with the argument object (<code>arg0</code>) for equivalence.  
    
    <p>
    The default implementations of this method is an <a
    href="http://en.wikipedia.org/wiki/Equivalence_relation">equivalence
    relation</a>:
      <ul>
      <li>It is reflexive: for any instance <code>x</code> of type <code>Any</code>, 
      <code>x.equals(x)</code> should return <code>true</code>.</li>
      <li>It is symmetric: for any instances <code>x</code> and <code>y</code> of type 
      <code>Any</code>, <code>x.equals(y)</code> should return <code>true</code> if and only 
      if <code>y.equals(x)</code> returns <code>true</code>.</li>
      <li>It is transitive: for any instances 
      <code>x</code>, <code>y</code>, and <code>z</code> of type <code>AnyRef</code>
      if <code>x.equals(y)</code> returns <code>true</code> and 
      <code>y.equals(z)</code> returns 
      <code>true</code>, then <code>x.equals(z)</code> should return <code>true</code>.</li>
    </ul>
    </p>
    <p>
    If you override this method, you should verify that
    your implementation remains an equivalence relation.
    Additionally, when overriding this method it is often necessary to
    override <code>hashCode</code> to ensure that objects that are
    "equal" (<code>o1.equals(o2)</code> returns <code>true</code>)
    hash to the same <a href="Int.html"><code>Int</code></a>
    (<code>o1.hashCode.equals(o2.hashCode)</code>).</dd></dl>
      <dl><dt style="margin:10px 0 0 20px;">
        <b>Parameters</b></dt><dd><code>arg0 - </code>the object to compare against this object for equality.</dd><dt style="margin:10px 0 0 20px;">
        <b>Returns</b></dt><dd><code>true</code> if the receiver object is equivalent to the argument; <code>false</code> otherwise.    </p></dd></dl>
    <hr></hr>
<a name="productPrefix"></a><dl>
      <dt>
        
        <code>override</code>
        <code>def</code>
        <em>productPrefix</em> : <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>
      </dt>
      <dd></dd>
    </dl><dl>
        <dt style="margin:10px 0 0 20px;">
          <b>Overrides</b>
        </dt>
        <dd>
        <a href="" target="contentFrame" class="scala/Product">scala.Product</a>.<a href="#productPrefix" target="contentFrame" class="scala/Product">scala.Product.productPrefix</a>
        </dd>
      </dl><hr></hr>
<a name="productArity"></a><dl>
      <dt>
        
        <code>override</code>
        <code>def</code>
        <em>productArity</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>
      </dt>
      <dd></dd>
    </dl><dl>
        <dt style="margin:10px 0 0 20px;">
          <b>Overrides</b>
        </dt>
        <dd>
        <a href="" target="contentFrame" class="scala/Product">scala.Product</a>.<a href="#productArity" target="contentFrame" class="scala/Product">scala.Product.productArity</a>
        </dd>
      </dl><hr></hr>
<a name="productElement%28Int%29"></a><dl>
      <dt>
        
        <code>override</code>
        <code>def</code>
        <em>productElement</em>(<em>arg0</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html" target="_self">Any</a>
      </dt>
      <dd></dd>
    </dl><dl>
        <dt style="margin:10px 0 0 20px;">
          <b>Overrides</b>
        </dt>
        <dd>
        <a href="" target="contentFrame" class="scala/Product">scala.Product</a>.<a href="#productElement" target="contentFrame" class="scala/Product">scala.Product.productElement</a>
        </dd>
      </dl><hr></hr></div>


    <hr></hr>
        <table summary="" class="navigation">
        <tr>
          <td class="navigation-links" valign="top">
            <!-- <table><tr></tr></table> -->
          </td>
          <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
            <div class="doctitle-larger">SiMS</div>
          </td>
        </tr>
        <tr><td></td></tr>
      </table>
      </body>
      </html>