1
0

fix: fix BMap export function implementation bug

This commit is contained in:
2026-02-07 22:23:17 +08:00
parent 705af2aa3f
commit b9d42c73f7
4 changed files with 26 additions and 19 deletions

View File

@@ -1107,7 +1107,7 @@ bool BMCamera_SetFrontPlane(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCm
bool BMCamera_GetBackPlane(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::CKFLOAT, out_val)) {
auto obj = CheckCKCamera(bmfile, objid);
if (obj == nullptr) return false;
BMPARAM_OUT_ASSIGN(out_val, obj->GetFrontPlane());
BMPARAM_OUT_ASSIGN(out_val, obj->GetBackPlane());
return true;
}
bool BMCamera_SetBackPlane(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::CKFLOAT, val)) {
@@ -1119,7 +1119,7 @@ bool BMCamera_SetBackPlane(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo
bool BMCamera_GetFov(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::CKFLOAT, out_val)) {
auto obj = CheckCKCamera(bmfile, objid);
if (obj == nullptr) return false;
BMPARAM_OUT_ASSIGN(out_val, obj->GetFrontPlane());
BMPARAM_OUT_ASSIGN(out_val, obj->GetFov());
return true;
}
bool BMCamera_SetFov(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::CKFLOAT, val)) {

View File

@@ -178,13 +178,15 @@ namespace BMap {
// BMFile only provide limited type visiting, we must make sure it provided ID also is existed in out stored list.
// so we check its type here. if type is not matched, we reset it to nullptr.
if (obj != nullptr) {
using LibCmo::CK2::CK_CLASSID;
switch (obj->GetClassID()) {
case LibCmo::CK2::CK_CLASSID::CKCID_GROUP:
case LibCmo::CK2::CK_CLASSID::CKCID_3DOBJECT:
case LibCmo::CK2::CK_CLASSID::CKCID_MESH:
case LibCmo::CK2::CK_CLASSID::CKCID_MATERIAL:
case LibCmo::CK2::CK_CLASSID::CKCID_TEXTURE:
case LibCmo::CK2::CK_CLASSID::CKCID_TARGETLIGHT:
case CK_CLASSID::CKCID_GROUP:
case CK_CLASSID::CKCID_3DOBJECT:
case CK_CLASSID::CKCID_MESH:
case CK_CLASSID::CKCID_MATERIAL:
case CK_CLASSID::CKCID_TEXTURE:
case CK_CLASSID::CKCID_TARGETLIGHT:
case CK_CLASSID::CKCID_TARGETCAMERA:
break; // okey. do nothing
default:
// this object should not be exposed to outside, reset it to nullptr