Re: Curve length and scale

Date : Thu, 07 Jun 2007 17:41:28 -0400
To : XSI(at)Softimage.COM
From : Nicolas Langlois <nicolasl(at)buzzimage.com>
Subject : Re: Curve length and scale
Good point Kim.
Would have to shove in the Bounding Volume X,Y an Z also to make it more accurate. It's only when the boundary is 0 that it's wrong though.





Kim Aldis wrote:
I can't see that working. Consider what that result would give if the curve
bounds were, say, 0 in y and the scale was (1,300,1 ). Your curve length
would be divided by 300 when it's  length is un-affected by scale.

-----Original Message-----
From: owner-xsi(at)Softimage.COM [mailto:owner-xsi(at)Softimage.COM] On
Behalf Of Matt Lowery
Sent: 07 June 2007 16:45
To: 'XSI(at)Softimage.COM'
Subject: RE: Curve length and scale

That sounds like what I'm after.

Thanks Nicolas.




-----Original Message----- From: Nicolas Langlois [mailto:nicolasl(at)buzzimage.com] Sent: Thursday, June 07, 2007 4:17 PM To: XSI(at)Softimage.COM Subject: Re: Curve length and scale


Matt,

it depends how you go about it but if you go through a scriptedOp to
find the curve length (always evaluated), you could multiply it by the
reverse of the scaling in X, Y and Z so that it counter calculates the
scaling in the curve length and thus gives you the length in world
units
all the time.

#PYTHON EXAMPLE PSEUDO-CODE

def currentLengthSCOP_Update(ctx, out, InCrv):
    length = InCrv.Value.Geometry.Length
    sclx = InCrv.Kinematics.Global.Parameters("sclx").Value
    scly = InCrv.Kinematics.Global.Parameters("scly").Value
    sclz = InCrv.Kinematics.Global.Parameters("sclz").Value
    out.Value = length * (1 / sclx) * (1 / scly) * (1 / sclz)

--


Nicolas Langlois Senior Rigger / TD Buzz Image






Alexander Hemery wrote:
Hi,
how about a script that duplicates the curve, freezes scaling,  runs
GetCurveLength ..prints the result and then deletes the new curve ?

Alex.

----- Original Message ----- From: "Oz Adi" <oz(at)broadcast.co.il>
To: <XSI(at)Softimage.COM>
Sent: Thursday, June 07, 2007 2:45 PM
Subject: Re: Curve length and scale


you can "fit" a new curve on it, which will create a scale 1 new
curve, and then print it's length.

here's a little script to do so (jscript), select the curve and run
it:
/var oCrv = Selection(0);
var tempcurve = ApplyGenOp("CrvFit", "", oCrv, 3,
siPersistentOperation, siKeepGenOpInputs, null);
SetValue(tempcurve+".points", 100, null);
var newcurve = Selection(0);
logmessage (newcurve.ActivePrimitive.Geometry.Curves(0).length);/

the SetValue line sets the number of points on the new fit curve, so
if you got a longer curve set this value up..
I am still learning scripting, so I jump on any simple opportunity
to
write  a stupid code :) hehe

Oz.




Matt Lowery wrote:
Hi all,

does anyone know of a way to measure the length of a curve in xsi
units that
isn't dependant on the scale of the curve's centre?


---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text
in
body:
unsubscribe xsi


---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in
body:
unsubscribe xsi
---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in
body:
unsubscribe xsi
---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in
body:
unsubscribe xsi

No virus found in this incoming message.
Checked by AVG.
Version: 7.5.472 / Virus Database: 269.8.11/837 - Release Date:
06/06/2007

---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in
body:
unsubscribe xsi

---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body:
unsubscribe xsi

--


Nicolas Langlois Senior Rigger / TD Buzz Image

---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body:
unsubscribe xsi


Search the XSI List archives here or use the advanced search form to search across mailing lists. Searching help is available.
This site supposedly brought to you by Benjamin Grosser and the Imaging Technology Group.