Newb translation question

This may sound like a newbish question however i am having issues translating this properly.  The problem apparently was always their however, because i took other measures to prevent the initial problem it didnt show up until now. How do I translate a model so that its new translation is directly above another node. Their are 2 nodes a model which is attached to modelNode and a platform which is attached to the sceneNode. Both the model and the scene nodes are attached to the rootNode. It should not be that difficult but no matter if i translate it the intended way or not ie worldtranslation.set etc i still receive odd results can anyone advice a solution?



The part of the update that i am having issues with


 //This is for Y
                       if(model.getNegYSide()==pBounds.getCenter().getY()+pBounds.getYExtent()){
                            y=0;
                            model.setOnPlatform(true);
                       } else if (model.getNegYSide() < pBounds.getCenter().getY() + pBounds.getYExtent()
                               &&model.getPosYSide()-model.getHeight()/5>pBounds.getCenter().getY() + pBounds.getYExtent()) {
                            float distance = (pBounds.getCenter().getY()+pBounds.getYExtent())+mBounds.getYExtent();
                            mBounds.getCenter().setY(distance);
                            y=0;
                            model.setOnPlatform(true);
                       }









fullCode update


 public void update(float tpf) {
            for(CollisionNode model : models){
                model.update(tpf);
                BoundingBox mBounds = (BoundingBox)model.getWorldBound();
                float x = 0;
                float y =-1;
                float z = 0;
                for(Spatial platform : platforms.getChildren()){
                    BoundingBox pBounds = (BoundingBox)platform.getWorldBound();
                    if(pBounds.intersects(mBounds)){
                       //This is for Y
                       if(model.getNegYSide()==pBounds.getCenter().getY()+pBounds.getYExtent()){
                            y=0;
                            model.setOnPlatform(true);
                       } else if (model.getNegYSide() < pBounds.getCenter().getY() + pBounds.getYExtent()
                               &&model.getPosYSide()-model.getHeight()/5>pBounds.getCenter().getY() + pBounds.getYExtent()) {
                            float distance = (pBounds.getCenter().getY()+pBounds.getYExtent())+mBounds.getYExtent();
                            mBounds.getCenter().setY(distance);
                            y=0;
                            model.setOnPlatform(true);
                       }
                       //This is to check if the player can Hop onto the top of the platform or be blocked by it
                       if(model.getPosYSide()-model.getHeight()/5<=pBounds.getCenter().getY()+pBounds.getYExtent()){
                            //This is for X
                           if(model.getNegXSide()==pBounds.getCenter().getX() + pBounds.getXExtent()
                                   ||model.getPosXSide() == pBounds.getCenter().getX() - pBounds.getXExtent()){
                                x=0;
                           }else if (model.getNegXSide() < pBounds.getCenter().getX() + pBounds.getXExtent()
                                   &&model.getPosXSide()>pBounds.getCenter().getX() + pBounds.getXExtent()) {
                                float distance = (pBounds.getCenter().getX()+pBounds.getXExtent())+mBounds.getXExtent();
                                model.getLocalTranslation().setX(distance);
                                x=0;
                           } else if(model.getPosXSide() > pBounds.getCenter().getX() - pBounds.getXExtent()
                                   &&model.getNegXSide()<pBounds.getCenter().getX() - pBounds.getXExtent()){
                                float distance = (pBounds.getCenter().getX()-pBounds.getXExtent())-mBounds.getXExtent();
                                model.getLocalTranslation().setX(distance);
                                x=0;
                           }
                            //This is for Z
                           if(model.getNegZSide()==pBounds.getCenter().getZ() + pBounds.getZExtent()
                                   ||model.getPosZSide() == pBounds.getCenter().getZ() - pBounds.getZExtent()){
                                z=0;
                           }else if (model.getNegZSide() < pBounds.getCenter().getZ() + pBounds.getZExtent()
                                   &&model.getPosZSide()>pBounds.getCenter().getZ() + pBounds.getZExtent()) {
                                float distance = (pBounds.getCenter().getZ()+pBounds.getZExtent())+mBounds.getZExtent();
                                model.getLocalTranslation().setZ(distance);
                                z=0;
                           } else if(model.getPosZSide() > pBounds.getCenter().getZ() - pBounds.getZExtent()
                                   &&model.getNegZSide()<pBounds.getCenter().getZ() - pBounds.getZExtent()){
                                float distance = (pBounds.getCenter().getZ()-pBounds.getZExtent())-mBounds.getZExtent();
                                model.getLocalTranslation().setZ(distance);
                                z=0;
                           }
                      }
                    }
                }
                model.force(x, y, z);
            }        
    }