示例#1
0
void System::registerEntity( Entity* anEntity )
{
    switch ( anEntity->getEntityType() )
    {
    case EntityType::VARIABLE:
        registerEntity( static_cast< Variable* >( anEntity ) );
        break;
    case EntityType::PROCESS:
        registerEntity( static_cast< Process* >( anEntity ) );
        break;
    case EntityType::SYSTEM:
        registerEntity( static_cast< System* >( anEntity ) );
        break;
    default:
        THROW_EXCEPTION_INSIDE( InvalidEntityType, "invalid EntityType specified [" + anEntity->getEntityType().asString() + "]" );
    }
}
示例#2
0
/*
Constructor, modify this to change what happens
*/
EntityScene::EntityScene(Visualisation &visualisation)
    : Scene(visualisation)
    , deerModel(new Entity(Stock::Models::DEER, 10.0f, Stock::Shaders::TEXTURE))
    , colorModel(new Entity(Stock::Models::ROTHWELL, 45.0f, Stock::Shaders::COLOR))
    , tick(0.0f)
    , polarity(-1)
    , instancedSphere(new Entity(Stock::Models::ICOSPHERE, 1.0f, Stock::Shaders::INSTANCED))
#ifdef __CUDACC__
    , cuTexBuf(mallocGLInteropTextureBuffer<float>(100, 3))
    , texBuf("_texBuf", cuTexBuf, true)
#else
    , texBuf("_texBuf", 100, 3)
#endif
{
    registerEntity(deerModel);
    registerEntity(colorModel);
    registerEntity(instancedSphere);
    this->visualisation.setSkybox(true);
    this->visualisation.setWindowTitle("Entity Render Sample");
    this->visualisation.setRenderAxis(true); 
    srand((unsigned int)time(0));
    this->colorModel->setRotation(glm::vec4(1.0, 0.0, 0.0, -90));
    this->colorModel->setCullFace(false);
    this->deerModel->flipVertexOrder();
#ifdef __CUDACC__
    cuInit();
#else
    float *tempData = (float*)malloc(sizeof(float) * 3 * 100);
    for (int i = 0; i < 100;i++)
    {
        tempData[(i * 3) + 0] = 100 * (float)sin(i*3.6);
        tempData[(i * 3) + 1] = -50.0f;
        tempData[(i * 3) + 2] = 100 * (float)cos(i*3.6);
    }
    texBuf.setData(tempData);
    free(tempData);
#endif
    texBuf.bindToShader(this->instancedSphere->getShaders().get());
    this->instancedSphere->setColor(glm::vec3(rand() / (float)RAND_MAX, rand() / (float)RAND_MAX, rand() / (float)RAND_MAX));
}
示例#3
0
文件: World.cpp 项目: pjdemaret/YAB
void World::init()
{
    float xPos = kStatsTextXpos, yPos = kStatsTextYpos;
    _framerate = createText(kFramerateName, xPos, yPos, "", kStatsTextSize, sf::Color::Yellow);
    KeyboardMap aKeyboardPressedMapping;
    KeyboardMap aKeyboardReleasedMapping = { { sf::Keyboard::F3, std::make_shared<EnableStatsCommand>(*this, xPos, yPos)} };
    _framerate->addComponent(std::make_shared<InputComponent>(aKeyboardPressedMapping, aKeyboardReleasedMapping));
#ifndef NDEBUG
    _framerate->removeComponent<PositionComponent>();
#endif // NDEBUG
    registerEntity(_framerate);
	createMenus();
}
示例#4
0
Game::Game() : 
	escapelistener(*this)
{
	// Event Handler
	eventhandler = new EventHandler();
	eventhandler->bind(this);
	// Pathfinder
	registerEntity(&pathfinder);
	// Viewport
	registerEntity(&viewport);

	// Default Actors, remove later
	std::cerr << "Generating" << std::endl;
	const int num_actors = 50;

	Actor * a;
	Actor * actors = new Actor[num_actors];

	for (int i = 0; i < num_actors; i++) {
		if (!(i % 100)) std::cout << i << std::endl;
		int r, g, b;

		r = (67 * i) % 255;
		g = (73 * i) % 255;
		b = (83 * i) % 255;

		a = &actors[i];
		//a->setPosition(sf::Vector2f(r, g));
		a->setColor(sf::Color(r, g, b));

		registerEntity(a);
	}

	// Default Obstacle, remove later
	StaticSquare* sq2 = new StaticSquare(sf::Vector2f(400, 400), sf::Vector2f(600, 600));
	registerEntity(sq2);
}
示例#5
0
文件: World.cpp 项目: pjdemaret/YAB
void World::createLevel(const std::string& iLevelFile)
{
    // TODO have a level loader separated
	std::ifstream file(RESOURCES_FOLDER + iLevelFile);
	std::string line;
	int lineNb = 0;
	while (std::getline(file, line))
	{
		int columnNb = 0;
		_levelGrid.resize(lineNb + 1);
		_levelGrid[lineNb].resize(line.size());
		for (char character : line) 
		{
			// create grass
			registerEntity(createGrassTile(toRealCoordinates(sf::Vector2i(lineNb, columnNb))));
			switch (character)
			{
			case 'S':
				registerEntity(createSoftBrick(toRealCoordinates(sf::Vector2i(lineNb, columnNb))));
				break;
			case 'H':
				registerEntity(createSolidBrick(toRealCoordinates(sf::Vector2i(lineNb, columnNb))));
				break;
			case 'E':
				break;
			default:
				// TODO error
				break;
			}
			++columnNb;
		}
		++lineNb;
	}

    // create player
    registerEntity(createPlayer("Player 1", toRealCoordinates(sf::Vector2i(1, 1))));
}
示例#6
0
void HeapLogger::registerEntity(CoreThread *coreThread){
#ifdef HEAPLOGGER_ENABLED
	registerEntity(coreThread->name);
#endif
}
示例#7
0
void HeapLogger::registerEntity(CoreObject *coreObject){
#ifdef HEAPLOGGER_ENABLED
	registerEntity(coreObject->name);
#endif
}