blob: f1fd36eee101c43a750794e3de41016cebb61b35 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2018 Agence spatiale canadienne / Canadian Space Agency
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Pierre Allard,
* Regent L'Archeveque,
* Sebastien Gemme - initial API and implementation
*
* SPDX-License-Identifier: EPL-1.0
*
*******************************************************************************/
package org.eclipse.apogy.common.topology.ui.impl;
import javax.vecmath.Matrix4d;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3f;
public class NodeSelectionCustomImpl extends NodeSelectionImpl {
@Override
public Point3d getAbsoluteIntersectionPoint() {
if (this.absoluteIntersectionPoint == null) {
if (getSelectedNode() != null && getRelativeIntersectionPoint() != null) {
this.absoluteIntersectionPoint = new Point3d(getRelativeIntersectionPoint());
Matrix4d m = org.eclipse.apogy.common.topology.ApogyCommonTopologyFacade.INSTANCE
.expressNodeInRootFrame(getSelectedNode());
m.transform(this.absoluteIntersectionPoint);
setAbsoluteIntersectionPoint(this.absoluteIntersectionPoint);
}
}
return this.absoluteIntersectionPoint;
}
@Override
public Vector3f getAbsoluteIntersectionNormal() {
if (this.absoluteIntersectionNormal == null) {
if (getSelectedNode() != null && getRelativeIntersectionNormal() != null) {
this.absoluteIntersectionNormal = new Vector3f(getRelativeIntersectionNormal());
Matrix4d m = org.eclipse.apogy.common.topology.ApogyCommonTopologyFacade.INSTANCE
.expressNodeInRootFrame(getSelectedNode());
m.transform(this.absoluteIntersectionNormal);
setAbsoluteIntersectionNormal(this.absoluteIntersectionNormal);
}
}
return this.absoluteIntersectionNormal;
}
} // NodeSelectionImpl