v4.0
UserDataBlobまたはCustomPropertyを作成し、Source オブジェクトに追加します。
Property Source.AddProperty( Object in_Preset, Boolean in_Branch, String in_name ); |
oReturn = Source.AddProperty( Preset, [BranchFlag], [Name] ); |
CustomProperty、UserDataBlob、UserDataMapまたは(使用されたプリセットによる)
パラメータ | タイプ | 説明 |
---|---|---|
Preset | String |
この引数には、Property Preset の名前またはファイル名やプリセット ファイルへの完全パスを含む文字列が格納されます。 注: CustomProperty Presets、UserDataBlob Presets、および UserDataMap Presets だけがソースに対して有効です。 作成されるプロパティのタイプはこの引数により決定されます。たとえば、"CustomProperty" は空の CustomProperty を作成し、"UserDataBlob" は UserDataBlob を作成します。 |
BranchFlag | Boolean |
False は、唯一のサポートされる値です。 デフォルト値: false |
Name | String | 新しいプロパティの名前を表します(SIObject.Name を参照)。指定しない場合には、オブジェクトは Preset 引数に基づいて名前が付けられます。 |
/* This example shows how to add user data to a shape source */ // First build a simple scene NewScene( null, false ); var oCone = ActiveSceneRoot.AddGeometry( "Cone", "MeshSurface" ); // Set up the time in seconds var oPlayCtrl = GetValue("PlayControl"); var dFrameRate = oPlayCtrl.Parameters("Rate").Value; var dTime = 1.0 * dFrameRate; // start at the beginning // Using SaveShapeKey stores the source and applies the clip simultaneously var aIndices = new Array( 1,4,7,10,13,16,19,22,25 ); var aPositions = new Array( /* X, Y, Z */ 0, 1.6667, 0, // point 1 -0.5, -0.5, 0, // point 4 -0.3536, -0.5, -0.3536, // point 7 0, -0.5, 0.5, // point 10 0.3536, -0.5, 0.3536, // point 13 0.5, -0.5, 0, // point 16 0.3536, -0.5, -0.3536, // point 19 0, -0.5, -0.5, // point 22 -0.3536, -0.5, -0.3536 // point 25 ); var oShapeClip = oCone.ActivePrimitive.Geometry.SaveShapeKey( dTime, // Time (when to evaluate) -1, // ClipDuration siShapeObjectReferenceMode, // RefMode (shape ref. mode) siShapeMixedWeightMode, // InstMode (shape inst. mode) "MyNewShape", // Name for shape aIndices, // IndexArray (point indices) aPositions // PositionArray (key positions) ); // Add a CustomProperty nested under the Source of the 1st clip var oShapeSource = oShapeClip.Source; var oShapePSet = oShapeSource.AddProperty( "CustomProperty",false, "ShapePSet" ); oShapePSet.AddParameter3( "Foo", siString ) ; // Add a UserDataBlob nested under the ShapeSource var oShapeUserDataBlob = oShapeSource.AddProperty( "UserDataBlob" ); LogMessage( "There are " + oShapeSource.Properties.Count + " Properties under this Shape Source" ) ; // Expected result: //INFO : There are 2 Properties under this Shape Source |