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 () |
不要なヒープ領域を切り詰めます。オブジェクトが設定されていない時、ヒープサイズはゼロに切り詰められます。 | |
FaceNormalBuffer () | |
デフォルトコンストラクタ | |
FaceNormalBuffer (const ::MQObject obj) | |
コンストラクタ | |
const ::MQObject | MQObject () const |
関連付けられているMQObjectを取得します。 | |
const MQPoint & | operator[] (size_type index) |
面法線を取得します。 [詳細] | |
Static Public メソッド | |
static bool | IsInvalid (const MQPoint &src) |
無効な法線か判定します。 | |
面法線をバッファリングします
オブジェクト側のデータが更新されても FaceNormalBuffer の法線バッファは同期しません(形状を変更しない静的な処理の途中で、法線算出の重複や再計算を回避するために一時的に利用するのに向いています)。 基本的に一つのオブジェクトに対して一つの FaceNormalBuffer が必要ですが、よりシビアなパフォーマンスを要求する場合、 Clear() メソッドを介して新しいオブジェクトを設定し、確保済みのバッファ領域を解放せず値だけクリアして再利用し、ヒープの処理負荷を低減する事が可能です。
|
inline |
バッファをクリアします。
[in] | isCompact | ヒープを切り詰めるかどうか。 |
ヒープを切り詰める時、設定されたオブジェクトの面数を参照して切り詰めます。オブジェクトが設定されていない時、ヒープサイズはゼロに切り詰められます。
|
inline |
新しいオブジェクトを指定してバッファをクリアします。
[in] | isCompact | ヒープを切り詰めるかどうか。 |
ヒープを切り詰める時、設定されたオブジェクトの面数を参照して切り詰めます。オブジェクトが設定されていない時、ヒープサイズはゼロに切り詰められます。
参照元 Clear().
|
inline |
面法線を取得します。
インデックスが指定する面の法線は最初に参照された時に計算(初期化)されます。一度バッファされたデータは Clear() メソッドで再び未初期化状態に戻すまで保持されます。