Noortvel , нужно больше информации.
Дай краткое определение типов и функции GetAnimInstance. Так же будет полезным увидеть окружение и обоснование необходимости приведения типа.
Nexeon , XCode :)
Маршалинг типов из ObjC/Swift в C++ и обратно делается куда проще, чем в JNI/JNA/Jni++. Clang умеет сплетать код высокого и низкого уровней в красивую конструкцию. Поэтому для разработки на C++ для iOS кроме XCode толком больше ничего не надо.
PeroPero , неа, не так. :)
Давай на примере с этим самым квадратом и этой анимацией. Скажем, за 1 секунду квадрат перемещается на 10 точек по оси X.
Это будет означать таймлайн ровно с одним ключевым кадром. Таймлайн измеряется в относительных величинах: 0.0 - это начало, 1.0 - это конец вне зависимости от времени анимации. Время задается отдельно от таймлайна и спокойно может меняться прямо в рантайме.
На таймлайне будет стоять ровно один ключевой кадр - в 1.0 в инструкцией вида "хочу быть смещен на (10.0, 0.0, 0.0)".
Представление данных может быть примерно таким: Таймлайн - это структура из вещественного числа (длительность анимации) и вектора ключевых кадров. Ключевой кадр - это структура из вещественного числа (относительное время начала) и инструкции в виде математического вектора.
Когда ты запускаешь анимацию, ключевой кадр в 0.0 говорит тебе задать начальное состояние объекта. Дальше ты считаешь время анимации, на каждом тике обновления считаешь точное относительное время анимации и на таймлайне всегда смотришь на следующий по таймлайну кадр. В процессе анимации выполняется ближайший следующий ключевой кадр.
Т.е. ты идешь по таймлайну из нашего примера, смотришь на единственный и последний кадр, берешь вектор смещения, множишь его на дельту времени с прошлого тика обновления и прибавляешь к трансформации квадрата.
Чаще всего анимации выглядят так, чаще всего в них хранятся инструкции преобразования в локальной системе координат анимируемого объекта. Чаще всего SRT трансформацию раскладывают по именованным таймлайнам и применяют к объекту в правильном порядке.
nazandr , вот бы еще знать, что же скрывается за этой туманной завесой терминов "раюотает" и "не работает".
Что в этих словах кроется? Исклюение? Неправильная работа функции? Разверзнутые небеса с армией ангелов?
Я подозреваю что это из-за того что в памяти находятся две копии данных, но адреса то у них разные.
Не в этом. Статическая переменная внутри образа приложения размечается на пространстве его образа, статическая переменная внутри динамической библиотеки размечается внутри ее образа. Это две разные переменные с точки зрения памяти.
Проблема в другом.
Тебе не удалось собрать минимальный воспроизводящий пример именно потому что проблема не в этих std::string-ах, а в том, как, может быть, с ними работают элементы статической библиотеки.
Тут полный полет фантазии, все ответы есть только у тебя, т.к. только у тебя имеется исходный код.
hound406 , пара замечаний.
Первое, суть вопроса вообще не проглядывается. Согласно текущей постановке вопроса, на него ответить в состоянии только ты. Т.е. только ты можешь принять решение о дизайне базового класса исходя из известной только тебе ситуации.
Второе, согласно твоему ответу Лорри, ты хочешь реализовать полиморфное конфигурирование. Посмотри в сторону декомпозиции и компонентного подхода. Так, может оказаться, тебе будет удобнее.
synapse_people , глянь вот на это : https://github.com/mxgmn/WaveFunctionCollapse
Думаю, тебе будет полезно почитать этот код.
А вообще, шум Перлина - не тот механизм чтобы реки создавать. Клеточные автоматы, Square-Diamond и волновой алгоритм (поиск в ширину) куда удобнее будут.
NDK - это не средство разработки ПО на Android. NDK - это средство реализации критичных к производительности участков кода. У NDK есть JNI и возможность запросить выполнение кода высокого уровня, но в более-менее большой задаче с JNI можно легко захлебнуться.
Скорее всего у тебя ошибка в выборе инструмента разработки.
Дмитрий , за то каждый из 2-4-8 процессов компилятора еще по 2 может скушать.
Я работаю в MSVC++2015. В сторону i3-i5 не смотрю в силу специфики моей работы. На борту только топовые модели i7 большим разгоном и от 16ГБ топовой оперативы.
Так вот, сборка моих проектов задействует все 8 ядер на 100% и до 12ГБ оперативы. В спокойное время у меня работает несколько инстанций MSVS вместе с Android Studio, что вместе с системой и рутиной потребляет от 5ГБ оперативы.
Такие дела...
Tash1moto , ты лучше опиши цели твоего интереса. Если цель "просто интересно" - то ответ: "Такого в C++ нет".
Поэтому... Определи свои цели в своем вопросе.
MikhailTo , так в чем тебе помочь то?
На каком языке выполнен сам алгоритм? Мониторинг состояния переменных алгоритма нужен?
А самое главное - для чего тебе это надо?
Дай краткое определение типов и функции GetAnimInstance. Так же будет полезным увидеть окружение и обоснование необходимости приведения типа.