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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.63
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
27.11.2012, 09:52     Парсер collada своими руками #1
За рекурсивный парсинг берусь впервые, поэтому просьба "Ересь!" громко не орать и в теме не обзываться. В этом направлении я новичок. Пусть имеется функция с прототипом
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++ Работа со СВОИМИ файлами
C++ pdf reader своими руками
MFC : CBitmap "своими руками" (из файла/генерация on-the-fly...) C++
C++ Паинт своими руками
C++ умный указатель своими руками
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2639 / 1650 / 156
Регистрация: 13.01.2012
Сообщений: 6,212
27.11.2012, 11:39     Парсер collada своими руками #2
ничего не понял. в строке Tag=COLLADA/asset/contributor нужно найти contributor? ищите последнее вхождение / и возвращайте подстроку начиная с позиции / плюс один и до конца строки.
taras atavin
Ушёл с форума.
 Аватар для 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
Модератор
 Аватар для vxg
2639 / 1650 / 156
Регистрация: 13.01.2012
Сообщений: 6,212
27.11.2012, 12:39     Парсер collada своими руками #4
ну взять найти <asset>, выделить от него все до </asset>, а внутри уже копаться.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
27.11.2012, 13:21  [ТС]     Парсер collada своими руками #5
А он может повторяться в <COLLADA>, или вкладываться сам в себя?
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
27.11.2012, 13:27     Парсер collada своими руками #6
Цитата Сообщение от taras atavin Посмотреть сообщение
А он может повторяться в <COLLADA>, или вкладываться сам в себя?
Может повторяться.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
27.11.2012, 15:13  [ТС]     Парсер collada своими руками #7
А вкладываться?

Добавлено через 35 секунд
И мне бы пример коллады с костями.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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++
C++ Следующая строка, ввод руками
C++ Ассоциативный массив своими руками

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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
 Аватар для 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 своими руками
Ответ Создать тему
Опции темы

Текущее время: 07:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru