Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.63
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

Парсер collada своими руками - C++

27.11.2012, 09:52. Просмотров 1096. Ответов 8
Метки нет (Все метки)

За рекурсивный парсинг берусь впервые, поэтому просьба "Ересь!" громко не орать и в теме не обзываться. В этом направлении я новичок. Пусть имеется функция с прототипом
C++
1
BOOL Parse(char *Tag);
. Пусть при попытке парсинга корня Tag="COLLADA", для <asset> непосредственно в корне Tag=COLLADA/asset, для <contributor> в нём Tag="COLLADA/asset/contributor" и так далее, а для <library_animations> в корне Tag="COLLADA/library_animations". И пусть эта функция вызвана с Tag=COLLADA/asset. Как мне найти завершающий тег?

Добавлено через 5 минут
Чего в прототипе не хватает с учётом того, что эта функция находится в dll и должна сама вернуть загруженную модель оскелеченного персонажа? Какие мне понадобятся теги, если анимация должна быть основана на рассчёте кинематики в самой игре?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2012, 09:52     Парсер collada своими руками
Посмотрите здесь:

Паинт своими руками - C++
Пишу свой паинт (точнее написал) но встала задача переписать его без использования типа данных HDC (указатель контекстного...

Ассоциативный массив своими руками - C++
Подскажите, пожалуйста, как реализовать такую конструкцию: array = 324;

pdf reader своими руками - C++
Прошу помощи. Нужна любая информация, которая поможет написать простейший pdf reader на C++, примеры, советы, что угодно, что может...

Умный указатель своими руками - C++
Доброго времени суток. Изобразил следующую структуру: имеется класс-контейнер, фактически обертка для одномерного массива. И...

Двунаправленный список своими руками, нарушение доступа на чтение - C++
Делаю лабу по двунаправленному списку Сделал добавление и отображение, но получаю исключение &quot;По такому-то адресу нет доступа на чтение&quot; ...

Чем классы-исключения библиотеки могуть быть полезнее классов-исключений написанных своими руками - C++
Чем классы-исключения библиотеки могуть быть полезнее классов-исключений написанных своими руками + Какое исключение может...

MFC : CBitmap "своими руками" (из файла/генерация on-the-fly...) - C++
Вот в чем вопрос... Необходимол в окошке отрисовать картинку из файла. Как сделать самодельный класс, загружающий изображение из файла в...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3144 / 1946 / 214
Регистрация: 13.01.2012
Сообщений: 7,438
27.11.2012, 11:39     Парсер collada своими руками #2
ничего не понял. в строке Tag=COLLADA/asset/contributor нужно найти contributor? ищите последнее вхождение / и возвращайте подстроку начиная с позиции / плюс один и до конца строки.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
27.11.2012, 12:21  [ТС]     Парсер collada своими руками #3
Цитата Сообщение от vxg Посмотреть сообщение
в строке Tag=COLLADA/asset/contributor нужно найти contributor?
Нет конечно. В файле
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<author>%CC%E0%F0%E0%F2</author>
<authoring_tool>3dsMax 9 - Feeling …</authoring_tool>
<comments>ColladaMax Export Options…;</comments>
<source_data>file:///E:/My%...</source_data>
</contributor>
<created>2010-09-12T13:44:09Z</created>
<modified>2010-09-12T13:44:10Z</modified>
<unit meter="1" name="meter"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_animations>
<animation id="Bip01_L_UpperArm-node-transform">
<... и т.д.>
</library_animations>
 
</COLLADA>
надо найти </asset>.
vxg
Модератор
3144 / 1946 / 214
Регистрация: 13.01.2012
Сообщений: 7,438
27.11.2012, 12:39     Парсер collada своими руками #4
ну взять найти <asset>, выделить от него все до </asset>, а внутри уже копаться.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
27.11.2012, 13:21  [ТС]     Парсер collada своими руками #5
А он может повторяться в <COLLADA>, или вкладываться сам в себя?
Пaтрик
415 / 390 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
27.11.2012, 13:27     Парсер collada своими руками #6
Цитата Сообщение от taras atavin Посмотреть сообщение
А он может повторяться в <COLLADA>, или вкладываться сам в себя?
Может повторяться.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
27.11.2012, 15:13  [ТС]     Парсер collada своими руками #7
А вкладываться?

Добавлено через 35 секунд
И мне бы пример коллады с костями.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
27.11.2012, 18:05     Парсер collada своими руками #8
taras atavin, А как насчет взять любой xml парсер и посмотреть как там реализовано? Или использовать уже готовое.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2012, 05:28     Парсер collada своими руками
Еще ссылки по теме:

Следующая строка, ввод руками - C++
Я создал поле ввода текста в программе, и в нём тестирую символы. Возник вопросы, а возможно ли ввести символ \r и \n при помощи Alt+???...

Работа со СВОИМИ файлами - C++
Имеется текстовый редактор, который сохраняет в свой формат *буквы Необходимо установить всем этим файлам свой значок и ассоциацию с...

Полиморфизм своими словами - C++
Дайте определения полиморфизма своими слова. А так же примерчик, который ярко выражает полиморфизм. Спасибо.

Написание GUI руками, без привлечения специализированных фреймворков - нужно ли и если да, то в каких случаях? - C++
Хочется узнать мнение гуру по поводу написания GUI руками.Можно ли реально от этого выиграть в скорости работы программы и как это...

Треугольник задан своими сторонами а, b, с в С++ - C++
Треугольник задан своими сторонами а, b, с. Найти: 1). Проверить можно ли из этих сторон построить треугольник; 2)....


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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
28.11.2012, 05:28  [ТС]     Парсер collada своими руками #9
Разбираться одновременно с базовым языком, форматом COLLADA, чужим парсером и заложенной в него структурой модели - более обширная задача. Каким образом на неё уйдёт меньше времени? Причём, от тегов COLLADA так не уйдёшь, а с ними может я и сам напишу. Плай же больших проблем не вызвал и готовый загрузчик для этого не понадобился.
Yandex
Объявления
28.11.2012, 05:28     Парсер collada своими руками
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru