All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.fxyz3d.importers.maya.MayaGroup Maven / Gradle / Ivy

There is a newer version: 0.6.0
Show newest version
/*
 * Copyright (c) 2010, 2014, Oracle and/or its affiliates.
 * All rights reserved. Use is subject to license terms.
 *
 * This file is available and licensed under the following license:
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *  - Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *  - Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the distribution.
 *  - Neither the name of Oracle Corporation nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

package org.fxyz3d.importers.maya;

import javafx.scene.Group;
import javafx.scene.transform.Rotate;
import javafx.scene.transform.Scale;
import javafx.scene.transform.Translate;

/**
 * MayaGroup - A MayaGroup is equivalent to a Maya Transform Node
 * 

* If you are post-multiplying matrices, To transform a point p from object-space to world-space you would need to * post-multiply by the worldMatrix. (p' = p * wm) matrix = [SP-1][S][SH][SP][ST][RP-1][RA][R][RP][RT][T] where R = * [RX][RY][RZ] (Note: order is determined by rotateOrder) *

* If you are pre-multiplying matrices, to transform a point p from object-space to world-space you would need to * pre-multiply by the worldMatrix. (p' = wm * p) matrix = [T][RT][RP][R][RA][RP-1][ST][SP][SH][S][SP-1] where R = * [RZ][RY][RX] (Note: order is determined by rotateOrder) Of these sub-matrices we can set [RT], [RA], [ST], and [SH] * to identity, so matrix = [T][RP][R][RP-1][SP][S][SP-1] matrix = [T][RP][RZ][RY][RX][RP-1][SP][S][SP-1] */ public class MayaGroup extends Group { Translate t = new Translate(); Translate rpt = new Translate(); // rotate pivot translate Translate rp = new Translate(); // rotate pivot Translate rpi = new Translate(); // rotate pivot inverse Translate spt = new Translate(); // scale pivot translate Translate sp = new Translate(); // scale pivot Translate spi = new Translate(); // scale pivot inverse // should bind rpi = -rp, but doesn't currently work afaict Rotate rx = new Rotate(0, Rotate.X_AXIS); Rotate ry = new Rotate(0, Rotate.Y_AXIS); Rotate rz = new Rotate(0, Rotate.Z_AXIS); Scale s = new Scale(); public MayaGroup() { initTransforms(); } /** * Creates mayaGroup with the same set of transforms as given mayaGroup. Children are not copied. * * @param mayaGroup */ public MayaGroup(MayaGroup mayaGroup) { t = mayaGroup.t.clone(); rpt = mayaGroup.rpt.clone(); rp = mayaGroup.rp.clone(); rpi = mayaGroup.rpi.clone(); sp = mayaGroup.sp.clone(); spi = mayaGroup.spi.clone(); rx = mayaGroup.rx.clone(); ry = mayaGroup.ry.clone(); rz = mayaGroup.rz.clone(); s = mayaGroup.s.clone(); setId(mayaGroup.getId()); setDepthTest(mayaGroup.getDepthTest()); setVisible(mayaGroup.isVisible()); initTransforms(); } private void initTransforms() { getTransforms().setAll(t, rpt, rp, rz, ry, rx, rpi, spt, sp, s, spi); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy