/*
 * $Id: mtxuty-long.h,v 1.1 2003/02/07 18:15:44 wheeler Exp $
 *
 * $Log: mtxuty-long.h,v $
 * Revision 1.1  2003/02/07 18:15:44  wheeler
 * Fox's version of libultra and friends.
 *
 * Revision 1.6  1996/11/21  06:34:28  hayakawa
 * インクルードするべきファイルをインクルードしていなかった
 *
 * Revision 1.5  1996/10/20  09:15:30  hayakawa
 * _LANGUAGE_C_PLUS_PLUS を __cplusplus に変更
 *
 */

/*
 * 行列演算支援関数 (long)
 */

#ifndef __MTXUTY_LONG_H_
#define __MTXUTY_LONG_H_

#include "u64types.h"

#ifdef __cplusplus
extern "C" {
#endif

extern Mtx2 IdentityMtx;

void
guLoadIdentityi(
    Mtx *const m1
);
void
guLoadMatrixi(
    Mtx *const m1,
    const Mtx *const m2
);
void
guMultMatrixi(
    Mtx *const m1,
    const Mtx *const m2
);
void
guRotatei(
    Mtx *const m1,
    const float angle,		/* 回転角度 */  
    const float x,
    const float y,
    const float z
);
void
guScale3i(
    Mtx *const m1,
    const float x,
    const float y,
    const float z
);
void
guScale2i(
    Mtx *const m1,
    const float x,
    const float y
);
void
guRotateZi(
    Mtx *const m1,
    const float angle		/* 回転角度 */  
);
void
guRotateYi(
    Mtx *const m1,
    const float angle		/* 回転角度 */  
);
void
guRotateXi(
    Mtx *const m1,
    const float angle		/* 回転角度 */  
);
void
guTranslate2i(
    Mtx *const m1,
    const float x,
    const float y
);
void
guTranslate3i(
    Mtx *const m1,
    const float x,
    const float y,
    const float z
);

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif /* __MTXUTY_LONG_H_ */
