pyvista.PolyData#

class PolyData(var_inp: vtkPolyData | str | ndarray[Any, dtype[number]] | Sequence[ndarray[Any, dtype[number]] | Sequence[int | float]] = None, faces: ndarray[Any, dtype[integer]] | Sequence[int] | None = None, n_faces: int | None = None, lines: ndarray[Any, dtype[integer]] | Sequence[int] | None = None, n_lines: int | None = None, strips: ndarray[Any, dtype[integer]] | Sequence[int] | None = None, n_strips: int | None = None, deep: bool = False, force_ext: str | None = None, force_float: bool | None = True, verts: ndarray[Any, dtype[integer]] | Sequence[int] | None = None, n_verts: int | None = None)[ソース]#

表面形状(頂点,線,ポリゴンなど)で構成されるデータセット.

いくつかの方法で初期化できます:

  • 空のメッシュを作成する

  • vtk.vtkPolyDataから初期化する

  • 頂点を使用する

  • 頂点と面を使用する

  • ファイルから

パラメータ:
var_inpvtk.vtkPolyData, str, sequence, optional

フレキシブル入力タイプ. vtk.vtkPolyData を指定できます.この場合,このPolyDataオブジェクトは deep=True の場合はコピーされ, deep=False の場合はシャローコピーになります.

'my_mesh.stl' のようなローカルパスや, '/tmp/my_mesh.ply''C:/Users/user/my_mesh.ply' のようなグローバルパスも受け入れます.

そうでなければ,これは1つ以上の点を含むポイント配列またはリストでなければなりません.各点は3つの次元を持たなければなりません。faceslinesstrips ,および verts がすべて None である場合, PolyData オブジェクトは points の数と n_verts が同じ数の頂点セルで作成されます.

facessequence, optional

面接続配列.面には,面内の点の数を示すパディングが含まれている必要があります.たとえば, [10, 11, 12][20, 21, 22, 23] の2つのフェースは [3, 10, 11, 12, 4, 20, 21, 22, 23] として表されます.これにより,フェースごとに任意の数のポイントを持つことができます.

面接続配列を含まない場合,各点は単一の頂点に割り当てられます.これは,接続性のない点群に使用されます.

n_facesint, optional

faces 接続アレイの面の数.この設定はオプションですが, PolyData の作成を高速化します.

linessequence, optional

線接続アレイ. faces と同様に,この配列は線分セグメント内の点の数を示すパディングを必要とします.例えば,2つのラインセグメント [0, 1] および [1, 2, 3, 4] は, [2, 0, 1, 4, 1, 2, 3, 4] として表される.

n_linesint, optional

lines 接続アレイの線の数.この設定はオプションですが, PolyData の作成を高速化します.

stripssequence, optional

3角形のストリップの接続配列. 3角形ストリップは,最初の3角形とストリップの次の点を必要とします.各3角形は,新しい点と前の 2 つの点から構成されます. linesfaces と同様に,この配列には点の数を示すパディングが必要です.例えば, [0, 1, 2, 3, 6, 7, 4, 5, 0, 1] という1つの3角形のストリップは 10 のパディングを必要とし, [10, 0, 1, 2, 3, 6, 7, 4, 5, 0, 1] と入力しなければならないでしょう.

n_stripsint, optional

strips 接続アレイの線の数.この設定はオプションですが, PolyData の作成を高速化します.

deepbool, optional

入力をコピーするか,コピーせずに入力からメッシュを作成するかを指定します. deep=True を設定すると,メッシュに影響を与えずにメッシュの外部でオリジナルの配列を修正できます.デフォルトは False です.

force_extstr, optional

ファイルから初期化する場合,リーダーはファイルの拡張子ではなく,この拡張子を持っているかのように扱わせます.

force_floatbool, optional

データ型が非浮動小数点型の場合に,そのデータ型を float32 にキャストします.デフォルトは True です.これを False に設定すると,非浮動小数点型を許容することになりますが,データセットを変換する際に,中間の浮動小数点数が切り捨てられる可能性があります.

vertssequence, optional

vertsの接続配列. faces と同様に,この配列は各セルの頂点の数を示すパディングが必要です.例えば, [1, 0, 1, 1, 1, 2] は,1つのポイントを持つ3つの頂点セルを示し, [2, 0, 1, 2, 2, 3] は,2つのポイントを持つ2つのポリ頂点セルを示しています.

n_vertsint, optional

verts 接続アレイの頂点の数.この設定はオプションですが, PolyData の作成を高速化します.

>>> import vtk
>>> import numpy as np
>>> from pyvista import examples
>>> import pyvista as pv

空のメッシュを作成する.

>>> mesh = pv.PolyData()

vtk.vtkPolyData オブジェクトから初期化します.

>>> vtkobj = vtk.vtkPolyData()
>>> mesh = pv.PolyData(vtkobj)

点から初期化し,頂点を作成します.

>>> points = np.array([[0, 0, 0], [1, 0, 0], [1, 0.5, 0], [0, 0.5, 0]])
>>> mesh = pv.PolyData(points)

点と面から初期化し,多角形の面を作成します.

>>> faces = np.hstack([[3, 0, 1, 2], [3, 0, 3, 2]])
>>> mesh = pv.PolyData(points, faces)

点と線から初期化します.

>>> lines = np.hstack([[2, 0, 1], [2, 1, 2]])
>>> mesh = pv.PolyData(points, lines=lines)

点とトライアングル ストリップから初期化します.

>>> strips = np.hstack([[4, 0, 1, 3, 2]])
>>> mesh = pv.PolyData(points, strips=strips)

また,複数のセルタイプで作成することも可能です.

>>> verts = [1, 0]
>>> lines = [2, 1, 2]
>>> mesh = pv.PolyData(points, verts=verts, lines=lines)

ファイル名から初期化.

>>> mesh = pv.PolyData(examples.antfile)

その他の例については, PolyDataを作成 を参照してください.

メソッド

PolyData.from_regular_faces(points, faces[, ...])

pyvista.PolyData の代替コンストラクタは,点配列と規則的な面配列から構成されます.

PolyData.save(filename[, binary, texture, ...])

サーフェスメッシュをディスクに書き込みます.

PolyData.use_strict_n_faces(mode)

グローバルな n_faces の厳格なオプトイン.

アトリビュート

PolyData.cell_normals

セルの法線を返します.

PolyData.face_normals

セルの法線を返します.

PolyData.faces

このPolyDataの面の接続性配列を返します.

PolyData.is_all_triangles

pyvista.PolyData の全ての面が3角形であるかどうかを返します.

PolyData.is_manifold

メッシュが多様である(オープンエッジがない)場合に返します.

PolyData.lines

ラインへのポインタをnumpy配列として返します.

PolyData.n_faces

セルの数を返します.

PolyData.n_faces_strict

多角形の面の数を返します.

PolyData.n_lines

線の数を返します.

PolyData.n_open_edges

このメッシュ上の開いたエッジの数を返します.

PolyData.n_strips

ストリップを返します.

PolyData.n_verts

頂点数を返します.

PolyData.obbTree

polydataのobbTreeを返します.

PolyData.point_normals

ポイント法線を返します.

PolyData.regular_faces

すべての面が同じ大きさである場合,点のインデックスの面配列を返します.

PolyData.strips

ストリップへのポインタをnumpy配列として返します.

PolyData.verts

頂点セルを返します.

PolyData.volume

データセットのおおよその体積を返します.