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

Class Mat3D

TSAlgebra.h:2399–2489  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2397 typedef typename type_struct::row_type_struct row_type_struct;
2398
2399 union
2400 {
2401 Component<type_struct, 4, 0> m00;
2402 Component<type_struct, 4, 1> m10;
2403 Component<type_struct, 4, 2> m01;
2404 Component<type_struct, 4, 3> m11;
2405 Subvec2D<column_type_struct, 4, 0, 1> col0;
2406 Subvec2D<column_type_struct, 4, 2, 3> col1;
2407 Subvec2D<row_type_struct, 4, 0, 2> row0;
2408 Subvec2D<row_type_struct, 4, 1, 3> row1;
2409 Submat2D<type_struct, 4, 0, 2, 1, 3> matrix;
2410 Submat2D<type_struct, 4, 0, 1, 2, 3> transpose;
2411 };
2412
2413 protected:
2414
2415 inline Mat2D() = default;
2416
2417 Mat2D(const Mat2D& m)
2418 {
2419 matrix = m.matrix;
2420 }
2421
2422 Mat2D(const component_type& n00, const component_type& n01, const component_type& n10, const component_type& n11)
2423 {
2424 matrix.Set(n00, n01, n10, n11);
2425 }
2426
2427 public:
2428
2429 component_type& operator ()(machine i, machine j)
2430 {
2431 return (matrix.data[j * 2 + i]);
2432 }
2433
2434 const component_type& operator ()(machine i, machine j) const
2435 {
2436 return (matrix.data[j * 2 + i]);
2437 }
2438
2439 typename column_type_struct::vector2D_type& operator [](machine j)
2440 {
2441 return (reinterpret_cast<typename column_type_struct::vector2D_type&>(matrix.data[j * 2]));
2442 }
2443
2444 const typename column_type_struct::vector2D_type& operator [](machine j) const
2445 {
2446 return (reinterpret_cast<const typename column_type_struct::vector2D_type&>(matrix.data[j * 2]));
2447 }
2448
2449 Mat2D& operator =(const Mat2D& m)
2450 {
2451 matrix = m.matrix;
2452 return (*this);
2453 }
2454
2455 void operator =(const Mat2D& m) volatile
2456 {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected