2008年8月20日水曜日

viewer - ソースとか

BDxView080820.zip


早速ですがviewerをちょっとだけ更新しました。

更新内容
・デフォルトのカメラのクリッピングをstart=10, end=200にした。
・shift-左ドラッグ(またはセンタードラッグ)の改善
・Lampが余りにひどかったので、とりあえず正面向くようにした
・AAの設定追加(注意:現在の開発環境のmacminiがAAを使えないため、正常に設定できるかどうかのテストすら出来てません。)
・シェーダーのon/off追加。


--------

石油価格上昇に伴い、電気代節約のためサーバーの電源落としてます。
というのは冗談で、mac miniにubuntu serverが入っているんですが、実家環境で設定するのがめんどくさいので放置しています。

というわけでソースはzipで…。

コンバーターのソース(Java1.4以上 + NetBeans6)
xmlconverter2src080820.zip


エクスポーター(Blender組み込み)のソース。(C++、xersesc)
writeXML080820.zip


エクスポーターのほうの、その他いじったところPythonから使えるようにして、UIはPythonで作ったほうが良さそうですね・・・


・ヘッダファイルに、C++でも使えるように、以下の修正を加える



///-------修正するヘッダファイル------------
///BKE_blenkernel → BKE_scene.h
///BKE_blenkernel → BKE_ipo.h
///BL_src → BDR_drawaction.h
///BLO_loader → readfile.h
///--------------------------------------------------



#ifndef ***_H

#define ***_H



#ifdef __cplusplus

extern "C" {

#endif




//中身


#ifdef __cplusplus

}

#endif




#endif




・GUIにメニューを加えるため、以下のような修正を加える


///DNA_makedna → DNA_userdef_types.hの中

// 前略

#define USER_DONT_DOSCRIPTLINKS    (1 << 22)

// XML export flags
#define USER_XMLDUMP            (1 << 23)

#define USER_XMLONLYACT            (1 << 24)



///BL_src → header_info.c → do_info_filemenu(void *arg, int event)の中



    case 35: /* compress toggle */

        U.flag ^= (USER_FILECOMPRESS);

        break;

    case 36: /* XML dump toggle */

        U.dupflag ^= (USER_XMLDUMP);

        break;

    case 37: /* XML with only action toggle */

        U.dupflag ^= (USER_XMLONLYACT);

        break;




///BL_src → header_info.c → info_filemenu(void *arg_unused)の中



    if(U.flag & USER_FILECOMPRESS) {

        uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Compress File",     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 35, "Enable file compression");

    } else {

        uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Compress File",     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 35, "Enable file compression");

    }



    if(U.dupflag & USER_XMLDUMP) {

        uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Enable Dump XML",     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 36, "Export .xml after .blend saving");

    } else {

        uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Enable Dump XML",     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 36, "Export .xml after .blend saving");

    }



    if(U.dupflag & USER_XMLONLYACT) {

        uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "XML With Only Act",     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 37, "Export .xml after .blend saving");

    } else {

        uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "XML With Only Act",     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 37, "Export .xml after .blend saving");

    }




///BL_src → usiblender.c → BIF_write_file(char *target)の中



        writeBlog();

    } else {

        error("failed to write blend file: %s", err);

    }


    /* xml writting */



    if (U.dupflag & USER_XMLDUMP) {

        int writeflag = 0;

        if (U.dupflag & USER_XMLONLYACT) writeflag = USER_XMLONLYACT;



        if (BLO_write_XML(di, writeflag, &err)) {

        } else {

            error("%s", err);

        }

    }



0 件のコメント: