• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Vega中拾取物體

    發表于:2007-05-25來源:作者:點擊數: 標簽:Vega拾取物體vgPicker其實
    其實就是vgPicker的用法了。。。 #include stdio.h #include vg.h #include pf.h #include assert.h vgPicker *picker = NULL ;vgObserver *obs = NULL ;vgChannel *chan = NULL ;vgEnv *env = NULL ;vgWindow *win = NULL ;vgGfx *gfx = NULL ;vgScene *scn
    其實就是vgPicker的用法了。。。

    #include <stdio.h>
    #include "vg.h"
    #include "pf.h"
    #include "assert.h"
    
    vgPicker    *picker = NULL;
    vgObserver  *obs    = NULL;
    vgChannel   *chan   = NULL;
    vgEnv       *env    = NULL;
    vgWindow    *win    = NULL;
    vgGfx       *gfx    = NULL;
    vgScene     *scn    = NULL;
    
    void setPointers();
    void createPicker();
    void checkPickEvent();
    
    void
    setPointers()
    {
        win = vgGetWin(0);
        assert(win);
    
        obs = vgGetObserv(0);
        assert(obs);
    
        chan = vgGetObservChan(obs, 0);
        assert(chan);
    
        gfx = vgGetObservGfx(obs);
        assert(gfx);
    
        env = vgGetEnv(0);
        assert(env);
    
        scn = vgGetScene(0);
        assert(scn);
    }
    
    
    /*
     * 創建vgPicker
     */
    void
    createPicker()
    {
        picker = vgNewPicker();
        assert(picker);
        vgName(picker, "picker");
    
        /* 
         * 指定vgPicker作用的場景和通道
         */
        vgPickerScene(picker, scn);
        vgPickerChannel(picker, chan);
    
        /* 
         * 設置vgPicker屬性,選擇物體紅色顯示
         */
        vgPickerHighLightColor(picker, 1.0f, 0.0f, 0.0f);
        vgProp(picker, VGPICK_TRANSFORM, VGPICK_TRANSLATE);
        vgProp(picker, VGPICK_TRANSCOORDS, VGPICK_OBJECT_AXES);
        vgProp(picker, VGPICK_HL_LEVEL, VGPICK_OBJECT);
        vgProp(picker, VGPICK_HL_STYLE, VGPICK_HL_BBOX_LINES);
        vgProp(picker, VGPICK_TERRAIN_CLAMP, VG_OFF);
        vgProp(picker, VGPICK_TRANSOVERRIDE, VG_OFF);
        vgProp(picker, VGPICK_DISPLAY_STDOUT, VG_OFF);
        vgProp(picker, VGPICK_MULTIPLE_PICKS, VG_OFF);
        vgProp(picker, VGPICK_AUTOTRANSFORM, VG_OFF);
        vgProp(picker, VGPICK_TRACKPLANE, VGPICK_TRACK_XY);
        vgProp(picker, VGPICK_AUTOTRACKPLANE, VG_OFF);
        vgProp(picker, VGPICK_DRAG_FACTOR, 1.0f);
        vgProp(picker, VGPICK_RENDER_ISECT, VG_OFF);
    
        /* 
         * 設置vgPicker的相交矢量 
         */
        vgPickerClampIsector(picker, 0x10000000);
        vgPickerIsector(picker, 0x10000000);
    
        /* 啟用vgPicker */
        vgProp(picker, VGCOMMON_ENABLED, VG_ON);
    }
    
    void
    checkPickEvent()
    {
        static vgMouse mouse;
        static vgPosition *pos = NULL;
    
        if (pos == NULL)
        {
            pos = vgNewPos();
            assert(pos);
        }
        vgGetMouse(&mouse);
    
        /* 鼠標左鍵:拾取或取消拾取物體 */
        if(mouse.lb && !mouse.mb && !mouse.rb)
        {
            vgGetPos(obs, pos);
            vgPerformPickProcessing(picker, pos);
        }
    }
    
    int
    main(int argc, char** argv)
    {
            int i;
    
        if (argc < 1)
        {
            printf("%s <config-file>\n", argv[0]);
            exit(-1);
        }
    
        vgInitSys();
        vgDefineSys(argv[1]);
        vgConfigSys();
    
        setPointers();
        createPicker();
    
        /*
         * 設置物體mask掩碼與vgPicker相一致,使得所有的物體都可以被選中 
         */
        for (i = 0; i < vgGetNumObj(); i++)
        {
            vgObject *obj = vgGetObj(i);
            unsigned int mask = vgGetObjClass(obj);
            mask |= vgGetPickerIsector(picker);
            vgObjClass(obj, mask);
        }
    
        while (1)
        {
            vgSyncFrame();
            vgFrame();
            checkPickEvent();
        }
    
        return 0;
    }
    

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>