Идентификация плоских объектов в 3ds max

Я перебираю все узлы в текущем слое.
Я хочу фильтровать только узлы, которые нарисованы как плоские объекты.
Есть ли способ в 3ds max sdk проверить, является ли фигура плоскостью?

ILayerManager* manager = GetCOREInterface13()->GetLayerManager();

ILayer* hLayer = manager->GetCurrentLayer();

ILayerProperties* props = static_cast<ILayerProperties*>(hLayer->GetInterface(LAYERPROPERTIES_INTERFACE));
Tab<INode*> nodes;
props->Nodes(nodes);
for (int i=0; i < nodes.Count(); ++i)
{
INode* node = nodes[i];
// check if the node is a plane
}

0

Решение

Определите classid поверх вашего проекта.
Тогда воспользуемся тем, чтобы проверить classid вашего узла.

#define plane_ClassID Class_ID(136257020, 2002153317)
if (node->ClassID() == plane_ClassID)
{
//we found it.
}

Вы можете получить classID вещей в maxscript, выбрав объект и тип:

$.classid

Это напечатает его ID, который может быть использован для всех объектов \ материалов \ помощников и так далее.

2

Другие решения