public SourceMatrix3x4 InverseTR()
        {
            SourceMatrix3x4 _out = new SourceMatrix3x4();

            InverseTR(ref _out);
            return(_out);
        }
        //void TransformPlane( const cplane_t &inPlane, cplane_t &outPlane ) const;
        //void TransformPlaneByInverse( const cplane_t &inPlane, cplane_t &outPlane ) const;
        //float GetOrthogonalityError() const;
        //float GetDeterminant()const;
        //float GetSylvestersCriterion()const; // for symmetrical matrices only: should be >0 iff it's a positive definite matrix

        //SourceVector GetColumn(MatrixAxisType_t nColumn) const;
        //void SetColumn( const Vector &vColumn, MatrixAxisType_t nColumn);
        //SourceVector GetForward() const { return GetColumn(FORWARD_AXIS ); }
        //	SourceVector GetLeft() const { return GetColumn(LEFT_AXIS ); }
        //	SourceVector GetUp() const { return GetColumn(UP_AXIS ); }
        //	SourceVector GetRow(int nRow) const { return * (Vector*) (m_flMatVal[nRow]); }
        //	void SetRow(int nRow, const Vector &vRow ) { m_flMatVal[nRow][0] = vRow.x; m_flMatVal[nRow][1] = vRow.y; m_flMatVal[nRow][2] = vRow.z; }

        public void InverseTR(ref SourceMatrix3x4 _out)
        {
            MathUtils.MatrixInvert(this, ref _out);
        }