Пример #1
0
void GameObject::createB2Body (Prefab prefab) {
    // Create Box2D body for player.
    b2BodyDef bodyDef;		// Body definitions

    // Position == Sprite's origin
    bodyDef.position = b2Vec2 (this->getPosition ().x / GraphicsOptions::pixelPerMeter,
                               this->getPosition ().y / GraphicsOptions::pixelPerMeter);

    bodyDef.type = prefab.bodyType;		// Dynamic, static or kinetic.
    boxBody = boxWorld.CreateBody (&bodyDef);	// B2Body creation and assigment.
    boxBody->SetTransform (boxBody->GetPosition (), prefab.rotation);
    boxBody->SetAngularDamping (prefab.angularDamping);
    boxBody->SetLinearDamping (prefab.linearDamping);
    entityInfo.type = prefab.id;
    entityInfo.id = getGlobalID();
    boxBody->SetUserData (&entityInfo);

    // Fixture definition.
    b2FixtureDef fixtureDef;
    fixtureDef.density = prefab.density;
    fixtureDef.friction = prefab.friction;
        
    if (prefab.polyShape == nullptr)		// Chooses from available prefab's shape.
        fixtureDef.shape = (b2Shape*)prefab.circleShape;
    else
        fixtureDef.shape = (b2Shape*)prefab.polyShape;

    // Fixture creation
    boxBody->CreateFixture (&fixtureDef);
}
FB::VariantMap HPCCSystemsGraphViewControlAPI::getProperties(int item)
{
	assert(getPlugin());
	FB::VariantMap retVal;
	retVal["_internalID"] = item;
	retVal["_globalID"] = getGlobalID(item);

	hpcc::ciStringStringMap properties;
	getPlugin()->GetProperties(item, properties);
	for(hpcc::ciStringStringMap::const_iterator itr = properties.begin(); itr != properties.end(); ++itr)
		retVal[itr->first] = itr->second;

	return retVal;
}