This file is indexed.

/usr/share/octave/packages/geometry-1.7.0/geom3d/geom3d_Contents.m is in octave-geometry 1.7.0-1build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
## Copyright (C) 2004-2011 David Legland <david.legland@grignon.inra.fr>
## Copyright (C) 2004-2011 INRA - CEPIA Nantes - MIAJ (Jouy-en-Josas)
## Copyright (C) 2012 Adapted to Octave by Juan Pablo Carbajal <carbajal@ifi.uzh.ch>
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
## modification, are permitted provided that the following conditions are met:
##
##     1 Redistributions of source code must retain the above copyright notice,
##       this list of conditions and the following disclaimer.
##     2 Redistributions in binary form must reproduce the above copyright
##       notice, this list of conditions and the following disclaimer in the
##       documentation and/or other materials provided with the distribution.
##
## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS''
## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
## ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
## ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
## SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
## CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

## -*- texinfo -*-
## @deftypefn {Function File} geom3d_Contents ()
## GEOM3D Geometry 3D Toolbox
## Version 1.0 21-Mar-2011 .
##
##   Creation, transformations, algorithms and visualization of geometrical
##   3D primitives, such as points, lines, planes, polyhedra, circles and
##   spheres.
##   
##   Euler Angles are defined as follow:
##   PHI is the azimut, i.e. the angle of the projection on horizontal plane
##   with the Ox axis, with value beween 0 and 180 degrees.
##   THETA is the latitude, i.e. the angle with the Oz axis, with value
##   between -90 and +90 degrees.
##   PSI is the 'roll', i.e. the rotation around the (PHI, THETA) direction,
##   with value in degrees
##   See also the 'angles3d' page.
##
##   Base format for primitives:
##   Point:      [x0 y0 z0]
##   Vector:     [dx dy dz]
##   Line:       [x0 y0 z0 dx dy dz]
##   Edge:       [x1 y1 z1 x2 y2 z2]
##   Plane:      [x0 y0 z0 dx1 dy1 dz1 dx2 dy2 dz2]
##   Sphere:     [x0 y0 z0 R]
##   Circle:     [x0 y0 z0 R PHI THETA PSI] (origin+center+normal+'roll').
##   Cylinder:   [X1 Y1 Z1 X2 Y2 Z2 R]
##   Box:        [xmin xmax ymin ymax zmin zmax]. Used for clipping shapes.
##   
##   Polygons are represented by N-by-3 array of points, the last point is
##   not necessarily the same as the first one. Points must be coplanar.
##
##   Meshes and Polyhedra are represented by a couple of variables @{V, F@}:
##   V: N-by-3 array of vetrtices: [x1 y1 z1; ... ;xn yn zn];
##   F: is either a [Nf*3] or [Nf*4] array containing reference for vertices
##       of each face, or a [Nf*1] cell array, where each cell is an array
##       containing a variable number of node indices.
##   For some functions, the array E of edges is needed. It consists in a
##   Ne-by-2 array containing indices of source and target vertices. 
##
##
## 3D Points
##   points3d                  - Description of functions operating on 3D points
##   midPoint3d                - Middle point of two 3D points or of a 3D edge
##   isCoplanar                - Tests input points for coplanarity in 3-space.
##   transformPoint3d          - Transform a point with a 3D affine transform
##   distancePoints           - Compute euclidean distance between pairs of 3D Points
##   clipPoints3d              - Clip a set of points by a box
##   drawPoint3d               - Draw 3D point on the current axis.
##
## 3D Vectors
##   vectors3d                 - Description of functions operating on 3D vectors
##   transformVector3d         - Transform a vector with a 3D affine transform
##   normalizeVector3d         - Normalize a 3D vector to have norm equal to 1
##   vectorNorm3d              - Norm of a 3D vector or of set of 3D vectors
##   vectorAngle3d             - Angle between two 3D vectors
##   isParallel3d              - Check parallelism of two 3D vectors
##   isPerpendicular3d         - Check orthogonality of two 3D vectors
##
## Angles
##   angles3d                  - Conventions for manipulating angles in 3D
##   anglePoints3d             - Compute angle between three 3D points
##   sphericalAngle            - Compute angle between points on the sphere
##   angleSort3d               - Sort 3D coplanar points according to their angles in plane
##   randomAngle3d             - Return a 3D angle uniformly distributed on unit sphere
##
## Coordinate transforms
##   sph2cart2                 - Convert spherical coordinates to cartesian coordinates
##   cart2sph2                 - Convert cartesian coordinates to spherical coordinates
##   cart2sph2d                - Convert cartesian coordinates to spherical coordinates in degrees
##   sph2cart2d                - Convert spherical coordinates to cartesian coordinates in degrees
##   cart2cyl                  - Convert cartesian to cylindrical coordinates
##   cyl2cart                  - Convert cylindrical to cartesian coordinates
##
## 3D Lines and Edges
##   lines3d                   - Description of functions operating on 3D lines
##   createLine3d              - Create a line with various inputs.
##   transformLine3d           - Transform a 3D line with a 3D affine transform
##   clipLine3d                - Clip a line with a box and return an edge
##   midPoint3d                - Middle point of two 3D points or of a 3D edge
##   distancePointLine3d       - Euclidean distance between 3D point and line
##   distanceLines3d           - Minimal distance between two 3D lines
##   linePosition3d            - Return the position of a 3D point on a 3D line
##   drawEdge3d                - Draw 3D edge in the current Window
##   drawLine3d                - Draw a 3D line on the current axis
##
## Planes
##   planes3d                  - Description of functions operating on 3D planes
##   createPlane               - Create a plane in parametrized form
##   normalizePlane            - Normalize parametric representation of a plane
##   intersectPlanes           - Return intersection line between 2 planes in space
##   intersectLinePlane        - Return intersection point between a plane and a line
##   intersectEdgePlane        - Return intersection point between a plane and a edge
##   distancePointPlane        - Signed distance betwen 3D point and plane
##   projPointOnPlane          - Return the orthogonal projection of a point on a plane
##   isBelowPlane              - Test whether a point is below or above a plane
##   medianPlane               - Create a plane in the middle of 2 points
##   planeNormal               - Compute the normal to a plane
##   planePosition             - Compute position of a point on a plane
##   planePoint                - Compute 3D position of a point in a plane
##   dihedralAngle             - Compute dihedral angle between 2 planes
##   drawPlane3d               - Draw a plane clipped in the current window
##
## 3D Polygons and curves
##   polygons3d                - Description of functions operating on 3D polygons
##   polygonCentroid3d         - Centroid (or center of mass) of a polygon
##   triangleArea3d            - Area of a 3D triangle
##   polygon3dNormalAngle      - Normal angle at a vertex of the 3D polygon
##   intersectLinePolygon3d    - Intersection point of a 3D line and a 3D polygon
##   intersectLineTriangle3d   - Intersection point of a 3D line and a 3D triangle
##   intersectRayPolygon3d     - Intersection point of a 3D ray and a 3D polygon
##   clipConvexPolygon3dHP     - Clip a convex 3D polygon with Half-space
##   drawPolygon3d             - Draw a 3D polygon specified by a list of vertices
##   drawPolyline3d            - Draw a 3D polyline specified by a list of vertices
##   fillPolygon3d             - Fill a 3D polygon specified by a list of points
##
## 3D circles and ellipses
##   circles3d                 - Description of functions operating on 3D circles
##   circle3dPosition          - Return the angular position of a point on a 3D circle
##   circle3dPoint             - Coordinates of a point on a 3D circle from its position
##   circle3dOrigin            - Return the first point of a 3D circle
##   drawCircle3d              - Draw a 3D circle
##   drawCircleArc3d           - Draw a 3D circle arc
##   drawEllipse3d             - Draw a 3D ellipse
##
## Spheres
##   spheres                   - Description of functions operating on 3D spheres
##   createSphere              - Create a sphere containing 4 points
##   intersectLineSphere       - Return intersection points between a line and a sphere
##   intersectPlaneSphere      - Return intersection circle between a plane and a sphere
##   drawSphere                - Draw a sphere as a mesh
##   drawSphericalTriangle     - Draw a triangle on a sphere
##
## Smooth surfaces
##   inertiaEllipsoid          - Inertia ellipsoid of a set of 3D points
##   intersectLineCylinder     - Compute intersection points between a line and a cylinder
##   revolutionSurface         - Create a surface of revolution from a planar curve
##   surfaceCurvature          - Curvature on a surface from angle and principal curvatures
##   drawEllipsoid             - Draw a 3D ellipsoid
##   drawTorus                 - Draw a torus (3D ring)
##   drawCylinder              - Draw a cylinder
##   drawSurfPatch             - Draw a 3D surface patch, with 2 parametrized surfaces
##
## Bounding boxes management
##   boxes3d                   - Description of functions operating on 3D boxes
##   point3dBounds             - Bounding box of a set of 3D points
##   intersectBoxes3d          - Intersection of two 3D bounding boxes
##   mergeBoxes3d              - Merge 3D boxes, by computing their greatest extent
##   box3dVolume               - Volume of a 3-dimensional box
##   randomPointInBox3d        - Generate random point(s) within a 3D box
##   drawBox3d                 - Draw a 3D box defined by coordinate extents
##
## Geometric transforms
##   transforms3d              - Conventions for manipulating 3D affine transforms
##   createTranslation3d       - Create the 4x4 matrix of a 3D translation
##   createScaling3d           - Create the 4x4 matrix of a 3D scaling
##   createRotationOx          - Create the 4x4 matrix of a 3D rotation around x-axis
##   createRotationOy          - Create the 4x4 matrix of a 3D rotation around y-axis
##   createRotationOz          - Create the 4x4 matrix of a 3D rotation around z-axis
##   createBasisTransform3d    - Compute matrix for transforming a basis into another basis
##   eulerAnglesToRotation3d   - Convert 3D Euler angles to 3D rotation matrix
##   rotation3dToEulerAngles   - Extract Euler angles from a rotation matrix
##   createRotation3dLineAngle - Create rotation around a line by an angle theta
##   rotation3dAxisAndAngle    - Determine axis and angle of a 3D rotation matrix
##   recenterTransform3d       - Change the fixed point of an affine 3D transform
##   composeTransforms3d       - Concatenate several space transformations
##
## Various drawing Functions
##   drawGrid3d                - Draw a 3D grid on the current axis
##   drawAxis3d                - Draw a coordinate system and an origin
##   drawAxisCube              - Draw a colored cube representing axis orientation
##   drawCube                  - Draw a 3D centered cube, eventually rotated
##   drawCuboid                - Draw a 3D cuboid, eventually rotated
##
##
##   Credits:
##   * function isCoplanar was originally written by Brett Shoelson.
##   * Songbai Ji enhanced file intersectPlaneLine (6/23/2006).
##
## @end deftypefn

function geom3d_Contents ()

  help('geom3d_Contents');
  
  ## In development:
  ##   clipPolygon3dHP           - clip a 3D polygon with Half-space
  ##   drawPartialPatch          - draw surface patch, with 2 parametrized surfaces


  ## Deprecated:
  ##   intersectPlaneLine        - return intersection between a plane and a line
  ##   translation3d             - return 4x4 matrix of a 3D translation
  ##   scale3d                   - return 4x4 matrix of a 3D scaling
  ##   rotationOx                - return 4x4 matrix of a rotation around x-axis
  ##   rotationOy                - return 4x4 matrix of a rotation around y-axis
  ##   rotationOz                - return 4x4 matrix of a rotation around z-axis
  ##   scaling3d                 - return 4x4 matrix of a 3D scaling
  ##   vecnorm3d                 - compute norm of vector or of set of 3D vectors
  ##   normalize3d               - normalize a 3D vector
  ##   drawCurve3d               - draw a 3D curve specified by a list of points
  ##   createEulerAnglesRotation - Create a rotation matrix from 3 euler angles

endfunction