2004擭11寧25擔

MirrorWeight

MirrorTool偱嶌偭偨嵍塃懳徧偺僆僽僕僃僋僩偺僂僄僀僩儅僢僾傪嵍塃偵暘偗傞僾儔僌僀儞偱偡丅

僟僂儞儘乕僪
MirrorWeight[Intel]
SourceCode

僐僺乕曽岦(X幉)

抲姺埵抲
愙摢帿偺椺丂Left_XXX, L_XXX
愙旜帿偺椺丂XXX_Left, XXX_L

尦儅僢僾丄懳徾儅僢僾
懳徾儅僢僾柤徧(壓偺儕僗僩偺dist)傪嶌傞偲偒偵巊偆丄僉乕暥帤楍
尦儅僢僾暥帤楍傪娷傓僂僄僀僩儅僢僾柤徧(src)傪傕偲偵懳徾儅僢僾柤徧(dist)傪寛掕偡傞

峏怴
壓偺儕僗僩傪峏怴偡傞

 

僂僄僀僩儅僢僾傪儈儔乕僐僺乕偡傞僾儔僌僀儞3

傾僋僥傿儀乕僔儑儞娭悢偺僐乕僪
LW偑僾儔僌僀儞傪幚峴偡傞偲丄偙偺娭悢偑屇偽傟傞
張棟偺棳傟偼丄
僨乕僞偺弶婜壔
愝掕僼傽僀儖偐傜撉傒崬傒
僷僱儖偵搉偡僨乕僞傪廂廤
僷僱儖傪奐偔
愝掕僼傽僀儖偵曐懚
VMAP偺廋惓


//傾僋僥傿儀乕僔儑儞娭悢
XCALL_(int)Activate(long version, GlobalFunc *global, LWModCommand *local, void *serverData)
{
  LWMessageFuncs *msgf = (LWMessageFuncs*)global( LWMESSAGEFUNCS_GLOBAL, GFUSE_TRANSIENT );
  MyData   data;
  if( LWMODCOMMAND_VERSION != version )
    return AFUNC_BADVERSION;
  if( !msgf )
    return AFUNC_BADGLOBAL;
  data.global = global;
 //愝掕撉傒崬傒
  readConfig(&data);
 //慡僂僄僀僩儅僢僾儕僗僩嶌惉
  listupAllWMap(&data);
  if( 0 == data.allwlist.size() ){
    msgf->error("僂僃僀僩儅僢僾偑偁傝傑偣傫丅", NULL);
    return AFUNC_OK;
  }
 //僂僄僀僩儅僢僾儕僗僩嶌惉
  listupEditWMap(&data);
 //僷僱儖昞帵
  if( 0 == Panel(&data, global) ){
    return AFUNC_OK;
  }
 //愝掕曐懚
  writeConfig(&data);
  data.edit = local->editBegin(0, 0, OPSEL_GLOBAL);
 //億僀儞僩僗僉儍儞
  data.edit->pointScan(data.edit->state, PointScanFunc, &data, OPLYR_PRIMARY);
  data.edit->done(data.edit->state, EDERR_NONE, 0);
  return AFUNC_OK;
}

 

億僀儞僩僗僉儍儞娭悢偺僐乕僪
偡傋偰偺億僀儞僩偵懳偟偰屇偽傟傞
尦偵側傞僂僄僀僩儅僢僾偺抣傪庢摼
惉岟偟偨傜丄X嵗昗偵operation偺抣(1or-1)傪偐偗傞
0傛傝戝偒偗傟偽丄懳徾僂僄僀僩儅僢僾偵抣傪愝掕丄尦儅僢僾傪嶍彍
0側傜偽丄懳徾僂僄僀僩儅僢僾偵抣傪愝掕



//億僀儞僩僗僉儍儞娭悢
EDError PointScanFunc(void *scanData, const EDPointInfo *info)
{
  MyData  *data = (MyData*)scanData;
  MeshEditOp *edit = data->edit;
   int   result;
  float  val;
  for(int i=0; i<data->wlist.size(); i++){
    data->wlist[i].mapID = (LWID)edit->pointVSet(edit->state, (void*)data->wlist[i].mapID, LWVMAP_WGHT, data->wlist[i].src.c_str());
    result = edit->pointVGet(edit->state, info->pnt, &val);
    if( 0 != result ){
      if( 0.0 < (info->position[0] * data->operation) ){
        edit->pntVMap(edit->state, info->pnt, LWVMAP_WGHT, data->wlist[i].src.c_str(), 1, NULL);
        edit->pntVMap(edit->state, info->pnt, LWVMAP_WGHT, data->wlist[i].dist.c_str(), 1, NULL);
        edit->pntVMap(edit->state, info->pnt, LWVMAP_WGHT, data->wlist[i].dist.c_str(), 1, &val);
      }else if( 0.0 == info->position[0] ){
        edit->pntVMap(edit->state, info->pnt, LWVMAP_WGHT, data->wlist[i].dist.c_str(), 1, &val);
      }
    }
  }
  return EDERR_NONE;
}

posted by toka at 13:41| Comment(0) | TrackBack(0) | LW僾儔僌僀儞奐敪 | 偙偺僽儘僌偺撉幰偵側傞 | 峏怴忣曬傪僠僃僢僋偡傞

峀崘


偙偺峀崘偼60擔埲忋峏怴偑側偄僽儘僌偵昞帵偑偝傟偰偍傝傑偡丅

埲壓偺偄偢傟偐偺曽朄偱旕昞帵偵偡傞偙偲偑壜擻偱偡丅

丒婰帠偺搳峞丄曇廤傪偍偙側偆
丒儅僀僽儘僌偺亂愝掕亃 亜丂亂峀崘愝掕亃 傛傝丄乽60擔娫峏怴偑柍偄応崌乿 偺 乽峀崘傪昞帵偟側偄乿偵僠僃僢僋傪擖傟偰曐懚偡傞丅


×

偙偺峀崘偼90擔埲忋怴偟偄婰帠偺搳峞偑側偄僽儘僌偵昞帵偝傟偰偍傝傑偡丅