当前位置: 首页>>代码示例>>Java>>正文


Java Matrix4.M20属性代码示例

本文整理汇总了Java中com.badlogic.gdx.math.Matrix4.M20属性的典型用法代码示例。如果您正苦于以下问题:Java Matrix4.M20属性的具体用法?Java Matrix4.M20怎么用?Java Matrix4.M20使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在com.badlogic.gdx.math.Matrix4的用法示例。


在下文中一共展示了Matrix4.M20属性的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: Transform

/**
    * Transform a Vector3 using a Transformation Matrix
    * 
    * @param vector
    *            Vector to transform
    * @param transform
    *            The Transformation matrix
    * @return
    */
   public static Vector3 Transform(Vector3 vector, Matrix4 transform) {
Vector3 result = new Vector3((vector.x * transform.val[Matrix4.M00])
	+ (vector.y * transform.val[Matrix4.M10])
	+ (vector.z * transform.val[Matrix4.M20])
	+ transform.val[Matrix4.M30],
	(vector.x * transform.val[Matrix4.M01])
		+ (vector.y * transform.val[Matrix4.M11])
		+ (vector.z * transform.val[Matrix4.M21])
		+ transform.val[Matrix4.M31],
	(vector.x * transform.val[Matrix4.M02])
		+ (vector.y * transform.val[Matrix4.M12])
		+ (vector.z * transform.val[Matrix4.M22])
		+ transform.val[Matrix4.M32]);

return result;
   }
 
开发者ID:game-libgdx-unity,项目名称:GDX-Engine,代码行数:25,代码来源:Utils.java

示例2: getNodeToParentTransform

/**
     * Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.
     * The matrix is in Pixels.
     */
    public Matrix4 getNodeToParentTransform() {
    	if (_transformDirty) {
    		
            float x = _position.x, y = _position.y, z = _positionZ;
            
            if (_ignoreAnchorPointForPosition) {
                x += _anchorPointInPoints.x;
                y += _anchorPointInPoints.y;
            }
            
            final float anchorPointX = _anchorPointInPoints.x * _scaleX;
            final float anchorPointY = _anchorPointInPoints.y * _scaleY;
            
            // Build Transform Matrix = translation * rotation * scale
            final Matrix4 translation = poolMatrix_1.idt();
            //move to anchor point first, then rotate
            translation.setTranslation(x + anchorPointX, y + anchorPointY, z);
            
            _transform.setFromEulerAngles(_rotationX, _rotationY, _rotationZ);
//            _transform.set(_rotationQuat);
            
            _transform.mulLeft(translation);
            
            
            //move by (-anchorPoint.x, -anchorPoint.y, 0) after rotation
            _transform.val[Matrix4.M03] -= anchorPointX;
            _transform.val[Matrix4.M13] -= anchorPointY;
            
            
            if (_scaleX != 1.f) {
//            	_tr
            	_transform.val[Matrix4.M00] *= _scaleX; 
            	_transform.val[Matrix4.M10] *= _scaleX; 
            	_transform.val[Matrix4.M20] *= _scaleX;
            }
            if (_scaleY != 1.f) {
            	_transform.val[Matrix4.M01] *= _scaleY; 
            	_transform.val[Matrix4.M11] *= _scaleY; 
            	_transform.val[Matrix4.M21] *= _scaleY;
            }
            if (_scaleZ != 1.f) {
            	_transform.val[Matrix4.M02] *= _scaleZ;
            	_transform.val[Matrix4.M12] *= _scaleZ; 
            	_transform.val[Matrix4.M22] *= _scaleZ;
            }
        }

        if (_additionalTransform != null) {
//            // This is needed to support both Node::setNodeToParentTransform() and Node::setAdditionalTransform()
//            // at the same time. The scenario is this:
//            // at some point setNodeToParentTransform() is called.
//            // and later setAdditionalTransform() is called every time. And since _transform
//            // is being overwritten everyframe, _additionalTransform[1] is used to have a copy
//            // of the last "_trasform without _additionalTransform"
            if (_transformDirty) {
                _additionalTransform[1].set(_transform);
            }
//
            if (_transformUpdated) {
                _transform.set(_additionalTransform[1].mul(_additionalTransform[0]));
        	}
        }

        _transformDirty = _additionalTransformDirty = false;

        return _transform;
    }
 
开发者ID:mingwuyun,项目名称:cocos2d-java,代码行数:71,代码来源:Node.java


注:本文中的com.badlogic.gdx.math.Matrix4.M20属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。