15#ifndef DRACO_COMPRESSION_ATTRIBUTES_PREDICTION_SCHEMES_PREDICTION_SCHEME_WRAP_TRANSFORM_BASE_H_
16#define DRACO_COMPRESSION_ATTRIBUTES_PREDICTION_SCHEMES_PREDICTION_SCHEME_WRAP_TRANSFORM_BASE_H_
40template <
typename DataTypeT>
63 const DataTypeT *predicted_val)
const {
65 if (predicted_val[i] > max_value_) {
66 clamped_value_[i] = max_value_;
67 }
else if (predicted_val[i] < min_value_) {
68 clamped_value_[i] = min_value_;
70 clamped_value_[i] = predicted_val[i];
73 return clamped_value_.data();
85 static_cast<int64_t
>(max_value_) -
static_cast<int64_t
>(min_value_);
86 if (dif < 0 || dif >= std::numeric_limits<DataTypeT>::max()) {
89 max_dif_ = 1 +
static_cast<DataTypeT
>(dif);
90 max_correction_ = max_dif_ / 2;
91 min_correction_ = -max_correction_;
92 if ((max_dif_ & 1) == 0) {
99 inline DataTypeT
min_value()
const {
return min_value_; }
101 inline DataTypeT
max_value()
const {
return max_value_; }
103 inline DataTypeT
max_dif()
const {
return max_dif_; }
109 DataTypeT min_value_;
110 DataTypeT max_value_;
112 DataTypeT max_correction_;
113 DataTypeT min_correction_;
115 mutable std::vector<DataTypeT> clamped_value_;
#define DRACO_DCHECK(x)
Definition macros.h:80
Definition attribute_octahedron_transform.cc:21
PredictionSchemeTransformType
Definition compression_shared.h:96
@ PREDICTION_TRANSFORM_WRAP
Definition compression_shared.h:103