本文整理汇总了C++中ISceneNode::getName方法的典型用法代码示例。如果您正苦于以下问题:C++ ISceneNode::getName方法的具体用法?C++ ISceneNode::getName怎么用?C++ ISceneNode::getName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ISceneNode
的用法示例。
在下文中一共展示了ISceneNode::getName方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: exportElements
// ----------------------------------------------------------------------------
void Track::exportElements(std::ofstream& stream, bool obj)
{
ISceneManager* sm = Editor::getEditor()->getSceneManager();
ISceneNode* node;
stringc name;
int i = 1;
while ((node = sm->getSceneNodeFromId(MAGIC_NUMBER + i)))
{
name = node->getName();
vector3df pos, rot, sca;
if (node->isVisible() && name != "banana" && name != "item"
&& name != "small-nitro" && name != "big-nitro"
&& (name.equalsn("obj/", 4) == obj))
{
pos = node->getPosition();
rot = node->getRotation();
sca = node->getScale();
if (name.equalsn("obj/", 4))
{
stream << " <static-object model=\"" << Editor::toRelative(name).c_str();
copyObj(name);
ITexture* tex;
for (int j = 0; (tex = node->getMaterial(0).getTexture(j)); j++)
copyObj(stringc("obj/") + Editor::toRelative(tex->getName()));
} // export as static-object
else
{
stream << " <library name=\"" << Editor::getLib(node->getName()).c_str();
} // export as library
stream << "\" xyz=\"";
stream << pos.X << " " << pos.Y << " " << pos.Z << "\" hpr=\"";
stream << rot.X << " " << rot.Y << " " << rot.Z << "\" scale=\"";
stream << sca.X << " " << sca.Y << " " << sca.Z << "\"/>\n";
}
i++;
}
} // exportElements
示例2: build
// ----------------------------------------------------------------------------
void Track::build()
{
IrrlichtDevice* device = Editor::getEditor()->getDevice();
PHYSFS_setWriteDir(Editor::getEditor()->getTrackDir().c_str());
PHYSFS_mkdir(m_file_name.c_str());
path p = Editor::getEditor()->getTrackDir() + m_file_name;
CMeshBuffer<S3DVertex2TCoords>* mb = m_terrain->build(p);
SMesh smesh;
smesh.addMeshBuffer(mb);
for (u32 i = 1; i < m_roads.size(); i++)
{
IRoad* r = m_roads[i];
if (r->getSpline()->getPointNum()>1)
smesh.addMeshBuffer(((Road*)r)->getMeshBuffer());
}
B3DMeshWriter* writer = new B3DMeshWriter(device->getFileSystem());
IWriteFile *file;
file = device->getFileSystem()->createAndWriteFile((p + "/track.b3d").c_str());
writer->writeMesh(file, &smesh);
file->drop();
delete writer;
m_driveline->build(p);
std::ofstream mat;
mat.open((p + "/materials.xml").c_str());
mat << "<materials>\n";
mat << " <material name=\"splatt.png\" graphical-effect=\"splatting\"";
SMaterial m = m_terrain->getMaterial(0);
for (int i = 1; i < 5; i++)
{
mat << " splatting-texture-" << i << "=\"";
mat << Editor::toRelative(m.getTexture(i+1)->getName()).c_str();
mat << "\"";
}
mat << "/>\n";
if (m_gravity_road)
{
for (u32 i = 1; i < m_roads.size(); i++)
{
stringc tex = m_roads[i]->getTexName();
if (tex.size()>0)
{
mat << " <material name=\"";
mat << tex.c_str();
mat << "\" has-gravity=\"yes\" />\n";
}
} // roads
} // gravity road mode
mat <<"</materials>\n";
mat.close();
stringw track;
track += "<track name = \"";
track += m_track_name + L"\"\n";
track += " version = \"5\"\n";
track += " groups = \"made-by-STK-TE\"\n";
track += " designer = \"";
track += m_designer + "\"\n";
track += " music = \"";
track += m_music.c_str();
track += "\"\n";
track += " screenshot = \"screenshot.jpg\"\n";
track += " smooth-normals = \"true\"\n";
track += " reverse = \"Y\"\n>\n";
track += "</track>\n";
PHYSFS_uint64 len = 4 * track.size();
char* dst = new char[len];
#ifdef _WIN32
PHYSFS_utf8FromUcs2((PHYSFS_uint16*)track.c_str(),dst,len);
#else
PHYSFS_utf8FromUcs4((PHYSFS_uint32*)track.c_str(), dst, len);
#endif
FILE* f;
f = fopen((p + "/track.xml").c_str(), "wb");
fwrite(dst, sizeof(char), strlen(dst), f);
fclose(f);
delete[] dst;
std::ofstream scene;
scene.open((p + "/scene.xml").c_str());
scene << "<scene>\n";
scene << " <track model=\"track.b3d\" x=\"0\" y=\"0\" z=\"0\">\n";
exportElements(scene, true);
scene << " </track>\n";
exportElements(scene, false);
//.........这里部分代码省略.........
示例3: save
// ----------------------------------------------------------------------------
void Track::save()
{
FILE* pFile = 0;
path p = Editor::getEditor()->getMapsPath() + "/" + m_file_name.c_str();
pFile = fopen(p.c_str(), "wb");
if (!pFile)
{
MsgWndw::get()->showMsg(_("Save failed: file could not be created!\n"));
return;
}
// SIGN
u64 sign = TOP_SECRET_SIGNATURE_NUMBER;
fwrite(&sign, sizeof(u64), 1, pFile);
// TRACK NAME
u8 size = m_track_name.size() + 1;
fwrite(&size, sizeof(u8), 1, pFile);
fwrite(m_track_name.c_str(), sizeof(wchar_t), size, pFile);
// DESIGNER NAME
size = m_designer.size() + 1;
fwrite(&size, sizeof(u8), 1, pFile);
fwrite(m_designer.c_str(), sizeof(wchar_t), size, pFile);
// FILE NAME
size = m_file_name.size() + 1;
fwrite(&size, sizeof(u8), 1, pFile);
fwrite(m_file_name.c_str(), sizeof(c8), size, pFile);
// MUSIC
size = m_music.size() + 1;
fwrite(&size, sizeof(u8), 1, pFile);
fwrite(m_music.c_str(), sizeof(c8), size, pFile);
// TERRAIN
m_terrain->save(pFile);
// SKY
Viewport::get()->getSky()->save(pFile);
// GRAVITY ROAD FLAG
fwrite(&m_gravity_road, sizeof(bool), 1, pFile);
// ROADS
size = m_roads.size();
fwrite(&size, sizeof(u8), 1, pFile);
IRoad* r;
for (u8 i = 0; i < size; i++)
{
r = m_roads[i];
r->save(pFile);
}
//CHECKLINES
Viewport::get()->saveCheckLines(pFile);
// OBJECTS
ISceneManager* sm = Editor::getEditor()->getSceneManager();
ISceneNode* node;
u32 num = Viewport::getLastEntityID() - MAGIC_NUMBER;
u32 vnum = 0;
for (u32 i = 0; i < num; i++)
{
node = sm->getSceneNodeFromId(MAGIC_NUMBER + i + 1);
if (node && node->isVisible()) vnum++;
}
fwrite(&vnum, sizeof(u32), 1, pFile);
for (u32 i = 0; i < num; i++)
{
node = sm->getSceneNodeFromId(MAGIC_NUMBER + i + 1);
assert(node);
if (node->isVisible())
{
fwrite(&node->getPosition(), sizeof(vector3df), 1, pFile);
fwrite(&node->getRotation(), sizeof(vector3df), 1, pFile);
fwrite(&node->getScale(), sizeof(vector3df), 1, pFile);
u8 size = strlen(node->getName()) + 1;
fwrite(&size, sizeof(u8), 1, pFile);
fwrite(node->getName(), sizeof(c8), size, pFile);
}
}
fclose(pFile);
Editor::getEditor()->addToRecentlyOpenedList(m_file_name);
MsgWndw::get()->showMsg(_("Track saved!\n"));
} // save