1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
use crate::aliases::{ TMat2, TMat2x3, TMat2x4, TMat3, TMat3x2, TMat3x4, TMat4, TMat4x2, TMat4x3, TVec2, TVec3, TVec4, }; use crate::traits::Number; /// Builds a 2x2 diagonal matrix. /// /// # See also: /// /// * [`diagonal2x3`](fn.diagonal2x3.html) /// * [`diagonal2x4`](fn.diagonal2x4.html) /// * [`diagonal3x2`](fn.diagonal3x2.html) /// * [`diagonal3x3`](fn.diagonal3x3.html) /// * [`diagonal3x4`](fn.diagonal3x4.html) /// * [`diagonal4x2`](fn.diagonal4x2.html) /// * [`diagonal4x3`](fn.diagonal4x3.html) /// * [`diagonal4x4`](fn.diagonal4x4.html) pub fn diagonal2x2<N: Number>(v: &TVec2<N>) -> TMat2<N> { TMat2::from_diagonal(v) } /// Builds a 2x3 diagonal matrix. /// /// # See also: /// /// * [`diagonal2x2`](fn.diagonal2x2.html) /// * [`diagonal2x4`](fn.diagonal2x4.html) /// * [`diagonal3x2`](fn.diagonal3x2.html) /// * [`diagonal3x3`](fn.diagonal3x3.html) /// * [`diagonal3x4`](fn.diagonal3x4.html) /// * [`diagonal4x2`](fn.diagonal4x2.html) /// * [`diagonal4x3`](fn.diagonal4x3.html) /// * [`diagonal4x4`](fn.diagonal4x4.html) pub fn diagonal2x3<N: Number>(v: &TVec2<N>) -> TMat2x3<N> { TMat2x3::from_partial_diagonal(v.as_slice()) } /// Builds a 2x4 diagonal matrix. /// /// # See also: /// /// * [`diagonal2x2`](fn.diagonal2x2.html) /// * [`diagonal2x3`](fn.diagonal2x3.html) /// * [`diagonal3x2`](fn.diagonal3x2.html) /// * [`diagonal3x3`](fn.diagonal3x3.html) /// * [`diagonal3x4`](fn.diagonal3x4.html) /// * [`diagonal4x2`](fn.diagonal4x2.html) /// * [`diagonal4x3`](fn.diagonal4x3.html) /// * [`diagonal4x4`](fn.diagonal4x4.html) pub fn diagonal2x4<N: Number>(v: &TVec2<N>) -> TMat2x4<N> { TMat2x4::from_partial_diagonal(v.as_slice()) } /// Builds a 3x2 diagonal matrix. /// /// # See also: /// /// * [`diagonal2x2`](fn.diagonal2x2.html) /// * [`diagonal2x3`](fn.diagonal2x3.html) /// * [`diagonal2x4`](fn.diagonal2x4.html) /// * [`diagonal3x3`](fn.diagonal3x3.html) /// * [`diagonal3x4`](fn.diagonal3x4.html) /// * [`diagonal4x2`](fn.diagonal4x2.html) /// * [`diagonal4x3`](fn.diagonal4x3.html) /// * [`diagonal4x4`](fn.diagonal4x4.html) pub fn diagonal3x2<N: Number>(v: &TVec2<N>) -> TMat3x2<N> { TMat3x2::from_partial_diagonal(v.as_slice()) } /// Builds a 3x3 diagonal matrix. /// /// # See also: /// /// * [`diagonal2x2`](fn.diagonal2x2.html) /// * [`diagonal2x3`](fn.diagonal2x3.html) /// * [`diagonal2x4`](fn.diagonal2x4.html) /// * [`diagonal3x2`](fn.diagonal3x2.html) /// * [`diagonal3x4`](fn.diagonal3x4.html) /// * [`diagonal4x2`](fn.diagonal4x2.html) /// * [`diagonal4x3`](fn.diagonal4x3.html) /// * [`diagonal4x4`](fn.diagonal4x4.html) pub fn diagonal3x3<N: Number>(v: &TVec3<N>) -> TMat3<N> { TMat3::from_diagonal(v) } /// Builds a 3x4 diagonal matrix. /// /// # See also: /// /// * [`diagonal2x2`](fn.diagonal2x2.html) /// * [`diagonal2x3`](fn.diagonal2x3.html) /// * [`diagonal2x4`](fn.diagonal2x4.html) /// * [`diagonal3x2`](fn.diagonal3x2.html) /// * [`diagonal3x3`](fn.diagonal3x3.html) /// * [`diagonal4x2`](fn.diagonal4x2.html) /// * [`diagonal4x3`](fn.diagonal4x3.html) /// * [`diagonal4x4`](fn.diagonal4x4.html) pub fn diagonal3x4<N: Number>(v: &TVec3<N>) -> TMat3x4<N> { TMat3x4::from_partial_diagonal(v.as_slice()) } /// Builds a 4x2 diagonal matrix. /// /// # See also: /// /// * [`diagonal2x2`](fn.diagonal2x2.html) /// * [`diagonal2x3`](fn.diagonal2x3.html) /// * [`diagonal2x4`](fn.diagonal2x4.html) /// * [`diagonal3x2`](fn.diagonal3x2.html) /// * [`diagonal3x3`](fn.diagonal3x3.html) /// * [`diagonal3x4`](fn.diagonal3x4.html) /// * [`diagonal4x3`](fn.diagonal4x3.html) /// * [`diagonal4x4`](fn.diagonal4x4.html) pub fn diagonal4x2<N: Number>(v: &TVec2<N>) -> TMat4x2<N> { TMat4x2::from_partial_diagonal(v.as_slice()) } /// Builds a 4x3 diagonal matrix. /// /// # See also: /// /// * [`diagonal2x2`](fn.diagonal2x2.html) /// * [`diagonal2x3`](fn.diagonal2x3.html) /// * [`diagonal2x4`](fn.diagonal2x4.html) /// * [`diagonal3x2`](fn.diagonal3x2.html) /// * [`diagonal3x3`](fn.diagonal3x3.html) /// * [`diagonal3x4`](fn.diagonal3x4.html) /// * [`diagonal4x2`](fn.diagonal4x2.html) /// * [`diagonal4x4`](fn.diagonal4x4.html) pub fn diagonal4x3<N: Number>(v: &TVec3<N>) -> TMat4x3<N> { TMat4x3::from_partial_diagonal(v.as_slice()) } /// Builds a 4x4 diagonal matrix. /// /// # See also: /// /// * [`diagonal2x2`](fn.diagonal2x2.html) /// * [`diagonal2x3`](fn.diagonal2x3.html) /// * [`diagonal2x4`](fn.diagonal2x4.html) /// * [`diagonal3x2`](fn.diagonal3x2.html) /// * [`diagonal3x3`](fn.diagonal3x3.html) /// * [`diagonal3x4`](fn.diagonal3x4.html) /// * [`diagonal4x2`](fn.diagonal4x2.html) /// * [`diagonal4x3`](fn.diagonal4x3.html) pub fn diagonal4x4<N: Number>(v: &TVec4<N>) -> TMat4<N> { TMat4::from_diagonal(v) }