G3_BoxTest

# G3*_BoxTest

## 構文

      #include <nitro/gx/g3imm.h>
      #include <nitro/gx/g3b.h>
      #include <nitro/gx/g3c.h>

      void G3_BoxTest(const GXBoxTestParam * box);

      // 以下ディスプレイリスト（コマンド列）作成用API
      void G3BS_BoxTest(GXDLInfo * info, const GXBoxTestParam * box);
      void G3B_BoxTest(GXDLInfo * info, const GXBoxTestParam * box);
      void G3CS_BoxTest(GXDLInfo * info, const GXBoxTestParam * box);
      void G3C_BoxTest(GXDLInfo * info, const GXBoxTestParam * box);

## 引数

info | コマンドリスト情報
box | テストするボックスの座標データへのポインタ

## 返り値

なし

## 説明

引数に与えられたBoxにカレント行列を適応した結果が視体積に入るかどうかをテストします。*boxにボックスのデータをセットします。結果は`G3X_GetBoxTestResult()` で取得します。
※この関数を呼ぶ際には、あらかじめポリゴン属性の「FAR面交差クリッピングフラグ」と「１ドットポリゴン表示フラグ」を1に設定した状態にしておいてください。いずれかのフラグが0の場合正しいテスト結果が得られない場合があります。
ポリゴン属性は、Beginコマンドが発行された時点で反映されますので、

PolygonAttr -> Begin -> End -> BoxTest

の手順でBoxTestをおこなう必要があります。

    typedef union
    {
        u32 val[3];
        struct
        {
            fx16 x;      // 基準頂点のx座標
            fx16 y;      // 基準頂点のy座標
            fx16 z;      // 基準頂点のz座標
            fx16 width;  // テストする直方体の横幅
            fx16 height; // テストする直方体の高さ
            fx16 depth;  // テストする直方体の奥行き
        };
    }
    GXBoxTestParam;

## 参照

G3_PositionTest, G3_VectorTest, G3X_GetBoxTestResult

## 履歴

Ver. 2004/07/29 ポリゴン属性の設定に関する記述追加
Ver. 2004/01/19