3D技術研究所Wiki > 公開物 > JFBXSDK > JFBXSDKとFBXSDKの相違点

ここはJFBXSDKとFBXSDKの相違点をまとめておくところです。

Javaの慣習(コーディングスタイル)によるもの

クラスメソッド

FBXSDKはクラスメソッドがアッパーキャメルケースで記述されていますが、 JFBXSDKはJavaの慣習に倣いローワーキャメルケースで記述します。

FBXSDK(C++)

1
2
FbxScene *scene = ...;
FbxNode *node = scene->GetRootNode();

JFBXSDK(Java)

1
2
FbxScene scene = ...;
FbxNode node = scene.getRootNode();

定数(enum)

定数はJavaの慣習に倣い全て大文字、区切りを_(アンダーバー)で記述します。 enumはintへ置き換えます。

FBXSDK(C++)

1
2
3
4
5
6
7
FbxString GetAttributeTypeName(FbxNodeAttribute::EType type) { 
    switch(type) { 
    case FbxNodeAttribute::eNull: return "null"; 
    case FbxNodeAttribute::eTrimNurbsSurface: return "trim nurbs surface";
    default: return "unidentified";
    }
}

JFBXSDK(Java)

1
2
3
4
5
6
7
String getAttributeTypeName(int type) { 
    switch(type) { 
    case FbxNodeAttribute.NULL: return "null"; 
    case FbxNodeAttribute.TRIM_NURBS_SURFACE: return "trim nurbs surface";
    default: return "unidentified";
    }
}

言語仕様によるもの

スコープ演算子(::)

FBXSDK(C++)

1
FbxManager *manager = FbxManager::Create();

JFBXSDK(Java)

1
FbxManager manager = FbxManager.create();

ポインタ演算子(->)

FBXSDK(C++)

1
2
FbxScene *scene = ...;
FbxNode *node = scene->GetRootNode();

JFBXSDK(Java)

1
2
FbxScene scene = ...;
FbxNode node = scene.getRootNode();

typedef

FBXSDK(C++)

1
typedef FbxLayerElement FbxGeometryElement;

JFBXSDK(Java)

1
public class FbxGeometryElement extends FbxLayerElement {}

FbxImporter::Importメソッド

FbxImporterのImportメソッドをローワーキャメルケースにするとimportとなり、 Javaキーワードのimportと被るためimportsにします。

FBXSDK(C++)

1
2
3
FbxImporter *importer = ...;
FbxScene *scene = ...;
importer->Import(scene);

JFBXSDK(Java)

1
2
3
FbxImporter importer = ...;
FbxScene scene = ...;
importer.imports(scene);

その他

FbxDouble系について

FbxDouble2/FbxDouble3/FbxDouble4/FbxDouble44はdoubleの配列へ置き換えられます。
※変更予定あり
5/27 各々のオブジェクトを返すようにしました

FBXSDK(C++)

1
2
FbxNode *node = ...;
FbxDouble3 translation = node->LclTranslation.Get();

JFBXSDK(Java)

1
2
FbxNode node = ...;
FbxDouble3 translation = node.getLocalTranslation();

ダウンキャスト

FBXSDK(C++)

1
2
3
4
5
FbxSurfaceMaterial *material = ...;

if(material->GetClassId().Is(FbxSurfacePhong::ClassId)) {
    FbxSurfacePhong *phong = (FbxSurfacePhong *)material;
}

JFBXSDK(Java)

1
2
3
4
5
FbxSurfaceMaterial material = ...;

if("Phong".equals(material.getShadingModel())) {
    FbxSurfacePhong phong = material.as(FbxSurfacePhong.class);
}

関連ページ


スポンサードリンク

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS