配列クラス (DPNT_T 構造体)

Namespace: FVIL
Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)

Syntax

C#
[SerializableAttribute]
public class DPNT_T_ARRAY : CFviObject, 
	ICloneable, ISerializable, IXmlSerializable, IEnumerable<DPNT_T>, 
	IFviCopyable, [T:FVIL.IFviPtrIndexer<fvalgcli::DPNT_T>]
Visual Basic
<SerializableAttribute>
Public Class DPNT_T_ARRAY
	Inherits CFviObject
	Implements ICloneable, ISerializable, IXmlSerializable, IEnumerable(Of DPNT_T), 
	IFviCopyable, [T:FVIL.IFviPtrIndexer<fvalgcli::DPNT_T>]

Remarks

アンマネージ環境のヒープに DPNT_T 構造体の配列を確保するクラスです。
確保した領域のアドレスは、Address に保管され、 Clear()()()() が呼ばれた時や このインスタンスが解放される時に自動的に解放されます。

このクラスは、.NET 環境とネイティブ環境の間で大量の画像処理データの受け渡しを行うことを目的としています。
通常、.NET 環境の固定長配列をネイティブ環境に受け渡す場合は マーシャリングが必要になり、 データのコピーが少なくとも1回は発生します。 ネイティブ環境の処理結果を .NET 環境に反映する場合(In,Out 属性の引数の場合)は、計2回発生します。 このクラスを使用するとマーシャリングの必要が無い為、データコピーのコスト削減が行えます。


領域の確保と解放について:

領域の確保と解放は FVCL を介して FIE ライブラリを使用しています。 外部で確保した領域を設定することもできますが、 アロケータを一致させる必要がありますのでご注意ください。(下表参照) 自動的に解放したくない場合は、 IsAttachtrue に設定することで回避できます。


その他の操作:
操作メソッド概要
領域設定SetBuffer(DPNT_T_PTR, Int32, Boolean)外部で確保した領域を設定する場合に使用します。
アタッチAttach(Object)同一型のインスタンスが保有する領域にアタッチします。
移動MoveFrom(Object)同一型のインスタンスが保有する領域をこのインスタンスに移動します。
複製CopyFrom(Object)同一型のインスタンスの内容を複製します。


初期値と範囲:
プロパティ初期値範囲説明
Item[([( Int32])]) (なし)DPNT_T配列の要素の取得または設定を行います。
AddressIntPtr.ZeroIntPtr.Zero または 有効なアドレス配列の先頭アドレスの取得を行います。
Count00,1~配列の要素数の取得を行います。
IsAttachfalsefalse/trueアタッチ状態の取得または設定を行います。
SizeOfItemsizeof(DPNT_T)sizeof(DPNT_T)配列要素1つ分のサイズ(byte)を取得します。
Size0SizeOfItem × Count配列全体のサイズ(byte)を取得します。

データ変換 (1):

点群を保有する他の機能からデータ変換するには、 CopyFrom(Object) メソッドを使用してください。 対応しているクラスは以下の通りです。

項目説明
DPNT_T の IEnumerable 全ての要素をそのまま複製します。
PNT_T の IEnumerable 点座標(x,y)をそのまま複製します。
DEDGE_T の IEnumerable 点座標(x,y)をそのまま複製します。
F_DEDGE の IEnumerable 点座標(x,y)をそのまま複製します。
F_EDGE の IEnumerable 点座標(x,y)をそのまま複製します。
CFviPoint の IEnumerable 点座標(X,Y)をそのまま複製します。
Point の IEnumerable 点座標(X,Y)をそのまま複製します。
PointF の IEnumerable 点座標(X,Y)をそのまま複製します。
CFviEdgeData の IEnumerable 点座標(Position)をそのまま複製します。
CFviBarcodeData の IEnumerable 始点座標(StartPos)をそのまま複製します。
CFviBlobData の IEnumerable 重心座標(Center)をそのまま複製します。
CFviQRData の IEnumerable 中心座標(Center)をそのまま複製します。
CFviDMData の IEnumerable 中心座標(Center)をそのまま複製します。
CFviFPMData の IEnumerable 回答座標(Position)をそのまま複製します。
CFviFPM2Data の IEnumerable 回答座標(Position)をそのまま複製します。
CFviGSearchData の IEnumerable 回答座標(Position)をそのまま複製します。
CFviGS2Data の IEnumerable 回答座標(Position)をそのまま複製します。
F_SEARCH_RESULT の IEnumerable 回答座標(x,y)をそのまま複製します。
F_GS_RESULT の IEnumerable 回答座標(x,y)を 0.01 倍した値を複製します。
CFviBlobResult すべての有効ブローブの重心座標(Center)そのまま複製します。
CFviBlobList すべてのブローブの重心座標(Center)をそのまま複製します。
無効ブローブが含まれている場合は例外が発生します。
CFviQRResult デコードされたデータの中心座標(Center)をそのまま複製します。
CFviDMResult デコードされたデータの中心座標(Center)をそのまま複製します。

データ変換 (2): 他の機能へのデータ変換

本クラスから他の機能へデータ変換するには、下記のメソッドを使用してください。

項目メソッド説明
DPNT_T コレクションToList()()()() 全要素を DPNT_T 構造体のコレクションに格納して返します。
DPNT_T 配列ToArray()()()() 全要素を DPNT_T 構造体の固定長配列に格納して返します。

Inheritance Hierarchy

System..::..Object
FVIL..::..CFviObject
FVIL..::..DPNT_T_ARRAY

See Also