mqsdx
310.0.1
MQPluginSDK Extention Library / mqsdkをC++またはCLI(.Net)拡張するサポートライブラリ
|
頂点法線(頂点を共有する全ての面法線の平均法線)をバッファリングします。 [詳細]
#include <MQ0x.hpp>
Public 型 | |
typedef std::vector< MQPoint > ::size_type | size_type |
Public メソッド | |
void | Clear (const bool isCompact=false) |
バッファをクリアします。 [詳細] | |
void | Clear (const ::MQObject obj, const bool isCompact=false) |
新しいオブジェクトを指定してバッファをクリアします。 [詳細] | |
void | Compact () |
不要なヒープ領域を切り詰めます。 [詳細] | |
const MQPoint & | FaceNormal (FaceNormalBuffer::size_type index) |
面法線を取得します。 [詳細] | |
const ::MQObject | MQObject () const |
関連付けられているMQObjectを取得します。 | |
const MQPoint & | operator[] (size_type index) |
頂点法線を取得します。 [詳細] | |
const MQPoint & | VertexNormal (size_type index) |
頂点法線(頂点を共有する全ての面法線の平均法線)を取得します。 [詳細] | |
VertexNormalBuffer () | |
デフォルトコンストラクタ | |
VertexNormalBuffer (const ::MQObject obj) | |
コンストラクタ | |
Static Public メソッド | |
static bool | IsInvalid (const MQPoint &src) |
無効な法線か判定します。 | |
頂点法線(頂点を共有する全ての面法線の平均法線)をバッファリングします。
オブジェクト側のデータが更新されても VertexNormalBuffer の法線バッファは同期しません(形状を変更しない静的な処理の途中で、法線算出の重複や再計算を回避するために一時的に利用するのに向いています)。 基本的に一つのオブジェクトに対して一つの VertexNormalBuffer が必要ですが、よりシビアなパフォーマンスを要求する場合、 Clear() メソッドを介して新しいオブジェクトを設定し、確保済みのバッファ領域を解放せず値だけクリアして再利用し、ヒープの処理負荷を低減する事が可能です。
|
inline |
バッファをクリアします。
[in] | isCompact | ヒープを切り詰めるかどうか。 |
ヒープを切り詰める時、設定されたオブジェクトの頂点数と面数を参照して切り詰めます。オブジェクトが設定されていない時、ヒープサイズはゼロに切り詰められます。
|
inline |
新しいオブジェクトを指定してバッファをクリアします。
[in] | isCompact | ヒープを切り詰めるかどうか。 |
ヒープを切り詰める時、設定されたオブジェクトの頂点数と面数を参照して切り詰めます。オブジェクトが設定されていない時、ヒープサイズはゼロに切り詰められます。
|
inline |
不要なヒープ領域を切り詰めます。
設定されたオブジェクトの頂点数と面数を参照して切り詰めます。オブジェクトが設定されていない時、ヒープサイズはゼロに切り詰められます。
|
inline |
面法線を取得します。
インデックスが指定する面の法線は最初に参照された時に計算(初期化)されます。一度バッファされたデータは Clear() メソッドで再び未初期化状態に戻すまで保持されます。 VertexNormal() で頂点法線を取得する際、頂点を共有する面の FaceNormal() を呼び出すため、 VertexNormal() によって FaceNormal() が間接的に取得済み状態になっているケースがあります。
|
inline |
頂点法線を取得します。
vertex_normal() を呼び出します。
|
inline |
頂点法線(頂点を共有する全ての面法線の平均法線)を取得します。
インデックスが指定する頂点の法線は最初に参照された時に計算(初期化)されます。一度バッファされたデータは Clear() メソッドで再び未初期化状態に戻すまで保持されます。