i'm trying to fill an iceattribute with per frame point data:
here's what i've got

(this assumes a grid in the scene with a shape that's moving some points,
animated on frame 1 and 2, although... i guess the principle is the same
regardless of whether it's moving or not)
### snip

import win32com
from win32com.client import constants as c
xsi = win32com.client.Dispatch('XSI.Application').Application

obj = xsi.Dictionary.GetObject('grid')
attr = obj.ActivePrimitive.AddICEAttribute('PerFramePointData',
c.siICENodeDataVector3, c.siICENodeStructureArray,
c.siICENodeContextComponent0D)

inFrame = 1
outFrame = 2

pointsPerFrameArray = []
for frame in range(inFrame, outFrame + 1):
    pointsPerFrameArray.append(obj.EvaluateAt(frame).
ActivePrimitive.ICEAttributes('PointPosition').DataArray)

attr.DataArray2D = pointsPerFrameArray

print attr.DataArray2D


it yields:
WARNING: 3392 - Invalid offset specified while extracting data from this
attribute: <Attribute: PerFramePointData> <Offset: 120241952>

and i end up with an empty attribute.
what's the proper method of filling a DataArray2D attribute?

thanks,
enoch

Reply via email to