gpt4 book ai didi

c++ - 获取实例化 GeomObject 的网格

转载 作者:行者123 更新时间:2023-11-28 06:31:33 25 4
gpt4 key购买 nike

如何从实例化的 GeomObject 获取网格?

在 maxscript 中我这样做:

gsphere = createInstance geosphere radius:1 segs:4
gsphere_mesh = gsphere.mesh

这是翻译成 C++ 的 maxscript 的第一行:

GeomObject *GSphere = (GeomObject*)ip->CreateInstance(GEOMOBJECT_CLASS_ID, GSPHERE_CLASS_ID);
GSphere->GetParamBlockByID(2)->SetValue(0, 0, 1);
GSphere->GetParamBlockByID(2)->SetValue(1, 0, 4);

现在,我需要获取网格,但我不知道如何获取。没有“GetMesh()”或“GetTriMesh()”函数。

感谢您的帮助。

最佳答案

要访问节点的网格,您可以使用如下内容:

for (int t = 0; maxscene->NumChildren() > t; t++)
{
INode* currNode = maxscene->GetChildNode(t);
Object* obj;
ObjectState os = currNode->EvalWorldState(GetCOREInterface()->GetTime());
obj = os.obj;

switch (os.obj->SuperClassID())
{
case GEOMOBJECT_CLASS_ID:
TriObject *p_triobj = NULL;
BOOL fConvertedToTriObject = obj->CanConvertToType(triObjectClassID) && (p_triobj = (TriObject*)obj->ConvertToType(0, triObjectClassID)) != NULL;
if (!fConvertedToTriObject)
{
mprintf(L"Error: Could not triangulate object.);
return false;
}
Mesh *p_trimesh = &p_triobj->mesh;
int faceCount = p_trimesh->getNumFaces();
//work with the mesh here.
}
}

关于c++ - 获取实例化 GeomObject 的网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27441733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com