46 int data_entry_id,
const CornerIndex ci,
const CornerTableT *table,
47 const std::vector<int32_t> &vertex_to_data_map,
const DataTypeT *in_data,
48 int num_components, DataTypeT *out_prediction) {
50 if (oci == kInvalidCornerIndex) {
53 int vert_opp, vert_next, vert_prev;
55 &vert_opp, &vert_next, &vert_prev);
56 if (vert_opp < data_entry_id && vert_next < data_entry_id &&
57 vert_prev < data_entry_id) {
59 const int v_opp_off = vert_opp * num_components;
60 const int v_next_off = vert_next * num_components;
61 const int v_prev_off = vert_prev * num_components;
62 for (
int c = 0; c < num_components; ++c) {
63 const int64_t in_data_next_off = in_data[v_next_off + c];
64 const int64_t in_data_prev_off = in_data[v_prev_off + c];
65 const int64_t in_data_opp_off = in_data[v_opp_off + c];
66 const int64_t result =
67 (in_data_next_off + in_data_prev_off) - in_data_opp_off;
69 out_prediction[c] =
static_cast<DataTypeT
>(result);
bool ComputeParallelogramPrediction(int data_entry_id, const CornerIndex ci, const CornerTableT *table, const std::vector< int32_t > &vertex_to_data_map, const DataTypeT *in_data, int num_components, DataTypeT *out_prediction)
Definition mesh_prediction_scheme_parallelogram_shared.h:45
void GetParallelogramEntries(const CornerIndex ci, const CornerTableT *table, const std::vector< int32_t > &vertex_to_data_map, int *opp_entry, int *next_entry, int *prev_entry)
Definition mesh_prediction_scheme_parallelogram_shared.h:28