'/// FillSRTChannels: ver 1.0 for XSI 3.5+
'/// By Homam Bahnassi - In|Framez 2003
'--------------------------------------

set oSelection = GetValue("SelectionList")

FillSRTChannels oSelection

sub FillSRTChannels(oObjCollection)
on error resume next
for each oObj in oObjCollection
	set oPosFcurveX = oObj.Kinematics.Local.Parameters( "PosX" ).Source
	set oPosFcurveY = oObj.Kinematics.Local.Parameters( "PosY" ).Source
	set oPosFcurveZ = oObj.Kinematics.Local.Parameters( "PosZ" ).Source

	set oPosKeysX = oPosFcurveX.Keys

	for each oKeyX in oPosKeysX
		dFrame = oKeyX.Time
		oPosFcurveY.AddKey (dFrame)
		oPosFcurveZ.AddKey (dFrame)
	next

	set oPosFcurveY = oObj.Kinematics.Local.Parameters( "PosY" ).Source
	set oPosKeysY = oPosFcurveY.Keys

	for each oKeyY in oPosKeysY
		dFrame = oKeyY.Time
		oPosFcurveX.AddKey (dFrame)
		oPosFcurveZ.AddKey (dFrame)
	next

	set oPosFcurveZ = oObj.Kinematics.Local.Parameters( "PosZ" ).Source
	set oPosKeysZ = oPosFcurveZ.Keys

	for each oKeyZ in oPosKeysZ
		dFrame = oKeyZ.Time
		oPosFcurveX.AddKey (dFrame)
		oPosFcurveY.AddKey (dFrame)
	next
	
	'-------------
	
	set oRotFcurveX = oObj.Kinematics.Local.Parameters( "RotX" ).Source
	set oRotFcurveY = oObj.Kinematics.Local.Parameters( "RotY" ).Source
	set oRotFcurveZ = oObj.Kinematics.Local.Parameters( "RotZ" ).Source

	set oRotKeysX = oRotFcurveX.Keys

	for each oKeyX in oRotKeysX
		dFrame = oKeyX.Time
		oRotFcurveY.AddKey (dFrame)
		oRotFcurveZ.AddKey (dFrame)
	next

	set oRotFcurveY = oObj.Kinematics.Local.Parameters( "RotY" ).Source
	set oRotKeysY = oRotFcurveY.Keys

	for each oKeyY in oRotKeysY
		dFrame = oKeyY.Time
		oRotFcurveX.AddKey (dFrame)
		oRotFcurveZ.AddKey (dFrame)
	next

	set oRotFcurveZ = oObj.Kinematics.Local.Parameters( "RotZ" ).Source
	set oRotKeysZ = oRotFcurveZ.Keys

	for each oKeyZ in oRotKeysZ
		dFrame = oKeyZ.Time
		oRotFcurveX.AddKey (dFrame)
		oRotFcurveY.AddKey (dFrame)
	next
	
	'--------------
	
	set oSclFcurveX = oObj.Kinematics.Local.Parameters( "SclX" ).Source
	set oSclFcurveY = oObj.Kinematics.Local.Parameters( "SclY" ).Source
	set oSclFcurveZ = oObj.Kinematics.Local.Parameters( "SclZ" ).Source

	set oSclKeysX = oSclFcurveX.Keys

	for each oKeyX in oSclKeysX
		dFrame = oKeyX.Time
		oRotFcurveY.AddKey (dFrame)
		oRotFcurveZ.AddKey (dFrame)
	next

	set oSclFcurveY = oObj.Kinematics.Local.Parameters( "SclY" ).Source
	set oSclKeysY = oSclFcurveY.Keys

	for each oKeyY in oSclKeysY
		dFrame = oKeyY.Time
		oSclFcurveX.AddKey (dFrame)
		oSclFcurveZ.AddKey (dFrame)
	next

	set oSclFcurveZ = oObj.Kinematics.Local.Parameters( "SclZ" ).Source
	set oSclKeysZ = oSclFcurveZ.Keys

	for each oKeyZ in oSclKeysZ
		dFrame = oKeyZ.Time
		oSclFcurveX.AddKey (dFrame)
		oSclFcurveY.AddKey (dFrame)
	next
next
end sub