Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 0
Регистрация: 16.02.2016
Сообщений: 8
1

Структуры, сериализация, общая архитектура, библиотеки

27.07.2016, 22:52. Показов 425. Ответов 0

Author24 — интернет-сервис помощи студентам
Пишется некий софт с обильными 3D вычислениями. Вектора, матрицы поворота, вот это все. Основная вычислительная часть должна быть кросплатформенной (моно). А GUI у нее вообще нету. GUI вынесено в отдельное (второстепенное) приложение и запланировано в WPF, благо поддержка 3D там уже есть.

Вопрос, собственно, в том, что использовать как базис: System.Windows.Media.Media3D или OpenTk.

С поддержкой System.Windows.Media.Media3D в Mono есть сложности. К OpenGL проект прямого отношения не имеет, во всяком случае в обозримой перспективе. Тянуть лишние зависимости не хотелось бы. Для написания свой велосипеда линейной алгебры я слишком ленив. Кроме того имеющиеся в Media3D и OpenGL сериализовались не совсем так как я хотел.

И ведь близок локоть: что в OpenTK, что в Media3D - просто структура с тремя float полями и кучей функций, большей частью очень похожих. Но вариантных записей, как в Delphi, в C# не предусмотрено, увы.

Поэтому я решил пойти в обход и храбро написал
C#
1
2
3
4
5
    public struct Vector3D
    {
        public float X, Y, Z;
        public static explicit operator OpenTK.Vector3(Vector3D p) {..}
        public static explicit operator Vector3D(OpenTK.Vector3 v) {..}
и так далее, для всех значимых для меня структур. В принципе все операции типа умножения матриц и т.п. можно было бы упаковать в методы-враперы, и тогда снаружи мои обертки выглядели бы вполне независимыми от OpenTK, однако как-то все это монструозно. И кроме того, если для каждого пчиха создавать новый клон структуры - на производительности это положительно не скажется, как мне кажется.

Т.е. хочется некий легковесный врапер поверх имеющихся структур.
Ну или хотя-бы возможность глобально заявить что-то вроде
C#
1
using MyVector3D = OpenTK.Vector3;
и добавить щепотку методов расширения... И как влиять на сериализацию?

Меня не покидает ощущение что я блуждаю в трех соснах и не вижу чего-то вполне очевидного
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.07.2016, 22:52
Ответы с готовыми решениями:

Архитектура бд библиотеки, FOREIGN KEY не добавляется
Не удаётся создать таблицу copies, ERROR 1215 (HY000): Cannot add foreign key constraint С...

Сериализация структуры
Доброго! Создаю структуру, преобразую ее а байты, а в обратном преобразовании она не полная. ...

Сериализация структуры из массива
Помогите пж..:) есть структура public struct DiskProperties { ...

Сериализация и десериализация структуры
Есть структура с полями string , int. Вся информация пишется в файл.txt, мне нужно сделать...

0
27.07.2016, 22:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.07.2016, 22:52
Помогаю со студенческими работами здесь

Сериализация иерархической стоковой структуры!
Доброго времени суток! Есть вот структура, древовидная. Каждый элемент это строка. Вложенность...

Сериализация структуры для отправки по usb
В общем мне нужно отправить структуру с ПК на мконтроллер по USB, для этого мне посоветовали...

Сериализация структуры и пошаговое считывания данных из файла
Привет всем!!! Проблема следующая: есть класс метод которого генерирует большое количество данных...

В указанном dsn архитектура драйвера и архитектура приложения не соответствуют друг другу
Добрый день. При запуске программы выскакивает вот такая вот ошибка. В чем может быть проблема и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru