# Crap at Math!

How can I translate a point defined in the local space of a Spatial(entity) to the world space?

Currently I'm using the following function but I think it's wrong:

```     /**      * Transforms a point from the entity's local space into world space.      * @param entity the entity in which relative coordinates the point is set.      * @param point the point to convert.      * @return the world coordinates of the specified <code>point</code>.      */     public static Vector3f pointToWorldSpace(Spatial entity, Vector3f point) {         //thid code has been copied from Spatial.updateWorldTranslation()         if (entity != null) {             return entity.getWorldRotation().mult(point).multLocal(entity.getWorldScale()).addLocal(entity.getWorldTranslation());         } else {             return point;         }     } ```

We use this method in jME Physics:

```     /**      * Sets the world translation of a spatial according to a supplied body.      * This is done by going "the other way around"; figuring      * out what its local translation has to be in order for the world      * translation to be the same as the one of the body.      *      * @param spat The Spatial to synchronize.      * @param worldTranslation      * @param store      */     void worldToLocal( Spatial spat, Vector3f worldTranslation, Vector3f store ) {         if ( spat.getParent() != null ) {             store.set( worldTranslation ).subtractLocal( spat.getParent().getWorldTranslation() );             store.divideLocal( spat.getParent().getWorldScale() );             inverseWorldRotation.set( spat.getParent().getWorldRotation() ).inverseLocal()                     .multLocal( store );         }         else {             store.set( worldTranslation );         }     }```

Maybe it should be added to Spatial?

I don't understand how this could be applied to my case. i.e. convert a point defined in a

Spatial's local space to world space?

Oops - that was the other way round

sorry

your code actually looks ok, for mapping from local to world (it creates a new vector but should be functional)