Home Manual Reference Source

src/S3.js

import S3System from "./basic/S3System.js";
import S3Light from "./basic/S3Light.js";
import S3GLSystem from "./gl/S3GLSystem.js";
import S3MeshLoader from "./loader/S3MeshLoader.js";
import S3Math from "./math/S3Math.js";
import S3Angles from "./math/S3Angles.js";
import S3Vector from "./math/S3Vector.js";
import S3Matrix from "./math/S3Matrix.js";
import S3Plane from "./math/S3Plane.js";
import CameraController from "./tools/CameraController.js";

/**
 * S3 3DCGエンジンのメイン名前空間オブジェクト
 *
 * 主要クラスやユーティリティ(System, Math, Vector, Matrix, Plane, Loader, Controllerなど)を
 * ひとつの名前空間に集約してエクスポートします。
 * 各種定数・列挙体やローダ・ツールへのショートカットも含まれます。
 *
 * @namespace S3
 * @property {typeof S3System} System 3DCGシステム管理クラス
 * @property {typeof S3GLSystem} GLSystem WebGL用拡張システム
 * @property {typeof S3Math} Math 数学ユーティリティ
 * @property {typeof S3Angles} Angles オイラー角クラス
 * @property {typeof S3Vector} Vector ベクトルクラス
 * @property {typeof S3Matrix} Matrix 行列クラス
 * @property {typeof S3Plane} Plane 平面クラス
 * @property {Object} SYSTEM_MODE 描画モード定数
 * @property {Object} DEPTH_MODE 深度バッファモード定数
 * @property {Object} DIMENSION_MODE 座標系モード定数
 * @property {Object} VECTOR_MODE ベクトルモード定数
 * @property {Object} FRONT_FACE 面の前面判定モード定数
 * @property {Object} CULL_MODE カリングモード定数
 * @property {Object} LIGHT_MODE ライトモード定数
 * @property {typeof S3MeshLoader} MeshLoader メッシュデータローダ
 * @property {typeof CameraController} CameraController カメラコントローラー
 *
 * @example
 * import S3 from "S3.js";
 * const sys = new S3.System();
 * const mesh = sys.createMesh();
 * // もしくは
 * const glsys = new S3.GLSystem();
 */
const S3 = {
	System: S3System,
	GLSystem: S3GLSystem,
	Math: S3Math,
	Angles: S3Angles,
	Vector: S3Vector,
	Matrix: S3Matrix,
	Plane: S3Plane,

	SYSTEM_MODE: S3System.SYSTEM_MODE,
	DEPTH_MODE: S3System.DEPTH_MODE,
	DIMENSION_MODE: S3System.DIMENSION_MODE,
	VECTOR_MODE: S3System.VECTOR_MODE,
	FRONT_FACE: S3System.FRONT_FACE,
	CULL_MODE: S3System.CULL_MODE,
	LIGHT_MODE: S3Light.MODE,

	MeshLoader: S3MeshLoader,
	CameraController: CameraController
};

export default S3;