Example #1
0
TEST(rosToEigen, transform) {
	Eigen::Isometry3d transform1 = toEigen(makeTransform(makeVector3(0, 1.5, 2), makeQuaternion(1, 0, 0, 0)));
	Eigen::Isometry3d transform2 = toEigen(makeTransform(makeVector3(-1.5, -2.6, -3.7), makeQuaternion(0, 0, 0, 1)));

	Eigen::Vector3d const & p1 = transform1.translation();
	Eigen::Vector3d const & p2 = transform2.translation();
	Eigen::Quaterniond const & q1 = Eigen::Quaterniond{transform1.rotation()};
	Eigen::Quaterniond const & q2 = Eigen::Quaterniond{transform2.rotation()};

	ASSERT_NEAR(0.0, p1.x(), 1e-5);
	ASSERT_NEAR(1.5, p1.y(), 1e-5);
	ASSERT_NEAR(2.0, p1.z(), 1e-5);
	ASSERT_NEAR(-1.5, p2.x(), 1e-5);
	ASSERT_NEAR(-2.6, p2.y(), 1e-5);
	ASSERT_NEAR(-3.7, p2.z(), 1e-5);

	ASSERT_NEAR(1, q1.x(), 1e-5);
	ASSERT_NEAR(0, q1.y(), 1e-5);
	ASSERT_NEAR(0, q1.z(), 1e-5);
	ASSERT_NEAR(0, q1.w(), 1e-5);
	ASSERT_NEAR(0, q2.x(), 1e-5);
	ASSERT_NEAR(0, q2.y(), 1e-5);
	ASSERT_NEAR(0, q2.z(), 1e-5);
	ASSERT_NEAR(1, q2.w(), 1e-5);
}
Example #2
0
void IECoreAppleseed::TransformStack::concatTransform( const Imath::M44f &m )
{
	asf::Transformd xform;
	makeTransform( m, xform );
	asr::TransformSequence seq;
	seq.set_transform( 0.0, xform );
	m_stack.top() = seq * m_stack.top();
}
Example #3
0
void IECoreAppleseed::TransformStack::setTransform( const Imath::M44f &m )
{
	asf::Transformd xform;
	makeTransform( m, xform );
	m_stack.top().set_transform( 0.0, xform );
}
Example #4
0
data::Value &Transform::transform(data::Value &value) const {
	Vector<data::Value *> stack;
	makeTransform(value, stack);
	return value;
}