Files
o3de/Code/Editor/Util/AffineParts.h
T
2021-07-28 08:56:46 -07:00

34 lines
890 B
C

/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#ifndef CRYINCLUDE_EDITOR_UTIL_AFFINEPARTS_H
#define CRYINCLUDE_EDITOR_UTIL_AFFINEPARTS_H
#pragma once
struct AffineParts
{
Vec3 pos; //!< Translation components
Quat rot; //!< Essential rotation.
Quat rotScale; //!< Stretch rotation.
Vec3 scale; //!< Stretch factors.
float fDet; //!< Sign of determinant.
/** Decompose matrix to its affine parts.
*/
void Decompose(const Matrix34& mat);
/** Decompose matrix to its affine parts.
Assume there`s no stretch rotation.
*/
void SpectralDecompose(const Matrix34& mat);
};
#endif // CRYINCLUDE_EDITOR_UTIL_AFFINEPARTS_H