S3GLMesh
Extends:
WebGL用のメッシュ(立体形状データ)を管理するクラスです。 S3Meshを拡張し、WebGL描画に必要なVBOやIBO情報、GL用データ生成・解放機能などを持ちます。 モデルの描画時にGLにバインドできるバッファ形式への変換・管理も行います。
Constructor Summary
Public Constructor | ||
public |
constructor(s3glsystem: S3GLSystem) S3GLMeshのインスタンスを生成します。 |
Member Summary
Public Members | ||
public |
WebGL用バッファデータ格納オブジェクト |
|
public |
GL用データのコンパイル状態 |
Private Members | ||
private |
S3GLSystem アクセス用 |
Method Summary
Public Methods | ||
public |
addMaterial(material: S3GLMaterial | Array<S3GLMaterial>) マテリアル( S3GLMaterial またはその配列)をメッシュに追加します。 |
|
public |
三角形インデックス( S3GLTriangleIndex またはその配列)をメッシュに追加します。 反転モード時は面を裏返して追加します。 |
|
public |
addVertex(vertex: S3GLVertex | Array<S3GLVertex>) 頂点( S3GLVertex またはその配列)をメッシュに追加します。 |
|
public |
このメッシュのクローン(複製)を生成します。 |
|
public |
各三角形ごとに、WebGL用属性データ(頂点ごとの法線・接線等)を生成します。 頂点の共有を考慮して法線のスムージングも自動計算します。 |
|
public |
dispose(): void WebGL用バッファ(IBO/VBO)やテクスチャなどのGLリソースを開放し、再利用不可にします。 テクスチャを含むマテリアルのリソースも解放対象です。 |
|
public |
メッシュのGLデータ(VBO/IBO)を取得・生成します。 すでに生成済みならキャッシュを返します。 メッシュが未完成または GLContext が未セットの場合はnullを返します。 |
|
public |
メッシュが保持するマテリアル配列を取得します。 |
|
public |
メッシュが保持する三角形インデックス配列を取得します。 |
|
public |
メッシュが保持する頂点配列を取得します。 |
|
public |
WebGL用データがすでに作成済みかどうかを返します。 |
|
public |
setCompileGL(is_compile_gl: boolean) WebGL用データのコンパイル状態を設定します。 |
Private Methods | ||
private |
メッシュ全体の頂点・インデックス情報をWebGL用のバッファ形式(VBO/IBO)に変換します。 すでに計算済みなら再計算は行いません。 |
|
private |
_init() メッシュの内部状態とWebGL用データ(gldata)を初期化します。 通常はコンストラクタから自動的に呼ばれます。 |
Public Constructors
public constructor(s3glsystem: S3GLSystem) source
S3GLMeshのインスタンスを生成します。
Params:
Name | Type | Attribute | Description |
s3glsystem | S3GLSystem | WebGLシステム(GLContext等の管理)インスタンス |
Public Members
Private Members
Public Methods
public addMaterial(material: S3GLMaterial | Array<S3GLMaterial>) source
マテリアル( S3GLMaterial またはその配列)をメッシュに追加します。
Params:
Name | Type | Attribute | Description |
material | S3GLMaterial | Array<S3GLMaterial> | 追加するマテリアルまたはその配列 |
public addTriangleIndex(ti: S3GLTriangleIndex | Array<S3GLTriangleIndex>) source
三角形インデックス( S3GLTriangleIndex またはその配列)をメッシュに追加します。 反転モード時は面を裏返して追加します。
Params:
Name | Type | Attribute | Description |
ti | S3GLTriangleIndex | Array<S3GLTriangleIndex> | 追加する三角形インデックスまたはその配列 |
public addVertex(vertex: S3GLVertex | Array<S3GLVertex>) source
頂点( S3GLVertex またはその配列)をメッシュに追加します。
Params:
Name | Type | Attribute | Description |
vertex | S3GLVertex | Array<S3GLVertex> | 追加する頂点またはその配列 |
public createTriangleIndexData(): Array<S3GLTriangleIndexData> source
各三角形ごとに、WebGL用属性データ(頂点ごとの法線・接線等)を生成します。 頂点の共有を考慮して法線のスムージングも自動計算します。
public dispose(): void source
WebGL用バッファ(IBO/VBO)やテクスチャなどのGLリソースを開放し、再利用不可にします。 テクスチャを含むマテリアルのリソースも解放対象です。
Return:
void |
public getGLData(): S3GLMeshArrayData | null source
メッシュのGLデータ(VBO/IBO)を取得・生成します。 すでに生成済みならキャッシュを返します。 メッシュが未完成または GLContext が未セットの場合はnullを返します。
public setCompileGL(is_compile_gl: boolean) source
WebGL用データのコンパイル状態を設定します。
Params:
Name | Type | Attribute | Description |
is_compile_gl | boolean | コンパイル済みかどうか |
Private Methods
private _getGLArrayData(): S3GLMeshArrayData source
メッシュ全体の頂点・インデックス情報をWebGL用のバッファ形式(VBO/IBO)に変換します。 すでに計算済みなら再計算は行いません。
- IBOはポリゴン(三角形)の頂点インデックス列
- VBOは各頂点の属性(位置、法線、UV等)の配列
- 戻り値の各dataプロパティは、GLバッファ生成後のみセットされます