Index of Functions: A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 
Index Page
cspice_pltexp

Table of contents
Abstract
I/O
Parameters
Examples
Particulars
Exceptions
Files
Restrictions
Required_Reading
Literature_References
Author_and_Institution
Version
Index_Entries


Abstract


   CSPICE_PLTEXP expands a triangular plate by a specified amount.
   The expanded plate is co-planar with, and has the same orientation as,
   the  original. The centroids of the two plates coincide.

I/O


   Given:

      iverts   an array containing three vertices of a triangular plate.

               help, iverts
                  DOUBLE = Array[3,3]

               Each vertex is a three-dimensional vector. The elements

      delta    a fraction by which the plate is to be scaled.

               help, delta
                  DOUBLE = Scalar

               Scaling is done so that the scaled plate has the following
               properties:

                  -  it is co-planar with the input plate

                  -  its centroid coincides with that of the input
                     plate

                  -  its sides remain parallel to the corresponding
                     sides of the input plate

                  -  the distance of each vertex from the centroid is
                     (1+delta) times the corresponding distance for
                     the input plate

   the call:

      cspice_pltexp, iverts, delta, overts

   returns:

      overts   an array containing three vertices of the triangular plate
               resulting from scaling the input plate.

               help, overts
                  DOUBLE = Array[3,3]

               If `ctroid' is the centroid (the average of the vertices)
               of the input plate, then the ith vertex of `overts'

                  overts[j,i], j = 0 ... 2

               is equal to

                  ctroid[j] + (1+delta)*( iverts[j,i] - ctroid[j] ),

                  j = 0 ... 2

Parameters


   None.

Examples


   Any numerical results shown for this example may differ between
   platforms as the results depend on the SPICE kernels used as input
   and the machine specific arithmetic implementation.

   1) Expand an equilateral triangle that lies in the plane

         { (x,y,z) : z = 7 }

      Use an expansion fraction of 1.0; this doubles the size of
      the plate.

      Example code begins here.


      PRO pltexp_ex1

         s     = sqrt( 3.D ) / 2.D

         iverts = [ [ s, -0.5D,  7.0], [ 0.0, 1.0, 7.0], [ -s, -0.5, 7.0] ]


         delta = 1.D

         cspice_pltexp, iverts, delta, overts

         print,  'Vertices of input plate: '
         print,  ' I1 = ', iverts(*,0)
         print,  ' I2 = ', iverts(*,1)
         print,  ' I3 = ', iverts(*,2)
         print


         print,  'Vertices of output plate: '
         print,  ' O1 = ', overts(*,0)
         print,  ' O2 = ', overts(*,1)
         print,  ' O3 = ', overts(*,2)

      END


      When this program was executed on a Mac/Intel/IDL8.x/64-bit
      platform, the output was:


      Vertices of input plate:
       I1 =       0.86602540     -0.50000000       7.0000000
       I2 =        0.0000000       1.0000000       7.0000000
       I3 =      -0.86602540     -0.50000000       7.0000000

      Vertices of output plate:
       O1 =        1.7320508      -1.0000000       7.0000000
       O2 =        0.0000000       2.0000000       7.0000000
       O3 =       -1.7320508      -1.0000000       7.0000000


      Note that the height of the plate is unchanged, but the vectors
      from the centroid to the vertices have doubled in length.

Particulars


   This routine supports "greedy" ray-plate intercept algorithms.
   Such algorithms attempt to ensure that false negatives---in which
   an intersection is not found due to round-off error---do not
   occur. In such an algorithm, the plate of interest is expanded
   slightly before the intersection test is performed.

Exceptions


   1)  If any of the input arguments, `iverts' or `delta', is
       undefined, an error is signaled by the IDL error handling
       system.

   2)  If any of the input arguments, `iverts' or `delta', is not of
       the expected type, or it does not have the expected dimensions
       and size, an error is signaled by the Icy interface.

   3)  If the output argument `overts' is not a named variable, an
       error is signaled by the Icy interface.

Files


   None.

Restrictions


   None.

Required_Reading


   DSK.REQ
   ICY.REQ

Literature_References


   None.

Author_and_Institution


   J. Diaz del Rio     (ODC Space)
   M. Liukis           (JPL)
   E.D. Wright         (JPL)

Version


   -Icy Version 1.0.1, 01-JUN-2021 (JDR)

       Added -Parameters, -Exceptions, -Files, -Restrictions,
       -Literature_References and -Author_and_Institution sections. Edited the
       header to comply with NAIF standard.

       Added example task statement. Corrected typos in header.

       Removed reference to the routine's corresponding CSPICE header from
       -Abstract section.

       Added arguments' type and size information in the -I/O section.

   -Icy Version 1.0.0, 15-DEC-2016 (ML) (EDW)

Index_Entries


   expand triangular plate



Fri Dec 31 18:43:06 2021