@@ -115,10 +115,11 @@ namespace Langulus::Math
115
115
using MemberType = TypeOf<T>;
116
116
static constexpr Count MemberCount = CountOf<T> * 2 ;
117
117
static constexpr auto Default = T::Default;
118
+ using CoalescedType = TVector<MemberType, MemberCount, static_cast <int >(Default)>;
118
119
119
120
union {
120
121
// Useful representation for directly feeding to SIMD
121
- MemberType mArray [MemberCount] {};
122
+ CoalescedType mMinMax {};
122
123
123
124
struct {
124
125
PointType mMin ;
@@ -195,16 +196,16 @@ namespace Langulus::Math
195
196
explicit operator Flow::Code () const ;
196
197
197
198
constexpr auto Embrace (const auto &...) noexcept -> TRange&;
198
- constexpr auto ConstrainBy (const auto &) noexcept -> TRange& ;
199
+ constexpr auto Intersect (const CT::RangeBased auto &) const noexcept -> TRange;
199
200
200
201
auto GetMin () const noexcept -> PointType const &;
201
202
auto GetMax () const noexcept -> PointType const &;
202
203
auto Length () const noexcept -> PointType;
203
204
auto Center () const noexcept -> PointType;
204
205
205
206
constexpr bool IsDegenerate () const noexcept ;
206
- constexpr bool Inside (const PointType&) const noexcept ;
207
- constexpr bool IsInsideHalfClosed (const PointType&) const noexcept ;
207
+ constexpr bool Contains (const PointType&) const noexcept ;
208
+ constexpr bool ContainsHalfClosed (const PointType&) const noexcept ;
208
209
constexpr auto ClampRev (const PointType&) const noexcept -> PointType;
209
210
constexpr auto Clamp (const PointType&) const noexcept -> PointType;
210
211
@@ -252,7 +253,7 @@ namespace Langulus::Math
252
253
// / Operations
253
254
// /
254
255
// / Returns an inverted range
255
- constexpr auto operator - (const CT::RangeBased auto &) noexcept ;
256
+ /* constexpr auto operator - (const CT::RangeBased auto&) noexcept;
256
257
257
258
/// Returns the sum of two ranges
258
259
constexpr auto operator + (const CT::RangeBased auto&, const CT::RangeBased auto&) noexcept;
@@ -326,9 +327,9 @@ namespace Langulus::Math
326
327
constexpr auto operator >= (const CT::ScalarBased auto&, const CT::RangeBased auto&) noexcept;
327
328
328
329
/// Smaller or equal
329
- constexpr auto operator < (const CT::RangeBased auto &, const CT::RangeBased auto &) noexcept ;
330
- constexpr auto operator < (const CT::RangeBased auto &, const CT::ScalarBased auto &) noexcept ;
331
- constexpr auto operator < (const CT::ScalarBased auto &, const CT::RangeBased auto &) noexcept ;
330
+ constexpr auto operator <= (const CT::RangeBased auto&, const CT::RangeBased auto&) noexcept;
331
+ constexpr auto operator <= (const CT::RangeBased auto&, const CT::ScalarBased auto&) noexcept;
332
+ constexpr auto operator <= (const CT::ScalarBased auto&, const CT::RangeBased auto&) noexcept;
332
333
333
334
/// Equal
334
335
constexpr auto operator == (const CT::RangeBased auto&, const CT::RangeBased auto&) noexcept;
@@ -337,7 +338,7 @@ namespace Langulus::Math
337
338
338
339
constexpr auto operator != (const CT::RangeBased auto&, const CT::RangeBased auto&) noexcept;
339
340
constexpr auto operator != (const CT::RangeBased auto&, const CT::ScalarBased auto&) noexcept;
340
- constexpr auto operator != (const CT::ScalarBased auto &, const CT::RangeBased auto &) noexcept ;
341
+ constexpr auto operator != (const CT::ScalarBased auto&, const CT::RangeBased auto&) noexcept;*/
341
342
342
343
} // namespace Langulus::Math
343
344
0 commit comments