protected javax.vecmath.Vector3d getPositionEnd() { if (m_subjectBoundingBox == null) { m_subjectBoundingBox = subject.getBoundingBox(); if (m_subjectBoundingBox.getMaximum() == null) { m_subjectBoundingBox = new edu.cmu.cs.stage3.math.Box( subject.getPosition(subject), subject.getPosition(subject)); } } if (m_asSeenByBoundingBox == null) { m_asSeenByBoundingBox = m_asSeenBy.getBoundingBox(); if (m_asSeenByBoundingBox.getMaximum() == null) { m_asSeenByBoundingBox = new edu.cmu.cs.stage3.math.Box( m_asSeenBy.getPosition(m_asSeenBy), m_asSeenBy.getPosition(m_asSeenBy)); } } edu.cmu.cs.stage3.alice.core.SpatialRelation sv = spatialRelation.getSpatialRelationValue(); javax.vecmath.Vector3d v = sv.getPlaceVector(amount.doubleValue(), m_subjectBoundingBox, m_asSeenByBoundingBox); return v; }