Exemple #1
0
void CAnimatorOverlay::CumulativeEndTransform(/*[out, retval]*/ float *elements)
{
	ISimpleOverlay2 *parent;
	get_Parent(&parent);
	Matrix m;
	if (parent)
	{
		float el[6];
		parent->CumulativeTransform(el);
		Matrix cm(el[0], el[1], el[2], el[3], el[4], el[5]);
		m.Multiply(&cm);
	}

	m.Multiply(&getEndTransform());
	m.GetElements(elements);
}
Exemple #2
0
STDMETHODIMP CAnimatorOverlay::CumulativeTransform(/*[out, retval]*/ float *elements)
{
	if (elements == NULL)
		return E_POINTER;

	ISimpleOverlay2 *parent;
	get_Parent(&parent);

	Matrix m;
	if (parent)
	{
		float el[6];
		parent->CumulativeTransform(el);
		Matrix cm(el[0], el[1], el[2], el[3], el[4], el[5]);
		m.Multiply(&cm);
	}

	m.Multiply(&getCurTransform());
	m.GetElements(elements);
	return S_OK;
}
Exemple #3
0
STDMETHODIMP CGaugeOverlay::CumulativeTransform(/*[out, retval]*/ long size, long offset, REAL *elements)
{
	if (elements == NULL)
		return E_POINTER;

	Matrix m;
	ISimpleOverlay2 *parent = NULL;
	get_Parent(&parent);
	if (parent)
	{
		REAL el[6];
		parent->CumulativeTransform(el);
		Matrix cm(el[0], el[1], el[2], el[3], el[4], el[5]);
		m.Multiply(&cm);
	}

	PointF center((float)centerX, (float)centerY);
	m.Translate((float)(x-centerX), (float)(y-centerY));
	m.RotateAt((float)span * offset / size + rotation, center);
	m.Scale((float)hScale, (float)vScale);
	m.GetElements(elements);
	return S_OK;
}