Package com.ardor3d.math

Examples of com.ardor3d.math.Transform


    }

    @Override
    public void drawTo(final BufferedImage image, final ReadOnlyTransform localTransform, final int clipmapLevel) {
        // apply the two transforms together and then use result to scale/translate and rotate image
        final Transform trans = new Transform();
        localTransform.multiply(getTransform(), trans);

        // grab a copy of the graphics so we don't bleed state to next image
        final Graphics2D g2d = (Graphics2D) image.getGraphics().create();

        // apply hints
        for (final RenderingHints.Key key : hints.keySet()) {
            g2d.setRenderingHint(key, hints.get(key));
        }

        // set transform
        g2d.translate(trans.getTranslation().getX(), trans.getTranslation().getY());
        g2d.rotate(trans.getMatrix().toAngles(null)[2]); // rotation about z
        g2d.scale(trans.getScale().getX(), trans.getScale().getY());

        // set composite
        if (_compositeOverride != null) {
            g2d.setComposite(_compositeOverride);
        }
View Full Code Here


    }

    @Override
    public void drawTo(final BufferedImage image, final ReadOnlyTransform localTransform, final int clipmapLevel) {
        // apply the two transforms together and then use result to scale/translate and rotate image
        final Transform trans = new Transform();
        localTransform.multiply(getTransform(), trans);

        // grab a copy of the graphics so we don't bleed state to next image
        final Graphics2D g2d = (Graphics2D) image.getGraphics().create();

        // apply hints
        for (final RenderingHints.Key key : hints.keySet()) {
            g2d.setRenderingHint(key, hints.get(key));
        }

        // set transform
        g2d.translate(trans.getTranslation().getX(), trans.getTranslation().getY());
        g2d.rotate(trans.getMatrix().toAngles(null)[2]); // rotation about z
        g2d.scale(trans.getScale().getX(), trans.getScale().getY());

        // set composite
        if (_compositeOverride != null) {
            g2d.setComposite(_compositeOverride);
        }
View Full Code Here

        final int tileY = tile.getY();

        final int baseClipmapLevel = availableClipmapLevels - clipmapLevel - 1;

        // build a transform that would take us to the local space of the tile.
        final Transform localTransform = new Transform();
        localTransform.setTranslation(-tileX * tileSize, -tileY * tileSize, 0);
        final double scale = 1.0 / MathUtils.pow2(baseClipmapLevel);
        localTransform.setScale(scale);

        final double tileInScale = MathUtils.pow2(baseClipmapLevel) * tileSize;
        final double minX = tileInScale * tileX;
        final double minY = tileInScale * tileY;
        final double maxX = minX + tileInScale - 1;
View Full Code Here

            if (text.length() > 0) {
                // set our text location
                final Vector3 v = Vector3.fetchTempInstance();
                // note: we round to get the text pixel aligned... otherwise it can get blurry
                v.set(Math.round(x), Math.round(y), 0);
                final Transform t = Transform.fetchTempInstance();
                t.set(getWorldTransform());
                t.applyForwardVector(v);
                t.translate(v);
                Vector3.releaseTempInstance(v);
                _uiText.setWorldTransform(t);
                Transform.releaseTempInstance(t);

                // draw the selection first
View Full Code Here

        final Vector3 v = Vector3.fetchTempInstance();
        v.set(comp.getMargin().getLeft() + comp.getBorder().getLeft(), comp.getMargin().getBottom()
                + comp.getBorder().getBottom(), 0);

        final Transform t = Transform.fetchTempInstance();
        t.set(comp.getWorldTransform());
        t.applyForwardVector(v);
        t.translate(v);
        Vector3.releaseTempInstance(v);

        GradientBackdrop._mesh.setWorldTransform(t);
        Transform.releaseTempInstance(t);
View Full Code Here

        final int jointCount = _skeleton.getJoints().length;

        // init local transforms
        _localTransforms = new Transform[jointCount];
        for (int i = 0; i < jointCount; i++) {
            _localTransforms[i] = new Transform();
        }

        // init global transforms
        _globalTransforms = new Transform[jointCount];
        for (int i = 0; i < jointCount; i++) {
            _globalTransforms[i] = new Transform();
        }

        // init palette
        _matrixPalette = new Matrix4[jointCount];
        for (int i = 0; i < jointCount; i++) {
View Full Code Here

    /**
     * Update the global and palette transforms of our posed joints based on the current local joint transforms.
     */
    public void updateTransforms() {
        final Transform temp = Transform.fetchTempInstance();
        // we go in update array order, which ensures parent global transforms are updated before child.
        // final int[] orders = _skeleton.getJointOrders();
        final int nrJoints = _skeleton.getJoints().length;
        // for (int i = 0; i < orders.length; i++) {
        for (int i = 0; i < nrJoints; i++) {
            // the joint index
            final int index = i;

            // find our parent
            final short parentIndex = _skeleton.getJoints()[index].getParentIndex();
            if (parentIndex != Joint.NO_PARENT) {
                // we have a parent, so take us from local->parent->model space by multiplying by parent's local->model
                // space transform.
                _globalTransforms[parentIndex].multiply(_localTransforms[index], _globalTransforms[index]);
            } else {
                // no parent so just set global to the local transform
                _globalTransforms[index].set(_localTransforms[index]);
            }

            // at this point we have a local->model space transform for this joint, for skinning we multiply this by the
            // joint's inverse bind pose (joint->model space, inverted). This gives us a transform that can take a
            // vertex from bind pose (model space) to current pose (model space).
            _globalTransforms[index].multiply(_skeleton.getJoints()[index].getInverseBindPose(), temp);
            temp.getHomogeneousMatrix(_matrixPalette[index]);
        }
        Transform.releaseTempInstance(temp);
        firePoseUpdated();
    }
View Full Code Here

    /**
     * Update our local joint transforms so that they reflect the skeleton in bind pose.
     */
    public void setToBindPose() {
        final Transform temp = Transform.fetchTempInstance();
        // go through our local transforms
        for (int i = 0; i < _localTransforms.length; i++) {
            // Set us to the bind pose
            _localTransforms[i].set(_skeleton.getJoints()[i].getInverseBindPose());
            // then invert.
View Full Code Here

            field2.set(this, localTransforms);

            // init global transforms
            final Transform[] globalTransforms = new Transform[jointCount];
            for (int i = 0; i < jointCount; i++) {
                globalTransforms[i] = new Transform();
            }
            final Field field3 = SkeletonPose.class.getDeclaredField("_globalTransforms");
            field3.setAccessible(true);
            field3.set(this, globalTransforms);
View Full Code Here

     * See class javadoc for more information.
     */
    public void poseUpdated(final SkeletonPose pose) {
        // only update if we have something attached.
        if (_attachment != null) {
            final Transform t = pose.getGlobalJointTransforms()[_jointIndex];
            t.multiply(_offset, _store);
            _attachment.setTransform(_store);
        }
    }
View Full Code Here

TOP

Related Classes of com.ardor3d.math.Transform

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.