MCPcopy Create free account
hub / github.com/EricLengyel/Terathon-Math-Library / Submat2D

Class Submat2D

TSAlgebra.h:1591–1718  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1589 xyzw = v;
1590 return (*this);
1591 }
1592
1593 template <typename type, int cnt, int ind_x, int ind_y, int ind_z, int ind_w>
1594 void operator =(const Subvec4D<type, anti, cnt, ind_x, ind_y, ind_z, ind_w>& v) volatile
1595 {
1596 xyzw = v;
1597 }
1598 };
1599
1600
1601 template <typename type_struct, bool anti>
1602 inline bool operator ==(const Vec4D<type_struct, anti>& v1, const Vec4D<type_struct, anti>& v2)
1603 {
1604 return (v1.xyzw == v2.xyzw);
1605 }
1606
1607 template <typename type_struct, bool anti>
1608 inline bool operator !=(const Vec4D<type_struct, anti>& v1, const Vec4D<type_struct, anti>& v2)
1609 {
1610 return (v1.xyzw != v2.xyzw);
1611 }
1612
1613
1614 template <typename type_struct> using Antivec3D = Vec3D<type_struct, true>;
1615 template <typename type_struct> using Antivec4D = Vec4D<type_struct, true>;
1616
1617
1618 template <typename A_type_struct, bool A_anti, int A_count, int A_index_x, int A_index_y, int A_index_z, typename B_type_struct, int B_count, int B_index_x, int B_index_y, int B_index_z>
1619 inline float operator ^(const Subvec3D<A_type_struct, A_anti, A_count, A_index_x, A_index_y, A_index_z>& A, const Subvec3D<B_type_struct, !A_anti, B_count, B_index_x, B_index_y, B_index_z>& B)
1620 {
1621 return (A.data[A_index_x] * B.data[B_index_x] + A.data[A_index_y] * B.data[B_index_y] + A.data[A_index_z] * B.data[B_index_z]);
1622 }
1623
1624 template <typename A_type_struct, int A_count, int A_index_x, int A_index_y, int A_index_z, int A_index_w, typename B_type_struct, int B_count, int B_index_x, int B_index_y, int B_index_z, int B_index_w>
1625 inline float operator ^(const Subvec4D<A_type_struct, false, A_count, A_index_x, A_index_y, A_index_z, A_index_w>& A, const Subvec4D<B_type_struct, true, B_count, B_index_x, B_index_y, B_index_z, B_index_w>& B)
1626 {
1627 return (A.data[A_index_x] * B.data[B_index_x] + A.data[A_index_y] * B.data[B_index_y] + A.data[A_index_z] * B.data[B_index_z] + A.data[A_index_w] * B.data[B_index_w]);
1628 }
1629
1630 template <typename A_type_struct, int A_count, int A_index_x, int A_index_y, int A_index_z, int A_index_w, typename B_type_struct, int B_count, int B_index_x, int B_index_y, int B_index_z>
1631 inline float operator ^(const Subvec4D<A_type_struct, false, A_count, A_index_x, A_index_y, A_index_z, A_index_w>& A, const Subvec3D<B_type_struct, true, B_count, B_index_x, B_index_y, B_index_z>& B)
1632 {
1633 return (A.data[A_index_x] * B.data[B_index_x] + A.data[A_index_y] * B.data[B_index_y] + A.data[A_index_z] * B.data[B_index_z]);
1634 }
1635
1636 template <typename A_type_struct, int A_count, int A_index_x, int A_index_y, int A_index_z, typename B_type_struct, int B_count, int B_index_x, int B_index_y, int B_index_z, int B_index_w>
1637 inline float operator ^(const Subvec3D<A_type_struct, false, A_count, A_index_x, A_index_y, A_index_z>& A, const Subvec4D<B_type_struct, true, B_count, B_index_x, B_index_y, B_index_z, B_index_w>& B)
1638 {
1639 return (A.data[A_index_x] * B.data[B_index_x] + A.data[A_index_y] * B.data[B_index_y] + A.data[A_index_z] * B.data[B_index_z]);
1640 }
1641
1642
1643 template <typename type_struct, int index_00, int index_01, int index_10, int index_11>
1644 struct ConverterMatrix2D
1645 {
1646 typedef typename type_struct::component_type component_type;
1647 typedef typename type_struct::matrix2D_type matrix2D_type;
1648 typedef typename type_struct::matrix2D_type const_matrix2D_type;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected