X3DObject.FindChild2

導入

v9.0 (2011)

詳細

検索基準のセットに一致する X3DObject の、最初の x3DObject 子オブジェクトを検索します。デフォルトでは、検索は再帰的に行われます。関数は、指定されているすべての基準(名前、タイプ、ファミリ)に一致するオブジェクトを戻します。この関数は通常、たとえばタイプや名前が分かっているオブジェクトを取得する場合に使用します。

このメソッドは X3DObject.FindChild とは異なり、オブジェクトのファミリと指定されたファミリが一致してもオブジェクト自身を戻しません。たとえば、cube.FindChild("", siMeshFamily)を呼び出すと立方体そのものが戻されますが、このメソッドは null を戻します。

C#構文

X3DObject X3DObject.FindChild2( Object in_varName, String in_pbstrType, Object in_famArray, Boolean in_bRecursive );

スクリプト構文

oReturn = X3DObject.FindChild2( [Name], [Type], [Family], [Recursive] );

戻り値

X3DObject

パラメータ

パラメータ タイプ 説明
Name StringまたはCollectionItem 名前表現または CollectionItem。表現にはワイルドカード文字を含めることもできます。名前が必要ない場合は空にします。
Type String siType で定義されているオブジェクトのタイプ。タイプを使用しない場合は空の文字列になります。タイプには、特定の x3DObject タイプ(siModelType、si3DObjectType など)とプリミティブタイプ(siPolyMeshType、siSrfMeshPrimType など)があります。プリミティブタイプを指定した場合は、このタイプのプリミティブが定義されている子オブジェクトのみが関数の対象になります。有効なタイプを以下に示します。

指定可能な値:

説明:

si3DObjectType 3D Object タイプ
siArcPrimType Implicit Arc Primitive タイプ
siAttractorCtrlType Attractor Control Object タイプ(電気力)
siCameraPrimType Camera Primitive タイプ
siCameraRootPrimType Camera Root primitive タイプ
siChainBonePrimType Chain Bone Primitive タイプ
siChainEffPrimType Chain End Effector Primitive タイプ
siChainRootPrimType Chain Root Primitive タイプ
siCirclePrimType Implicit Circle Primitive タイプ
siCloudPrimType Cloud Primitive タイプ
siConePrimType Cone Primitive タイプ
siCrvListAggregatePrimType NURBS Curve List Aggregate Primitive タイプ
siCrvListPrimType NURBS Curve List Primitive タイプ
siCubePrimType Cube Primitive タイプ
siCylinderPrimType Cylinder Primitive タイプ
siDiscPrimType Disc Primitive タイプ
siDodecahedronPrimType Dodecahedron Primitive タイプ
siDragCtrlPrimType Drag Control Primitive タイプ
siEddyCtrlPrimType Eddy Control Primitive タイプ
siFanType Fan Force Object タイプ
siFurPrimType Fur Primitive タイプ
siGeoShaderPrimType GeoShader Primitive タイプ
siGravityCtrlType Gravity Force Control Object タイプ
siGridPrimType Grid Primitive タイプ
siIcosahedronPrimType Icosahedron Primitive タイプ
siLatticePrimType Lattice Primitive タイプ
siLightPrimType Light Primitive タイプ
siModelNullPrimType Model Null Primitive タイプ
siModelType 3D Model タイプ
siNullPrimType Null Primitive タイプ
siOctahedronPrimType Octahedron Primitive タイプ
siPolyMeshType Polygon Mesh タイプ
siSpherePrimType Sphere Primitive タイプ
siSpiralPrimType Implicit Spiral Primitive タイプ
siSpotInterestPrimType Spot Interest Primitive タイプ
siSpotRootPrimType Spot Root Primitive タイプ
siSquarePrimType Implicit Square Primitive タイプ
siSrfMeshPrimType NURBS Surface Mesh Primitive タイプ
siTetrahedronPrimType Tetrahedron Primitive タイプ
siTorusPrimType Torus Primitive タイプ
siTurbulenceCtrlPrimType Turbulence Control Primitive タイプ
siVolumeDeformType Volume Deform タイプ(インプリシット球のボリューム)
siVortexCtrlType Vortex Control Object タイプ(磁力)
siWaveCtrlType Wave Control Object タイプ
siWindType Wind Force Object タイプ
Family siFamily または siFamily エレメントの Array siFamily で定義されているファミリの配列、必要ない場合は空の配列。ファミリを使用して検索を絞り込みます。配列には、X3DObject ファミリ(si3DObjectFamily など)やプリミティブファミリ(siNurbsSurfaceMeshFamily、siNullPrimitiveFamily など)があります。指定されたファミリに一致する子オブジェクトだけが処理されます。プリミティブファミリを指定した場合は、そのファミリのいずれかに属するプリミティブが定義されているオブジェクトのみが対象になります。有効なファミリを以下に示します。

指定可能な値:

説明:

si3DObjectFamily 3D Object ファミリ
siCameraFamily Camera ファミリ
siChainElementFamily Chain Element ファミリ
siControlObjectFamily Control Object ファミリ
siCurveFamily Curve Geometry ファミリ
siGeometryFamily Geometry ファミリ
siGeometryShaderFamily Geometry Shader ファミリ
siImplicitGeometryFamily Implicit Geometry ファミリ
siLatticeFamily Lattice ファミリ
siLightPrimitiveFamily Light Primitive ファミリ
siMeshFamily Mesh Geometry ファミリ
siNullPrimitiveFamily Null Primitive ファミリ
siNurbsCurveListFamily Nurbs CurveList Geometry ファミリ
siNurbsSurfaceMeshFamily Nurbs Surface Mesh Geometry ファミリ
siSurfaceCurveFamily Surface Curve Geometry ファミリ
siSurfaceFamily Surface Geometry ファミリ
Recursive Boolean True の場合は、再帰的に検索します。False の場合は、直接の子について検索します。

デフォルト値: True

Python の例

#

# FindChild vs. FindChild2 Python Example

#

from win32com.client import constants as const

Application.NewScene("", False)

# Create a cube

Application.CreatePrim("Cube", "MeshSurface", "cube", "")

root = Application.ActiveSceneRoot

cube = root.FindChild("cube")

# Use "FindChild" to get the first child of the cube of "siMeshFamily" family;

# NOTE: FindChild also considers the parent object if it is of the same family

child = cube.FindChild("", "",const.siMeshFamily)

# FindChild returns the cube itself as its first child

Application.LogMessage("FindChild : " + child.Name)

# Use "FindChild2" to get the first child of the cube of "siMeshFamily" family;

# NOTE: FindChild2 always ignore the parent regardless of its family

child = cube.FindChild2("", "",const.siMeshFamily)

# FindChild2 returns the first child of the cube, none in this example

if not child:

	Application.LogMessage("FindChild2: <none>")

else:

	Application.LogMessage("FindChild2: " + child.Name)

# Expected results:

# INFO : FindChild : cube

# INFO : FindChild2: <none>