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 |