我要发帖 回复

中级会员

62

主题

102

积分

0

专家分

:

私信
发表时间 : 2007-10-30 17:07:55 | 浏览 : 1616    评论 : 7
这是我的代码:

void CMyMFCVegaView::postConfig( void )
{
        createPicker();
}


void CMyMFCVegaView::postFrame( void )
{
    if(bPicker)
    doPick();

}

void CMyMFCVegaView::createPicker()
{
    picker = vgNewPicker();
   
        ASSERT( picker );
   
        vgName( picker, "jzx_picker" );
   
        vgPickerScene(   picker,  scene );
   
        vgPickerChannel( picker,  chan  );
   
        vgPickerHighLightColor( picker, 1.0f, 1.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_HL_LINEWIDTH,    2.0f              );
   
        vgProp( picker, VGPICK_CLAMP,          VGPICK_CLAMP_Z     );
   
        vgProp( picker, VGPICK_TERRAIN_CLAMP,  VG_OFF             );
   
        vgProp( picker, VGPICK_TRANSOVERRIDE,  VG_ON             );
   
        vgProp( picker, VGPICK_DISPLAY_STDOUT, VG_OFF             );
   
        vgProp( picker, VGPICK_MULTIPLE_PICKS, VG_ON             );
   
        vgProp( picker, VGPICK_AUTOTRANSFORM,  VG_OFF             );
   
        vgProp( picker, VGPICK_TRACKPLANE,     VGPICK_TRACK_XY    );
   
        vgProp( picker, VGPICK_AUTOTRACKPLANE, VG_OFF             );
   
        vgProp( picker, VGPICK_DRAG_FACTOR,    0.0f               );
   
        vgProp( picker, VGPICK_RENDER_ISECT,   VG_OFF          );
   
        vgPickerClampIsector( picker, 0xffffffff );
   
        vgPickerIsector(      picker, 0xffffffff );
   
        vgProp( picker, VGCOMMON_ENABLED,  VG_ON );
   
        MessageBox("创建 picker");
}

vgObject* CMyMFCVegaView::doPick()
{
    vgObject   *obj=NULL;
    vgPosition *pos = NULL;
    pos = vgNewPos();

    if( pos != NULL )
        {
   
                vgGetPos( obs, pos );
               
                if( vgPerformPickProcessing( picker, pos) )
                {
                        obj=(vgObject*) vgGetPickerPickedObject( picker );
                              
                      vgDelete(pos);
                        
                        return obj;
                }
        }
     
        return NULL;
   

}

void CMyMFCVegaView::OnLButtonDown(UINT nFlags, CPoint point)
{
    bPicker=TRUE;
    CView::OnLButtonDown(nFlags, point);
}

最近VR访客

obuil 评论于2007-10-30 17:46:41
if(bPicker)
    doPick();

bPicker=TRUE; 后 如何关闭doPick
xulide 评论于2007-10-30 17:57:41
没有注意过,这是本版块中的一个精华帖 ,我试了一下,发现不行
xulide 评论于2007-10-30 22:23:20
再顶一下
jingziw 评论于2008-6-5 21:34:36
picker的掩码跟要拾取的东西掩码应该相同
aspire 评论于2011-12-5 17:06:06
LZ  在上面的程序中bPicker是怎么来的呢  我也做了这个列子可以没有 反映啊  LZ 要是有程序的话 给我发一份把  谢谢拉  371635322@qq.com
aspire 评论于2011-12-5 19:36:02
楼主啊 告诉我一下 bPicker 是在什么地方定义的好吗
aspire 评论于2011-12-5 19:36:31
楼主啊 告诉我一下 bPicker 是在什么地方定义的好吗

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-9-22 07:43 PM

返回顶部