'	Script Name:  KRTcurve2poly.vbs
'	Version:		      1.5
'	Author:       Prudkoy Yury ( KURT )
'	Last Updated:  April 26, 2001
'	E-mail :       kurt@vip-rus.com

' DESCRIPTION:
'	Create polygon from multiple selected curves with definable number of point and history flag in UI
'	With history flag is on, you may add, delete or modify points on curve
'	Poligon's number of points can not be modified
' OPERATION:
'  	Select a Curves
'	Run script 
'	Define number of point  and  History flag in UI

KRTcurve2poly

sub KRTcurve2poly
dim posx, posy, posz

set list = GetValue ( "SelectionList" )
set crvlist = SIFilter( list, "curve" )
if TypeName( crvlist) = "Nothing" then
	LogMessage "select a curves"
	exit sub	
end if


set mySceneRoot = EnumElements("Project", TRUE)
set mySceneRoot = SIFilter(mySceneRoot, "Scene", TRUE )(0)
set mySceneRoot = EnumElements( mySceneRoot , TRUE)
set mySceneRoot = SIFilter(mySceneRoot, "SceneObject", TRUE)(0)

On Error Resume Next

set prop_name = AddProp ("Custom_parameter_list",mySceneRoot, , "Curve2Poly").Value("Value")
SIAddCustomParameter prop_name, "NamberOfPoint", siUInt2 , 60, 3, 1000, , 0, 3, 1000
SIAddCustomParameter prop_name, "History", siBool, 1, 0.000, 1.000, , 0, 0.000, 1.000


InspectObj mySceneRoot & "." & prop_name,,"KRTCurve2Poly v1.5",4

if Err.Number=0 then
for each crv in crvlist
logmessage "Will create the polygons from: " & crv		

	s= GetValue(prop_name &".NamberOfPoint")
	s=1/CLng(s)

	SIGetPrim "EmptyPolygonMesh", , , , obj
	SelectObj obj
	ApplyTopoOp "CreatePolygon", obj

	set rtn = EvaluateCurveAt( crv, 0, True, posx, posy, posz )
	AddPointToNewPolygon obj, posx, posy, posz
	set rtn = EvaluateCurveAt( crv, s, True, posx, posy, posz )
	AddPointToNewPolygon obj, posx, posy, posz
	set rtn = EvaluateCurveAt( crv, 2*s, True, posx, posy, posz )
	AddPointToNewPolygon obj, posx, posy, posz
	SelectObj obj&".poly[0]"

	for i=3*s to 1 step s
		set rtn = EvaluateCurveAt( crv, i, True,posx, posy, posz  )	
		AddPointToNewPolygon obj, posx, posy, posz
	next
	if GetValue(prop_name &".History")<>0 then 
		ApplyDeformBySpine obj &";"&crv
	end if
next
end if

DeleteObj mySceneRoot & "." & prop_name
SelectObj crvlist

logmessage "DONE"

end sub
