mirror of
https://git.mirrors.martin98.com/https://github.com/google/draco
synced 2025-04-23 22:30:04 +08:00
45 lines
1.5 KiB
Markdown
45 lines
1.5 KiB
Markdown
## Prediction Wrap Transform
|
|
|
|
### PredictionSchemeWrapTransformBase_ClampPredictedValue()
|
|
|
|
~~~~~
|
|
void PredictionSchemeWrapTransformBase_ClampPredictedValue(predicted_val,
|
|
clamped_value_) {
|
|
num_components = GetNumComponents();
|
|
min_value_ = pred_trasnform_wrap_min[curr_att_dec][curr_att];
|
|
max_value_ = pred_trasnform_wrap_max[curr_att_dec][curr_att];
|
|
for (i = 0; i < num_components; ++i) {
|
|
if (predicted_val[i] > max_value_)
|
|
clamped_value_[i] = max_value_;
|
|
else if (predicted_val[i] < min_value_)
|
|
clamped_value_[i] = min_value_;
|
|
else
|
|
clamped_value_[i] = predicted_val[i];
|
|
}
|
|
}
|
|
~~~~~
|
|
{:.draco-syntax}
|
|
|
|
|
|
### PredictionSchemeWrapDecodingTransform_ComputeOriginalValue()
|
|
|
|
~~~~~
|
|
void PredictionSchemeWrapDecodingTransform_ComputeOriginalValue(
|
|
predicted_vals, corr_vals, out_original_vals) {
|
|
num_components = GetNumComponents();
|
|
min = pred_trasnform_wrap_min[curr_att_dec][curr_att];
|
|
max = pred_trasnform_wrap_max[curr_att_dec][curr_att];
|
|
max_dif_ = 1 + max - min;
|
|
PredictionSchemeWrapTransformBase_ClampPredictedValue(predicted_vals,
|
|
clamped_vals);
|
|
for (i = 0; i < num_components; ++i) {
|
|
out_original_vals[i] = clamped_vals[i] + corr_vals[i];
|
|
if (out_original_vals[i] > max)
|
|
out_original_vals[i] -= max_dif_;
|
|
else if (out_original_vals[i] < min)
|
|
out_original_vals[i] += max_dif_;
|
|
}
|
|
}
|
|
~~~~~
|
|
{:.draco-syntax}
|