Hi Wojtek,
I'm so sorry that I replied too late. I was held up by my paper's submission 
deadline. And the problem I think is solved.
Thank you very much. 
Cheers,
Jiechang

Wojtek wrote:
> Hi Jiechang,
> 
> 
> I am not sure I am able to pinpoint your problem. I see some weak spots but I 
> am not sure if those are the true causes of your problem. And don't want to 
> give wrong clues. Can you write short repro program which demos your problem 
> ? I may then fix it and send you back.
> 
> 
> To learn you may try to separate rotations and translations by using two 
> matrix transforms above loaded model. 
> 
> 
> MatrixTransformTranslate->MatrixTransformRotate->Object.
> 
> 
> Apply only rotations to MatrixTransformRotate
> and translations to MatrixTransformTranslate.
> 
> 
> Cheers,
> Wojtek
> 
>  
> 
> 
> 
> 
> 2017-05-06 8:51 GMT+02:00 Jiechang Guo < ()>:
> 
> > Hi Wojtek,
> > First, Thank you very much for your detailed reply.
> > 1. It's my mistake to say rotation around Y axis, I always think the z axis 
> > is actually the y axis.
> > 2. The origin variable is
> > osg::Matrix origin = model1->getMatrix();
> > I update this variable everytime when I translate or rotate the model. And 
> > multiply it with my transform matrix so that I can get the correct result 
> > after changing the position or orientation  the model many times. Please 
> > Correct  Me if I'm not correct.
> > 3. OMG..I tried what you told me to. I just... I think I undestand what's 
> > going on in side the constructor. No wonder I got that results and some 
> > previous work about trackball rotate I did  is wrong. Thank you.
> > 4. I've done some experiments about the order of the origin matrix. I get 
> > the same result either I multiply it at first or at last...
> > The code is below:
> > osg::ref_ptr<osg::MatrixTransform> model1 = new osg::MatrixTransform;
> > model1->addChild(osgDB::readNodeFile("E:\objdata\FEMUR.obj", a));
> > osg::Matrix origin = model1->getMatrix();
> > model1->setMatrix(origin*osg::Matrix::translate(100, 0, 0));
> > osg::Vec3 Center = model1->getBound().center();
> > origin = model1->getMatrix();
> > osg::Quat quat(osg::PI_4, osg::Z_AXIS);
> > model1->setMatrix(origin*osg::Matrix::translate(-Center)*osg::Matrix::rotate(quat)*osg::Matrix::translate(Center)*osg::Matrix::translate(100,
> >  0, 0));
> > 
> >     The reason that I want to get the Trans() and Rotate() is that I'm 
> > doing a task: Compute the deviation of the origin model and target model. 
> > These two model are the same and when the origin model is being manipulted 
> > to the position of target model(which is a mesh model) I have to compute 
> > whether they are  overlaped and skip to another task.
> > Actually, I've already implemented this function, but I was confused by: 
> > when I do only rotate task, the trans I get from getMatrix().getTrans() is 
> > changing. I even don't know why it works when I only compute the trans 
> > deviation. The code is below.
> > model1Translation = m1.model->getMatrix().getTrans();
> > model1Quat = m1.model->getMatrix().getRotate();
> > model2Translation = m2.model->getMatrix().getTrans();
> > model2Quat = m2.model->getMatrix().getRotate();
> > osg::Vec3 positionbias = model2Translation - model1Translation;
> > osg::Quat rotationbias = model2Quat - model1Quat;
> > if (abs(positionbias.x()) <= 2 && abs(positionbias.y()) <= 2 && 
> > abs(positionbias.z()) <= 2)
> > {
> >         //if (abs(rotationbias.x())<=0.1&&)
> >         //{
> >                 hm->pressNext();
> >         //}
> > }
> > 
> > Cheers,
> >   Jiechang
> > 
> > ------------------
> > Read this topic online here:
> > http://forum.openscenegraph.org/viewtopic.php?p=70887#70887 
> > (http://forum.openscenegraph.org/viewtopic.php?p=70887#70887)
> > 
> > 
> > 
> > 
> > 
> > _______________________________________________
> > osg-users mailing list
> >  ()
> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org 
> > (http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org)
> > 
> > 
> > 
> 
> 
>  ------------------
> Post generated by Mail2Forum


------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=71001#71001





_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to