Skip to content
Snippets Groups Projects
Select Git revision
  • 400f82f84dcaa28b3a9aff8537a8cf8c29ae16a8
  • next default protected
  • next-test
  • classic-netcode-fixes
  • fix-dedi-pthread
  • fix-enemy-target
  • master protected
  • better-distance-math
  • movie
  • softcode-info
  • acs
  • clipmidtex
  • custom-map-names
  • nogravity-trampolines
  • 2214-pre4
  • 2214-pre3
  • just-in-case
  • fix-opengl-parameter-crash
  • 2214-pre2
  • 2214-pre1
  • delfile2
  • SRB2_release_2.2.15
  • SRB2_release_2.2.13
  • SRB2_release_2.2.12
  • SRB2_release_2.2.11
  • SRB2_release_2.2.10
  • SRB2_release_2.2.9
  • SRB2_release_2.2.8
  • SRB2_release_2.2.7
  • SRB2_release_2.2.6
  • SRB2_release_2.2.5
  • SRB2_release_2.2.4
  • SRB2_release_2.2.3
  • SRB2_release_2.2.2
  • SRB2_release_2.2.1
  • SRB2_release_2.2.0
  • SRB2_release_2.1.25
  • SRB2_release_2.1.24
  • SRB2_release_2.1.23
  • SRB2_release_2.1.22
  • SRB2_release_2.1.21
41 results

m_vector.h

Blame
  • m_vector.h 1.16 KiB
    // SONIC ROBO BLAST 2
    //-----------------------------------------------------------------------------
    // Copyright (C) 2024 by Sonic Team Junior.
    // Copyright (C) 2009 by Stephen McGranahan.
    //
    // This program is free software distributed under the
    // terms of the GNU General Public License, version 2.
    // See the 'LICENSE' file for more details.
    //-----------------------------------------------------------------------------
    /// \file  m_vector.h
    /// \brief Basic vector functions
    
    #ifndef __M_VECTOR__
    #define __M_VECTOR__
    
    typedef struct
    {
    	double x, y, z;
    } dvector3_t;
    
    void DVector3_Load(dvector3_t *vec, double x, double y, double z);
    void DVector3_Copy(dvector3_t *a_o, const dvector3_t *a_i);
    void DVector3_Add(const dvector3_t *a_i, const dvector3_t *a_c, dvector3_t *a_o);
    void DVector3_Subtract(const dvector3_t *a_i, const dvector3_t *a_c, dvector3_t *a_o);
    void DVector3_Multiply(const dvector3_t *a_i, double a_c, dvector3_t *a_o);
    double DVector3_Magnitude(const dvector3_t *a_normal);
    double DVector3_Normalize(dvector3_t *a_normal);
    void DVector3_Negate(dvector3_t *a_o);
    void DVector3_Cross(const dvector3_t *a_1, const dvector3_t *a_2, dvector3_t *a_o);
    
    #endif