コード例 #1
0
void SpawnPointTool::onDrawPreview(sf::RenderTarget& target, sf::RenderStates states, sf::Vector2i cursorPosition)
{
	// Create spawn point marker object.
	Object spawnPointPreview(Object::Type::Internal);
	spawnPointPreview.setPosition(cursorPosition);
	spawnPointPreview.setPropertyInt(Object::Property::Type, ObjectAppearanceManager::InternalCharacter);
	spawnPointPreview.setPropertyInt(Object::Property::Subtype, -1);

	// Get marker vertices.
	std::vector<sf::Vertex> vertices = getEditorData().objectAppearance->getObjectVertices(spawnPointPreview);

	for (sf::Vertex & vertex : vertices)
	{
		// Make preview translucent.
		vertex.color.a *= 0.75f;
	}

	// Calculate preview rectangle.
	sf::FloatRect previewRect((cursorPosition.x - 0.5f) * TileAppearanceManager::TILE_SIZE,
		(cursorPosition.y - 0.5f) * TileAppearanceManager::TILE_SIZE, TileAppearanceManager::TILE_SIZE,
		TileAppearanceManager::TILE_SIZE);

	previewRectangle.setPosition(previewRect.left, previewRect.top);
	previewRectangle.setSize(sf::Vector2f(previewRect.width, previewRect.height));

	// Render preview rectangle.
	states.texture = nullptr;
	target.draw(previewRectangle, states);

	// Render marker preview.
	states.texture = getEditorData().objectAppearance->getTexture();
	target.draw(vertices.data(), vertices.size(), sf::Triangles, states);
}
コード例 #2
0
void SpawnPointTool::onMousePress(sf::Vector2i position, MouseButton button)
{
	if (getEditorData().level)
	{
		getEditorData().level->setPlayerSpawnPoint(position);
	}
}
コード例 #3
0
void SpawnPointTool::onMouseDrag(sf::Vector2i positionFrom, sf::Vector2i positionTo)
{
	if (getEditorData().level)
	{
		getEditorData().level->setPlayerSpawnPoint(positionTo);
	}
}
コード例 #4
0
ファイル: parameter.cpp プロジェクト: hitsjt/StanfordPCL
void
pcl::modeler::Parameter::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index)
{
  getEditorData(editor);
  std::pair<QVariant, int> model_data = toModelData();
  model->setData(index, model_data.first, model_data.second);
}
コード例 #5
0
ファイル: TileTool.cpp プロジェクト: Marukyu/NecroEdit
void TileTool::onInit()
{
	std::vector<Tile> tiles;
	std::vector<Tile::ID> tileIDs = getEditorData().tileAppearance->getTileIDList();

	for (Tile::ID tileID : tileIDs)
	{
		Tile tile;
		tile.id = tileID;

		const std::string & tileName = getEditorData().tileAppearance->getTileName(tile);

		if (!tile.exists() || tileName.empty() || tileName[0] == '!')
		{
			continue;
		}

		tiles.push_back(tile);
	}

	settingsPanel = TileToolPanel::make(tiles, *getEditorData().tileAppearance);
}