01 Июля 2025, 13:37:44
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Навигация по форуму







guest3d
Просмотр сообщений
[1]
 1  Quest3D / Программирование / current directory или как в ODBC указать относительный путь? : 08 Июня 2011, 10:27:26
Подключаю аксессовскую базу, в DB DriverODBC пишу

DBQ=D:\Quest3D\db.accdb;Driver={Microsoft Access Driver (*.mdb, *.accdb)};DriverId=25;FIL=MS Access;FILEDSN=D:\Quest3D\db.accdb.dsn;MaxBufferSize=2048;PageTimeout=5;

Всё работает, но нужно поменять абсолютный путь на относительный, попробывал:

DBQ=db.accdb; и т.п. не находит базу.

первая мысль была узнать текущую папку и подставить в текст.
но как узнать текущую папку, тоже так и не нашёл.

ктонить сталкивался?
 2  Quest3D / Программирование / Re: OO Member type: channel - как с ним работать : 30 Мая 2011, 15:23:54
всем спасибо.

Пока оставлю так, а потом посмотрим.

Для конкретно моей задачи склоняюсь делать класс, а в нём member channel array , а в нём указатели... как то в этом направлении.
 3  Quest3D / Программирование / Re: GUI ListBox. Два списка вместе не работают. : 30 Мая 2011, 15:01:32
Alteste, к сожалению это не мне решать. Но видимо как сталкнёмся с эти так и.

DimiS Это первое, что я хотел сделать. Но в списке ченелов нету ListBox. Есть GUI...
погоди. или этот гуи и добавлять, а использовать как List?

upd:

Всё оказалось просто.

В OOEditore добавляем мембер GUI, а в колонке Value - два раза щёлкаем и выбираем ListBox.

(после этого они стали отображаться как кнопки... после пересоздания инстансов - всё заработало окэйно!)

спасибо.
 4  Quest3D / Программирование / GUI ListBox. Два списка вместе не работают. : 30 Мая 2011, 14:11:27
На ООП сделал класс ListBox.
Два instans'a.
По одному - всё работает.
Когда включаю оба на экране - перестают работать.
Их видно, но мышка не нажимает(не выбирает).
А еще иногда синее выделение скачит от одного к другому.
Будто бы фокус скачит.

что с этим делать?..

вот функция отрисовки с OOEdit'orom
http://img691.imageshack.us/img691/439/killmey.jpg

 5  Quest3D / Программирование / Re: OO Member type: channel - как с ним работать : 27 Мая 2011, 12:48:26
А вот это уже интереснее  Смеющийся
Sqwer, всё понял.

А еденичный указатель можно получить/хранить?
 6  Quest3D / Программирование / Re: OO Member type: channel - как с ним работать : 27 Мая 2011, 07:35:34
еще раз спасибо, понятно, что многое мне еще не ведомо )))

А можно как нибудь получить просто некую ссылку на канал, а её уже в массив и с через неё работать? это был бы самый тот вариант.
 7  Quest3D / Программирование / Re: OO Member type: channel - как с ним работать : 26 Мая 2011, 15:06:21
dfx, да.

Но больше чем буфер меня волнует то, что копируются(дублируются) ВСЕ данные, проходящие через это.

т.е. если пропустить десять ObjectData по 10 мб, итого 100 мегабайт, то если я правильно понимаю они все продублируются. И в памяти будет 100мб + 100мб копии+ 10мб буфер...

Может как то можно убить каналы в cdr не по настоящему  Смеющийся
Т.е. чтоб в самом файле они были, а при проигрывании убивались. в общем я запутался.

Будут еще идеи?..
 8  Quest3D / Программирование / Re: OO Member type: channel - как с ним работать : 26 Мая 2011, 10:40:22
Corpic, спасибо - всё отлично копируется!

С ООП разобрался.
вот пример простой сцены сделал:
http://narod.ru/disk/14074062001/OO.zip.html

В ней два класса:
http://img843.imageshack.us/img843/5332/36429941.jpg

В классе менеджера есть список, в котором храним c3DO, который как раз хранит member Channel:3D ObjectData

менеджер также имеет функциию insert_3DO с параметром ObjectData.
Вот тут показан вызов функций, где параметром передаются три ObjectData, которые были экспортированы из 3Dmax'a
http://img831.imageshack.us/img831/6623/97587063.jpg

Сама функция добавления:
http://img135.imageshack.us/img135/2857/16325000.jpg

Смысл такой:
Создаём новый экземпляр класса и ложим в контейнер, получая индекс.
По этому индексу получаем ССЫЛКУ на элемент списка по полученному индексу.
Ну и по рецепту Corpic'а через буффер копируем, используя полученную ссылку на добавленный экземпляр класса из списка.

вроде всё.
всем спасибо  Смеющийся
 9  Quest3D / Программирование / Re: OO Member type: channel - как с ним работать : 24 Мая 2011, 07:58:25
Devastor, пасибо - получилось.

Corpic, а поподробней можно?
что за буфер? буфер обмена?
и как его вставлять в OO Class Instances List?
 10  Quest3D / Логика / Re: Глюк с DetectMouseCollision или кривые руки? : 24 Мая 2011, 07:56:09
Corpic, пасибо.
 11  Quest3D / Логика / Re: Глюк с DetectMouseCollision или кривые руки? : 23 Мая 2011, 12:56:05
CollisionRayCheck, работает точно так же. не считает перекрытия...
можно задаь много колижнобжектов, и он возвращает номер объекта. а если их количество динамически меняется, как в этом случае быть?
 12  Quest3D / Логика / Re: Глюк с DetectMouseCollision или кривые руки? : 23 Мая 2011, 10:14:46
А есть возможность простого перевода координат мышки в 3Д координаты в пространстве для CollisionRayCheck??

upd
нашёл тут:
C:\Program Files (x86)\Quest3D\Quest3D 4.0.0\Examples\Advanced\Pick mesh with mouse.cgr
 Смеющийся
 13  Quest3D / Программирование / OO Member type: channel - как с ним работать : 22 Мая 2011, 12:35:44
Привет! такой вопрос.
У member у класса по мимо vector, value и т.п. есть еще Channel. например такой:
http://img807.imageshack.us/img807/895/26804457.jpg
Вопрос как с ним работать. Конкретно как у экземпляру присвоить конкретное значение.

Для примера накидал сценку. Полочки с коробочками.
Хочется геометрию, то есть канал 3Dobject чтобы был членом класса. При рендеринге пробегать по массиву объектов и вызывать 3Dobject от туда.

сцену можно скачать тут: http://narod.ru/disk/13627824001/q.rar.html

вот OOEditor:
http://img807.imageshack.us/img807/895/26804457.jpg

это каналы геометрии:
http://img823.imageshack.us/img823/9733/10507713.jpg
там Box_red стоит отдельно внизу. вот конкретно его и хочется убрать в объект

вот сам главный цикл:
http://img849.imageshack.us/img849/3982/78552614.jpg

правая ветка рендеринг,левая что-то вроде инициализации.
Нас интересует 3Dobj->3Do
справа он участвует в рендеринге,
а слева он "повис в воздухе", и что с ним делать не понятно.
рядышком висит ярлык на "BOX red", который и нужно толи скопировать туда, толи не понятно.

для Value например есть канал SetValue, он копирует из одного Value в другой. а как скопировать 3D object.
Может даже лучше не копировать, ярлык прямо в класс зачунуть.
в общем Help!

в результате должна получиться такая картинка:
http://img195.imageshack.us/img195/4904/66975243.jpg
только наш BOX red на самом деле синенький  Смеющийся

вот
[1]