/usr/lib/emboss/include/ajvector.h is in emboss-lib 6.6.0-1.
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 | /* @include ajvector **********************************************************
**
** AJAX 3D vector functions
**
** AjP3dVector objects are structures each of three floats specifying the
** components of vectors in Cartesian three-space.
**
** The three float values stored in an AjP3dVector are, respectively,
** the components of the vector it describes in the positive X, Y and
** Z directions in a conventional right-handed Cartesian system
**
** Alternatively they can be thought of as the coefficients of the
** i, j, and k unit vectors in the x y and z directions respectively
**
** @author Copyright (C) 2003 Damian Counsell
** @version $Revision: 1.13 $
** @modified $Date: 2011/10/02 10:11:48 $ by $Author: mks $
** @@
**
** This library 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.1 of the License, or (at your option) any later version.
**
** This library 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 this library; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
**
******************************************************************************/
#ifndef AJVECTOR_H
#define AJVECTOR_H
/* ========================================================================= */
/* ============================= include files ============================= */
/* ========================================================================= */
#include "ajdefine.h"
AJ_BEGIN_DECLS
/* ========================================================================= */
/* =============================== constants =============================== */
/* ========================================================================= */
/* ========================================================================= */
/* ============================== public data ============================== */
/* ========================================================================= */
/* @data AjP3dVector **********************************************************
**
** Ajax 3-D vector object.
**
** Holds three floats
**
** AjP3dVector is implemented as a pointer to a C data structure.
**
** @alias AjS3dVector
** @alias AjO3dVector
**
** @new aj3dVectorNew default constructor
** @new aj3dVectorCreate constructor initialising values of vector components
**
** @delete aj3dVectorDel default destructor
**
** @use aj3dVectorSum return sum of two vectors
** @use aj3dVectorDotProduct return dot product of two vectors
** @use aj3dVectorCrossProduct return cross product of two vectors
** @use aj3dVectorAngle return angle between two vectors
** @use aj3dVectorDihedralAngle return angle between two planes
** @modify aj3dVectorBetweenPoints return vector between two points
**
** @cast aj3dVectorLength return length of vector
**
** @attr x [float] x coordinate
** @attr y [float] y coordinate
** @attr z [float] z coordinate
** @@
******************************************************************************/
typedef struct AjS3dVector
{
float x;
float y;
float z;
} AjO3dVector;
#define AjP3dVector AjO3dVector*
/* ========================================================================= */
/* =========================== public functions ============================ */
/* ========================================================================= */
/*
** Prototype definitions
*/
float aj3dVectorAngle(const AjP3dVector first,
const AjP3dVector fecond);
void aj3dVectorBetweenPoints(AjP3dVector betweenPoints,
float X, float Y,
float Z, float endX, float endY,
float endZ);
AjP3dVector aj3dVectorCreate(float fX, float fY, float fZ);
void aj3dVectorCrossProduct(const AjP3dVector first,
const AjP3dVector second,
AjP3dVector crossproduct);
float aj3dVectorDihedralAngle(const AjP3dVector veca,
const AjP3dVector vecb,
const AjP3dVector vecc);
void aj3dVectorDel(AjP3dVector* pthys);
float aj3dVectorDotProduct(const AjP3dVector first,
const AjP3dVector second);
float aj3dVectorLength(const AjP3dVector thys);
AjP3dVector aj3dVectorNew(void);
void aj3dVectorSum(const AjP3dVector first,
const AjP3dVector second,
AjP3dVector sum);
/*
** End of prototype definitions
*/
AJ_END_DECLS
#endif /* !AJVECTOR_H */
|