Home Manual Reference Source
import S3GLMesh from 's3js/src/gl/S3GLMesh.js'
public class | source

S3GLMesh

Extends:

* → S3GLMesh

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

マテリアル( S3GLMaterial またはその配列)をメッシュに追加します。

public

三角形インデックス( S3GLTriangleIndex またはその配列)をメッシュに追加します。 反転モード時は面を裏返して追加します。

public

頂点( 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:

NameTypeAttributeDescription
s3glsystem S3GLSystem

WebGLシステム(GLContext等の管理)インスタンス

Public Members

public gldata: S3GLMeshArrayData source

WebGL用バッファデータ格納オブジェクト

public is_compile_gl: boolean source

GL用データのコンパイル状態

Private Members

private _s3gl: S3GLSystem source

S3GLSystem アクセス用

Public Methods

public addMaterial(material: S3GLMaterial | Array<S3GLMaterial>) source

マテリアル( S3GLMaterial またはその配列)をメッシュに追加します。

Params:

NameTypeAttributeDescription
material S3GLMaterial | Array<S3GLMaterial>

追加するマテリアルまたはその配列

public addTriangleIndex(ti: S3GLTriangleIndex | Array<S3GLTriangleIndex>) source

三角形インデックス( S3GLTriangleIndex またはその配列)をメッシュに追加します。 反転モード時は面を裏返して追加します。

Params:

NameTypeAttributeDescription
ti S3GLTriangleIndex | Array<S3GLTriangleIndex>

追加する三角形インデックスまたはその配列

public addVertex(vertex: S3GLVertex | Array<S3GLVertex>) source

頂点( S3GLVertex またはその配列)をメッシュに追加します。

Params:

NameTypeAttributeDescription
vertex S3GLVertex | Array<S3GLVertex>

追加する頂点またはその配列

public clone(): S3GLMesh source

このメッシュのクローン(複製)を生成します。

Return:

S3GLMesh

複製されたS3GLMeshインスタンス

public createTriangleIndexData(): Array<S3GLTriangleIndexData> source

各三角形ごとに、WebGL用属性データ(頂点ごとの法線・接線等)を生成します。 頂点の共有を考慮して法線のスムージングも自動計算します。

Return:

Array<S3GLTriangleIndexData>

三角形ごとのGL用属性データリスト

public dispose(): void source

WebGL用バッファ(IBO/VBO)やテクスチャなどのGLリソースを開放し、再利用不可にします。 テクスチャを含むマテリアルのリソースも解放対象です。

Return:

void

public getGLData(): S3GLMeshArrayData | null source

メッシュのGLデータ(VBO/IBO)を取得・生成します。 すでに生成済みならキャッシュを返します。 メッシュが未完成または GLContext が未セットの場合はnullを返します。

Return:

S3GLMeshArrayData | null

WebGL用バッファデータ(ibo, vbo等を含む)またはnull

public getMaterialArray(): Array<S3GLMaterial> source

メッシュが保持するマテリアル配列を取得します。

Return:

Array<S3GLMaterial>

マテリアル配列

public getTriangleIndexArray(): Array<S3GLTriangleIndex> source

メッシュが保持する三角形インデックス配列を取得します。

Return:

Array<S3GLTriangleIndex>

三角形インデックス配列

public getVertexArray(): Array<S3GLVertex> source

メッシュが保持する頂点配列を取得します。

Return:

Array<S3GLVertex>

頂点配列

public isCompileGL(): boolean source

WebGL用データがすでに作成済みかどうかを返します。

Return:

boolean

作成済みならtrue

public setCompileGL(is_compile_gl: boolean) source

WebGL用データのコンパイル状態を設定します。

Params:

NameTypeAttributeDescription
is_compile_gl boolean

コンパイル済みかどうか

Private Methods

private _getGLArrayData(): S3GLMeshArrayData source

メッシュ全体の頂点・インデックス情報をWebGL用のバッファ形式(VBO/IBO)に変換します。 すでに計算済みなら再計算は行いません。

  • IBOはポリゴン(三角形)の頂点インデックス列
  • VBOは各頂点の属性(位置、法線、UV等)の配列
  • 戻り値の各dataプロパティは、GLバッファ生成後のみセットされます

Return:

S3GLMeshArrayData

IBO/VBOデータをまとめたオブジェクト

private _init() source

メッシュの内部状態とWebGL用データ(gldata)を初期化します。 通常はコンストラクタから自動的に呼ばれます。