Nez.Transform.updateTransform C# (CSharp) Method

updateTransform() private method

private updateTransform ( ) : void
return void
		void updateTransform()
		{
			if( hierarchyDirty != DirtyType.Clean )
			{
				if( parent != null )
					parent.updateTransform();

				if( _localDirty )
				{
					if( _localPositionDirty )
					{
						Matrix2D.createTranslation( _localPosition.X, _localPosition.Y, out _translationMatrix );
						_localPositionDirty = false;
					}

					if( _localRotationDirty )
					{
						Matrix2D.createRotation( _localRotation, out _rotationMatrix );
						_localRotationDirty = false;
					}

					if( _localScaleDirty )
					{
						Matrix2D.createScale( _localScale.X, _localScale.Y, out _scaleMatrix );
						_localScaleDirty = false;
					}

					Matrix2D.multiply( ref _scaleMatrix, ref _rotationMatrix, out _localTransform );
					Matrix2D.multiply( ref _localTransform, ref _translationMatrix, out _localTransform );

					if( parent == null )
					{
						_worldTransform = _localTransform;
						_rotation = _localRotation;
						_scale = _localScale;
						_worldInverseDirty = true;
					}
					_localDirty = false;
				}

				if( parent != null )
				{
					Matrix2D.multiply( ref _localTransform, ref parent._worldTransform, out _worldTransform );

					_rotation = _localRotation + parent._rotation;
					_scale = parent._scale * _localScale;
					_worldInverseDirty = true;
				}

				_worldToLocalDirty = true;
				_positionDirty = true;
				hierarchyDirty = DirtyType.Clean;
			}
		}