void DumpThread::checkIncludes(const Location &location, const CXCursor &cursor) { if (clang_getCursorKind(cursor) == CXCursor_InclusionDirective) { handleInclude(location, cursor); } else { const CXCursor ref = clang_getCursorReferenced(cursor); if (!clang_equalCursors(cursor, nullCursor) && !clang_equalCursors(cursor, ref)) { handleReference(location, ref); } } }
void SceneSerializer::handleNode(const Value& entries, SceneNode* node) { handleNodeProperties(entries, node); // Then recursively handle scene objects and scenen nodes. for (Value::ConstMemberIterator entryIter = entries.MemberBegin(); entryIter != entries.MemberEnd(); ++entryIter) { const Value& entryKey = entryIter->name; const Value& entryValue = entryIter->value; assert(entryKey.IsString()); string key = entryKey.GetString(); if (key == kEntityKey) { handleEntity(entryValue, createChildSceneNode(node, entryValue)); } else if (key == kEntityGroupKey) { handleNode(entryValue, createChildSceneNode(node, entryValue)); } else if (key == kIncludeKey) { assert(entryValue.IsString()); handleInclude(entryValue.GetString(), kDefaultSceneNodeClass, createChildSceneNodeWithNameSuffix(node, "")); } else if (key == kCameraKey) { if (entryValue.IsObject()) { handleCamera(entryValue, createChildSceneNode(node, entryValue)); } else if (entryValue.IsString()) { // This is not a camera definition, but a referance to a camera. string cameraName = entryValue.GetString(); node->addVisibleCamera(cameraName); Camera* camera = mSceneMgr->getCamera(cameraName); assert(camera != NULL && "Error: camera is null. " "Please define camera before using to it."); getDefaultViewport()->addCamera(camera); } } else { // Assume it is a simple node property and it has been handled. } } }