const BAffineTransform&
BAffineTransform::ScaleBy(const BPoint& center, double x, double y)
{
    TranslateBy(-center.x, -center.y);
    ScaleBy(x, y);
    return TranslateBy(center.x, center.y);
}
bool GO_Background::Initialize(
	ComPtr<ID3D11Device> const device,
	const std::shared_ptr<ShaderManager> shaderManager,
	const std::shared_ptr<MaterialFactory> matFactory)
{
	GameObject::Initialize(device, shaderManager, matFactory);

	Model::ModelType bgDesc;
	bgDesc.materialFilename = BG_MATERIAL;
	bgDesc.modelFilename = BG_MODEL;

	if (!model.Initialize(
		bgDesc,
		device,
		shaderManager->getDefaultShader()->getShaderBCode(),
		shaderManager->getPlainTextureShader()->getByteCodeLength(),
		matFactory))
	{
		return false;
	}
	
	TranslateBy(0.0f, 0.0f, -8.0f);
	ScaleBy(0.6f);

	return true;
}
const BAffineTransform&
BAffineTransform::ScaleBy(const BPoint& center, const BPoint& scale)
{
    return ScaleBy(center, scale.x, scale.y);
}
const BAffineTransform&
BAffineTransform::ScaleBy(const BPoint& center, double scale)
{
    return ScaleBy(center, scale, scale);
}