This file is indexed.

/usr/include/geomview/transform3.h is in libgeomview-dev 1.9.4-3.

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
/* Copyright (C) 1992-1998 The Geometry Center
 * Copyright (C) 1998-2000 Stuart Levy, Tamara Munzner, Mark Phillips
 *
 * This file is part of Geomview.
 * 
 * Geomview is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as published
 * by the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 * 
 * Geomview is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with Geomview; see the file COPYING.  If not, write
 * to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139,
 * USA, or visit http://www.gnu.org.
 */


/* Authors: Charlie Gunn, Pat Hanrahan, Stuart Levy, Tamara Munzner, Mark Phillips */

#ifndef _GV_TRANSFORM3_H_
#define _GV_TRANSFORM3_H_

#include <stdio.h>
#include "geomtypes.h"

/*
 * Space & model flags; used to specify what space we're in, and
 * a model for hyperbolic space.  The actual value may be a logical
 * OR of a space and a model value.
 */
#define TM_HYPERBOLIC	0x0001
#define TM_EUCLIDEAN	0x0002
#define TM_SPHERICAL	0x0004

#define TM_SPACE(x) (x & 0x00ff)
#define TM_MODEL(x) (x & 0xff00)

#define TM_VIRTUAL		0x0100
#define TM_PROJECTIVE		0x0200
#define TM_CONFORMAL_BALL	0x0400

#define TMNULL  ((TransformPtr)NULL)     /* How to pass a NULL Transform3 ptr */

#define TMX 0
#define TMY 1
#define TMZ 2
#define TMW 3

extern Point3 TM3_XAXIS;
extern Point3 TM3_YAXIS;
extern Point3 TM3_ZAXIS;
extern Transform3 TM3_IDENTITY;

extern void Tm3Adjoint( Transform3, Transform3 );
extern float Tm3Invert( Transform3 T, Transform3 Tinv );
extern float Tm3Determinant( Transform3 T );
extern void Tm3Dual( Transform3 T, Transform3 Tdual );
extern void Tm3Transpose( Transform3 Ta, Transform3 Tb );
extern void Tm3PostConcat( Transform3 Ta, Transform3 Tb );
extern void Tm3PreConcat( Transform3 Ta, Transform3 Tb );
extern void Tm3Concat( Transform3 Ta, Transform3 Tb, Transform3 Tc );
extern void Tm3PolarDecomp( Transform3, Transform3 );

extern void Tm3Print(FILE *f, Transform3 T);
extern void Tm3Copy( Transform3 Tsrc, Transform3 Tdst );
extern int  Tm3Compare( Transform3 T1, Transform3 T2, float tol );
extern void Tm3Push( Transform3 T );
extern void Tm3Pop( Transform3 T );

extern void Tm3Conjugate( Transform3 T, Transform3 Tcon, Transform3 Tres );

extern void Tm3Identity( Transform3 T );
extern void Tm3Tetrad( Transform3 T, HPoint3 *x,HPoint3 *y,HPoint3 *z,HPoint3 *w );
extern void Tm3Tetrad3( Transform3 T, Point3 *x,Point3 *y,Point3 *z,Point3 *w );

extern void Tm3Translate( Transform3 T, Tm3Coord tx, Tm3Coord ty, Tm3Coord tz );
extern void Tm3TranslateOrigin( Transform3 T, HPoint3 *pt );

extern void Tm3HypTranslate( Transform3 T, Tm3Coord tx, Tm3Coord ty, Tm3Coord tz );
extern void Tm3HypTranslateOrigin( Transform3 T, HPoint3 *pt );

extern void Tm3SphTranslate( Transform3 T, Tm3Coord tx, Tm3Coord ty, Tm3Coord tz );
extern void Tm3SphTranslateOrigin( Transform3 T, HPoint3 *pt );
extern void Tm3SpaceTranslate( Transform3 T,
              Tm3Coord tx, Tm3Coord ty, Tm3Coord tz, int space );
extern void Tm3SpaceTranslateOrigin( Transform3 T, HPoint3 *pt, int space );

extern void Tm3RotateX( Transform3 T, float angle );
extern void Tm3RotateY( Transform3 T, float angle );
extern void Tm3RotateZ( Transform3 T, float angle );
extern void Tm3Rotate( Transform3 T, float angle, Point3 *axis );
extern void Tm3RotateBetween( Transform3 T, Point3 *from, Point3 *to );
extern void Tm3CarefulRotateTowardZ( Transform3 T, HPoint3 *pos );
extern void Tm3RotateTowardZ( Transform3 T, HPoint3 *pos );
extern void Tm3AlignX( Transform3 T, Point3 *axis );
extern void Tm3AlignY( Transform3 T, Point3 *axis );
extern void Tm3AlignZ( Transform3 T, Point3 *axis );
extern void Tm3Align( Transform3 T, Point3 *axis, Point3 *newaxis );
extern void Tm3Scale( Transform3 T, float sx, float sy, float sz );
extern void Tm3Skew( Transform3 T, float angle, Point3 *axis1, Point3 *axis2 );
extern void Tm3Shear( Transform3 T, Point3 *pt, HPlane3 *pl );
extern void Tm3Reflect( Transform3 T, HPlane3 *pl );
extern int  Tm3Refract( Transform3 T, HPlane3 *pl, float eta );
extern int  Tm3Refract2( Transform3 T, HPlane3 *pl, float eta );
extern void Tm3Project( Transform3 T, HPlane3 *pl, Point3 *pt );

extern void Tm3Orthographic( Transform3 T,
    float l, float r, float b, float t, float n, float f );
extern void Tm3Perspective( Transform3 T,
    float l, float r, float b, float t, float n, float f );
extern void Tm3Window( Transform3 T, float l, float r, float b, float t );

extern void Tm3PerspectiveFOV( Transform3 T, float fov, float aspect, float n, float f );


extern void Ctm3Translate( Transform3 T, float tx, float ty, float tz );
extern void Ctm3RotateX( Transform3 T, float angle );
extern void Ctm3RotateY( Transform3 T, float angle );
extern void Ctm3RotateZ( Transform3 T, float angle );
extern void Ctm3Rotate( Transform3 T, float angle, Point3 *axis );
extern void Ctm3AlignX( Transform3 T, Point3 *axis );
extern void Ctm3AlignY( Transform3 T, Point3 *axis );
extern void Ctm3AlignZ( Transform3 T, Point3 *axis );
extern void Ctm3Align( Transform3 T, Point3 *axis, Point3 *newaxis );
extern void Ctm3Scale( Transform3 T, float sx, float sy, float sz );
extern void Ctm3Skew( Transform3 T, float angle, Point3 *axis1, Point3 *axis2 );
extern void Ctm3Shear( Transform3 T, Point3 *pt, HPlane3 *pl );
extern void Ctm3Reflect( Transform3 T, HPlane3 *pl );
extern int  Ctm3Refract( Transform3 T, HPlane3 *pl, float eta );
extern int  Ctm3Refract2( Transform3 T, HPlane3 *pl, float eta );
extern void Ctm3Project( Transform3 T, HPlane3 *pl, Point3 *pt );

extern void Ctm3Orthographic( Transform3 T,
    float l, float r, float b, float t, float n, float f );
extern void Ctm3Perspective( Transform3 T,
    float l, float r, float b, float t, float n, float f );
extern void Ctm3Window( Transform3 T, float l, float r, float b, float t );

/* include it after defining all prototypes */

#include "point3.h"
#include "hpoint3.h"

#endif /* _GV_TRANSFORM3_H_ */