Welcome to mirror list, hosted at ThFree Co, Russian Federation.

lineart_cpp_bridge.cpp « lineart « intern « gpencil_modifiers « blender « source - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 2a630e696653255bf62810c33cba2e4d9569e720 (plain)
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
#include "BLI_sort.hh"
#include "BLI_vector.hh"
#include "MOD_lineart.h"
#include "lineart_intern.h"

static int cmp_adjacent_items(const LineartAdjacentItem &p1, const LineartAdjacentItem &p2)
{
  int a = (int)p1.v1 - (int)p2.v1;
  int b = (int)p1.v2 - (int)p2.v2;
  return a ? a : b;
}

void lineart_sort_adjacent_items(LineartAdjacentItem *ai, int length)
{
  blender::Vector<LineartAdjacentItem> _ai;
  _ai.reserve(length);
  for (int i = 0; i < length; i++) {
    _ai[i] = ai[i];
    printf("(%d %d %d)", _ai[i].v1, _ai[i].v2, _ai[i].e);
  }
  _ai.resize(length);
  printf("\n");
  std::sort(ai, ai + length, cmp_adjacent_items);
  for (int i = 0; i < length; i++) {
    ai[i] = _ai[i];
    printf("(%d %d %d)", _ai[i].v1, _ai[i].v2, _ai[i].e);
  }
}