Glad to hear, good luck finding an apartment, my wife love that country.
 Javier


2012/6/10 Ahmidou.xsi <ahmidou....@gmail.com>

> Hi Javier
> As I moved to Australia, I didn't had any time to finish it. As it's quite
> rainy here, I sould find some time, but first, I have to find an apartment!
>
> Regard
> A.
>
> Le 8 juin 2012 à 03:44, javier gonzalez <javi09warr...@gmail.com> a
> écrit :
>
> Hey, Ahmidou, any news about this fantastic tool. Thanks
>
> 2012/5/10 Brent McPherson <brent.mcpher...@autodesk.com>
>
>> We use a combination of OpenGL and custom (raycast) picking depending on
>> the picking mode.
>> --
>> Brent
>>
>> From: softimage-boun...@listproc.autodesk.com [mailto:
>> softimage-boun...@listproc.autodesk.com] On Behalf Of Ahmidou Lyazidi
>> Sent: 10 May 2012 00:40
>> To: softimage@listproc.autodesk.com
>> Subject: Re: Convert Position Fcurves key's tangents in 3d space
>>
>> Thanks Simon!
>> I have a working version with tangents, but it crash softimage in some
>> cases, the std::vector is kind of touchy...
>> I also have problems with the opengl's GL_SELECT for picking that
>> sometimes return funky value (Thanks ATI...). It seems to be deprecated in
>> favor of custom raycast picking, so I'll refactor it that way.
>>
>> I have a question to Softimage Devs, As I have selection problems for
>> components, am I right if I say that SI is also using GL_SELECT ??
>> I have seen some people saying they got 1000% speed gain using raycast
>> instead.
>>
>> Regards
>> Ahmidou.
>>
>> 2012/5/4 Simon Pickard <m...@simonpickard.com<mailto:
>> m...@simonpickard.com>>
>> Very cool! So amazing to see this in Softimage! :)
>>
>> Regards,
>> Simon
>>
>> On 3 May 2012 09:55, Ahmidou Lyazidi <ahmidou....@gmail.com<mailto:
>> ahmidou....@gmail.com>> wrote:
>> Hi Jo, and thanks for the snipet!
>> I already have a structure not that far, but my problem is elsewhere. The
>> fcurves's tangents interpretation in 3d is not a simple mapping of the X,Y
>> values.
>> I also had to deal with fcurves that don't have necessary three keys a
>> the same time but only one or two, so I don't have all the information to
>> draw the tangents as they should be.
>> But I think I'm near the solution, I just have to restructure some part
>> of my code to make it more efficient and test :)
>>
>> Best regards
>> A.
>>
>> 2012/4/30 jo benayoun <jobenay...@gmail.com<mailto:jobenay...@gmail.com>>
>> Hi Ahmidou,
>> looks quite nice ! :)
>>
>> For your problem, I would go in c by reproducing a kinda structure that
>> mimic FCurves ones like the following.
>>
>> """
>> struct bezfragments {
>>    double cps[4][3];
>>    uint_t interp;
>> };
>>
>> struct motionpath {
>>    constchar_t *source;
>>    ushort_t color[3];
>>    uint_t flags;
>>    uint_t nbezfragments;
>>    struct bezfragments *[1];
>> };
>> """
>>
>> A MotionPath as a FCurve is a fixed length array of bezier curves with
>> some extra informations like the object which is the source, the color of
>> the path and some other flags for ui convenience (selection mode, ...).
>> You have the choice to represent your bezier segments by  pairing control
>> points by 3 or by 4, I dont think it makes a huge difference.
>> This system coupled with a "MotionPathManager" will avoid you to have to
>> query the softimage API each time you need to redraw your viewport as your
>> datas are cached in memory.
>> Also, by subscripting to any event like "siOnValueChange", you will be
>> able to rebuild a motion path targeting just what you need. Also a good
>> point for perfs.
>> Anyways .... Here is a little pysnippet (I dont have the possibility to
>> write it in C right now) ! It should I hope answer to your first question !
>> :)
>>
>> jo
>>
>>
>> """
>> # Im quite sure gmail will eat my indent efforts so take care about that !
>> # Each key for each params must have a buddy on the others axes.
>> # Create a cube, animate its pos's being sure a key is set at the same
>> frame for the three axes.
>> #
>>
>> import random
>>
>>
>> class BezFragment(object):
>>    cpoints = tuple()
>>    interp = int()
>>
>> class MotionPath(object):
>>    source = str()
>>    color = tuple()
>>    bezfragments = tuple()
>>
>>
>> def build_axis_data(param):
>>    keys = tuple(param.Source.Keys)
>>    res = list()
>>    bfrag = None
>>    i = 0
>>
>>    while i < (len(keys)-1):
>>            cp = list()
>>
>>            key = keys[i]
>>            nextkey = keys[i+1]
>>            cp.append(round(key.Value, 1))
>>            cp.append(round(key.Time, 1))
>>            cp.append(round(key.Value + key.LeftTanX, 1))
>>            cp.append(round(key.Time + key.LeftTanY, 1))
>>            cp.append(round(nextkey.Value - key.RightTanY, 1))
>>            cp.append(round(nextkey.Time - key.RightTanX, 1))
>>            cp.append(round(nextkey.Value, 1))
>>            cp.append(round(nextkey.Time, 1))
>>
>>            bfrag = BezFragment()
>>            res.append(bfrag)
>>            bfrag.interp = key.Interpolation
>>            bfrag.cpoints = tuple(cp)
>>
>>            i += 1
>>
>>    return tuple(res)
>>
>>
>> def build_motion_path(siobj):
>>    x = build_axis_data(siobj.Kinematics.Local.posx)
>>    y = build_axis_data(siobj.Kinematics.Local.posy)
>>    z = build_axis_data(siobj.Kinematics.Local.posz)
>>
>>    mp = MotionPath()
>>    mp.source = siobj.FullName
>>    mp.color = (random.randint(120, 255), random.randint(120, 255),
>>                            random.randint(120, 255),
>>                            )
>>    mp.bezfragments = tuple(zip(x, y, z))
>>    return mp
>>
>>
>> def log_bezfragment(bfrag):
>>    msg = "{0}:({1}, {2})---o ({3}, {4})  ({5}, {6})o---({7}, {8})\n" \
>>                "         \______________________________________/"
>>    print msg.format("", *bfrag.cpoints)
>>    return None
>>
>>
>> def log_obj_motionpath():
>>    for obj in Application.Selection:
>>        mp = build_motion_path(obj)
>>
>>        print "source: {0}".format(mp.source)
>>        print "mp-color: {0}".format(mp.color)
>>        for bezf in mp.bezfragments:
>>            print "\ncp"
>>            for xyz in bezf:
>>                log_bezfragment(xyz)
>>    return None
>>
>>
>> log_obj_motionpath()
>>
>> """
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> 2012/4/30 Ahmidou Lyazidi <ahmidou....@gmail.com<mailto:
>> ahmidou....@gmail.com>>
>> I think I got it :)
>>
>> 2012/4/30 Halim Negadi <hneg...@gmail.com<mailto:hneg...@gmail.com>>
>> Looks awesome Ahmidou, can't wait to play with it.
>> Cheers,
>> H.
>>
>> On Mon, Apr 30, 2012 at 4:44 PM, Ahmidou Lyazidi <ahmidou....@gmail.com
>> <mailto:ahmidou....@gmail.com>> wrote:
>> Well, as soon as I have resolved the tangent handle stuff :) I'm sure
>> it's simple, but I can't get it...
>>
>> 2012/4/30 Philip Melancon <philip.melan...@modusfx.com<mailto:
>> philip.melan...@modusfx.com>>
>> This is looking amazing, do you have an idea of when/how you plan to
>> release this nice little piece of animation goodness? I know that the
>> animators I work with would kill for something like this!
>>
>>
>> Philip Melancon
>>
>> Lead Crowd TD
>>
>> Modus FX
>>
>> On 4/30/2012 10:30 AM, Xavier Lapointe wrote:
>> Whoa, this is awesome.
>>
>> I feel some animators out there are probably jubilating right now :)
>>
>> No virus found in this message.
>> Checked by AVG - www.avg.com<http://www.avg.com>
>> Version: 2012.0.1913 / Virus Database: 2411/4969 - Release Date: 04/30/12
>>
>>
>>
>> --
>> Ahmidou Lyazidi
>> Director | TD | CG artist
>> http://vimeo.com/ahmidou/videos
>>
>>
>>
>>
>> --
>> Ahmidou Lyazidi
>> Director | TD | CG artist
>> http://vimeo.com/ahmidou/videos
>>
>>
>>
>>
>> --
>> Ahmidou Lyazidi
>> Director | TD | CG artist
>> http://vimeo.com/ahmidou/videos
>>
>>
>>
>>
>> --
>> Ahmidou Lyazidi
>> Director | TD | CG artist
>> http://vimeo.com/ahmidou/videos
>>
>
>

Reply via email to