00001 /* 00002 ############################################################################ 00003 00004 # 00005 00006 # Copyright (c) 2000 The Interventional Centre, Rikshospitalet, Oslo, 00007 00008 # Norway. All rights reserved. This software was developed by the 00009 00010 # Interventional Centre, at Rikshospitalet, University of Oslo. All 00011 00012 # advertising materials mentioning features or use of this software 00013 00014 # must display the following acknowledgement: This product includes 00015 00016 # software developed by the Interventional Centre, Rikshospitalet, 00017 00018 # University of Oslo, Norway. 00019 00020 # 00021 00022 # Redistribution and use in source and binary forms, with or without 00023 00024 # modification, are permitted provided that the following conditions 00025 00026 # are met: 00027 00028 # 00029 00030 # 1. Redistributions of source code must retain the above copyright 00031 00032 # notice, this list of conditions and the following disclaimer. 00033 00034 # 2. Redistributions in binary form must reproduce the above copyright 00035 00036 # notice, this list of conditions and the following disclaimer in 00037 00038 # the documentation and/or other materials provided with the 00039 00040 # distribution. 00041 00042 # 3. All advertising materials mentioning features or use of this 00043 00044 # software must display the following acknowledgement: This product 00045 00046 # includes software developed by the Interventional Centre, 00047 00048 # Rikshospitalet, University of Oslo, Norway. 00049 00050 # 4. Any scientific publication made using this software should 00051 00052 # include the following acknowledgement: The program IVSDX 00053 00054 # developed by The Interventional Centre, Rikshospitalet, 00055 00056 # University of Oslo, Norway was used. 00057 00058 # 5. Neither the name of the University nor the names of its 00059 00060 # contributors may be used to endorse or promote products derived 00061 00062 # from this software without specific prior written permission. 00063 00064 # 00065 00066 # THIS SOFTWARE IS PROVIDED BY THE INTERVENTIONAL CENTRE, 00067 00068 # RIKSHOSPITALET ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 00069 00070 # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 00071 00072 # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00073 00074 # DISCLAIMED. IN NO EVENT SHALL THE INTERVENTIONAL CENTRE, 00075 00076 # RIKSHOSPITALT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00077 00078 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00079 00080 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 00081 00082 # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00083 00084 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00085 00086 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 00087 00088 # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00089 00090 # SUCH DAMAGE. 00091 00092 # 00093 00094 ############################################################################ 00095 */ 00096 #ifndef _mr_vector_h_ 00097 #define _mr_vector_h_ 00098 00099 #ifdef __cplusplus 00100 extern "C" { 00101 #endif 00102 00103 void mr_vector_transformation_alpha_betha(float *R_0,float *R_1,float *R_2,double alpha,double betha); 00104 00105 void mr_vector_transformation(float *n_in,float *N0,float *N1,float *N2); 00106 00107 void mr_vector_cross_product(float *u,float *v,float *w); 00108 00109 void mr_vector_in_product(float *a,float *v,float *w); 00110 00111 void mr_vector_fill_vector_char(unsigned char *a,unsigned char *b,int imax); 00112 00113 void mr_vector_fill_vector(float *a,float *b,int imax); 00114 00115 void mr_vector_add_vectors(float *v,float *v1,float *v_add); 00116 00117 void mr_vector_subtract_vectors(float *v,float *v1,float *v_sub); 00118 00119 void mr_vector_multiply_vectors(float *v,float *v1,float a); 00120 00121 void mr_vector_add_vector(float *v,float *v_add); 00122 00123 void mr_vector_subtract_vector(float *v,float *v_sub); 00124 00125 void mr_vector_multiply_vector(float *v,float a); 00126 00127 void mr_vector_normalize_vector(float *v); 00128 00129 void mr_vector_length_vector(float *v,float *l); 00130 00131 void mr_vector_initialize_vector(float *v); 00132 00133 void mr_vector_positive_vector(float *v); 00134 00135 void mr_vector_initialize_matrix(unsigned short **matrix,int r,int c); 00136 00137 void mr_vector_determinant_matrix(float *row1,float *row2,float *row3,float *d); 00138 00139 void mr_vector_adjoint_matrix(float *row1,float *row2,float *row3); 00140 00141 void mr_vector_inverse_matrix(float *row1,float *row2,float *row3); 00142 00143 void mr_vector_rotation(float *n_rf,float *n_rt,float *v); 00144 00145 void mr_vector_transversal_normal(float *NORMAL_U,float *NORMAL_V); 00146 00147 #ifdef __cplusplus 00148 } 00149 #endif 00150 00151 #endif
1.4.6