예제 #1
0
DragonBonesData * JSONDataParser::parseDragonBonesData(const char* rawData, float scale)
{
    if (rawData)
    {
        rapidjson::Document document;
        document.Parse(rawData);

        std::string version = _getString(document, VERSION, "");
        this->_isParentCooriinate = version == DATA_VERSION_2_3 || version == DATA_VERSION_3_0;
        this->_armatureScale = scale;

        if (version == DATA_VERSION || version == DATA_VERSION_4_0 || this->_isParentCooriinate)
        {
            const auto data = BaseObject::borrowObject<DragonBonesData>();
            data->name = _getString(document, NAME, "");
            data->frameRate = _getNumber(document, FRAME_RATE, (unsigned)24);

            if (document.HasMember(ARMATURE))
            {
                this->_data = data;

                for (const auto& armatureObject : document[ARMATURE].GetArray())
                {
                    data->addArmature(_parseArmature(armatureObject));
                }

                this->_data = nullptr;
            }

            return data;
        }
        else
        {
            DRAGONBONES_ASSERT(false, "Nonsupport data version.");
        }
    }
    else
    {
        DRAGONBONES_ASSERT(false, "Argument error.");
    }

    return nullptr;
}
예제 #2
0
파일: item_node.cpp 프로젝트: 4DA/lumina-ng
/*!
slot for opening the contextmenu 
*/
void Item_node::contextmenu(const QPoint& point){

	context = this;

	if(!menuinit){	
		DQMENU(Item_node, menu);

menu->addAction( QIcon(":/images/xpm/armature.xpm"), QString("Add Armature") , this, SLOT( addArmature()));

		menu->addSeparator();
		menu->addAction( QIcon( ":/images/xpm/importer.xpm"), QString("Import Model"), this, SLOT(importModel()) );
		menu->addSeparator();
		SCRIPT2MENU(menu);
		menu->addSeparator();
		menu->addAction( QIcon( ":/images/xpm/del.xpm"), QString("Delete") , this, SLOT( deleteLater()));


		menuinit = true;
		}

	menu->popup( point );
	}