Nim FFI: использование существующего типа для переноса типа C ++

Я собираю упаковку Nim для Box2D с помощью c2nim.

Box2D имеет свой собственный класс математического вектора, b2Vec2. Если бы я использовал Box2D в сыром C ++, я бы просто использовал этот класс. Просто.

Но у Нима уже есть такая функциональность в basic2d модуля Vector2d тип.

Я хочу, чтобы интерфейс моей обертки использовал встроенный Vector2d введите так, чтобы пользователям этой оболочки не приходилось мысленно совмещать два разных векторных типа. Это влечет за собой как-то использование Vector2d в качестве интерфейса Nim для b2Vec2, Как я могу это сделать?

Вещи примечания:

  • И то и другое b2Vec2 а также Vector2d сделаны только из двух 32-битных floats. Я не прав. Nim float64-битные.
  • Vector2d является частью стандартной библиотеки Nim, поэтому я не могу изменить ее определение.
  • Я создам обертку для b2Vec2 если я должен, но я бы хотел избежать этого, и я определенно не хочу, чтобы пользователи видели это.

1

Решение

На самом деле, не похоже, что я могу это сделать, по крайней мере, между basic2d.Vector2d а также b2Vec2, Первый состоит из двух 64-разрядных чисел, а второй — из двух 32-разрядных чисел.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]