Exemple #1
0
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.
        }
    }
}