我正在开发一个自定义引擎,其中有 2 个不同的变换类,一个用于 2D,一个用于 3D。我正在使用#define 来选择要使用的转换类,并在逻辑应该相同的地方使用该定义而不是类名。我现在正处于一个我希望他们有不同逻辑的地方,并想做一个比较来分支。我需要做什么才能使其正常工作?
class Transform2D;
class Transform3D;
#define TransformClass Transform2D
if(TransformClass == Transform2D)
{
//like this
}
else
{
//like that
}
类型 id 为此工作。你怎么处理?
if ( typeid(TransformClass) == typeid(Transform2D) )
{
ittransform->SetRotation(0);
ittransform->SetScale(Vector2D(defaultScale, defaultScale));
}
else
{
ittransform->SetRotation(Vector3f());
ittransform->SetScale(Vector3f(defaultScale, defaultScale, defaultScale));
}