Изображение Я работаю над проектом плагина rviz, в котором мне нужно переместить структуру ogre cube me sh между двумя координатами.
Вот код, который я сделал для этого
Ogre::Vector3 src (1,2,3);
Ogre::Vector3 destination(4,5,6);
//manual object
static int count=0;
const std::string& filename="cube.mesh";
Ogre::MeshPtr cube= rviz::loadMeshFromResource(filename);
std::stringstream str;
str << "cube" << count++;
Ogre::Entity *entity = scene_manager_->createEntity(str.str(),cube);
Ogre::SceneNode* parent_node = scene_manager_->getRootSceneNode();
parent_node ->attachObject(entity);
parent_node ->setPosition((src+destination)/2); //by doing this the cube passes through mid point
Ogre::Radian angle = src.angleBetween(destination);
//here is some error,
Ogre::Quaternion angle_x((angle), Ogre::Vector3::UNIT_X);
Ogre::Quaternion angle_y((angle), Ogre::Vector3::UNIT_Y);
Ogre::Quaternion angle_z((angle), Ogre::Vector3::UNIT_Z);
parent_node ->rotate(angle_x*angle_y*angle_z);
Однако он не выравнивается между двумя векторами. Пожалуйста, помогите.