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
surfnm_c

 Procedure Abstract Required_Reading Keywords Brief_I/O Detailed_Input Detailed_Output Parameters Exceptions Files Particulars Examples Restrictions Literature_References Author_and_Institution Version Index_Entries

Procedure

```   surfnm_c ( Surface normal vector on an ellipsoid )

void surfnm_c ( SpiceDouble        a,
SpiceDouble        b,
SpiceDouble        c,
ConstSpiceDouble   point[3],
SpiceDouble        normal[3] )

```

Abstract

```   Compute the outward-pointing, unit normal vector at a point on
the surface of an ellipsoid.
```

```   None.
```

Keywords

```   ELLIPSOID
GEOMETRY

```

Brief_I/O

```   VARIABLE  I/O  DESCRIPTION
--------  ---  --------------------------------------------------
a          I   Length of the ellipsoid semi-axis along the X-axis.
b          I   Length of the ellipsoid semi-axis along the Y-axis.
c          I   Length of the ellipsoid semi-axis along the Z-axis.
point      I   Body-fixed coordinates of a point on the ellipsoid.
normal     O   Outward pointing unit normal to ellipsoid at `point'.
```

Detailed_Input

```   a           is the length of the semi-axis of the ellipsoid that is
parallel to the X-axis of the body-fixed reference frame.

b           is the length of the semi-axis of the ellipsoid that is
parallel to the Y-axis of the body-fixed reference frame.

c           is the length of the semi-axis of the ellipsoid that is
parallel to the Z-axis of the body-fixed reference frame.

point       is a 3-vector giving the bodyfixed coordinates of a point
on the ellipsoid. In bodyfixed coordinates, the semi-axes
of the ellipsoid are aligned with the X, Y, and Z-axes of
the reference frame.
```

Detailed_Output

```   normal      is the unit vector pointing away from the ellipsoid and
normal to the ellipsoid at `point'.
```

Parameters

```   None.
```

Exceptions

```   1)  If any of the axes are non-positive, the error
SPICE(BADAXISLENGTH) is signaled by a routine in the call tree
of this routine.
```

Files

```   None.
```

Particulars

```   This routine computes the outward pointing unit normal vector to
the ellipsoid having semi-axes of length `a', `b', and `c' from the
point `point'.
```

Examples

```   A typical use of surfnm_c would be to find the angle of incidence
of the light from the sun at a point on the surface of an
ellipsoid.

Let q be a 3-vector representing the rectangular body-fixed
coordinates of a point on the ellipsoid (we are assuming that
the axes of the ellipsoid are aligned with the axes of the
body fixed frame.) Let v be the vector from q to the sun in
bodyfixed coordinates. Then the following code fragment could
be used to compute angle of incidence of sunlight at q.

surfnm_c   ( a, b, c, q, nrml );

incidn = vsep_c ( v, nrml );
```

Restrictions

```   1)  It is assumed that the input point is indeed on the ellipsoid.
No checking for this is done.
```

Literature_References

```   None.
```

Author_and_Institution

```   N.J. Bachman        (JPL)
J. Diaz del Rio     (ODC Space)
B.V. Semenov        (JPL)
```

Version

```   -CSPICE Version 1.3.2, 01-NOV-2021 (JDR)

Edited the header to comply with NAIF standard.

Updated the documentation to refer to "reference frame" instead
of "coordinate system" as per NAIF conventions.

-CSPICE Version 1.3.1, 31-JAN-2008 (BVS)

-CSPICE Version 1.3.0, 22-OCT-1998 (NJB)

-CSPICE Version 1.2.0, 08-FEB-1998 (NJB)

Removed local variables used for temporary capture of outputs.

-CSPICE Version 1.0.0, 25-OCT-1997 (NJB)

Based on SPICELIB Version 1.2.0, 07-AUG-1996 (WLT)
```

Index_Entries

```   surface normal vector on an ellipsoid
```
`Fri Dec 31 18:41:13 2021`