Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ODE составная геометрия [Delphi, Windows]


Kav ©   (2006-08-13 20:15:00) 

не могу понять как присоединить к одному телу несколько геометрий?
может кто знает где об этом можно почитать, или пример какой-нибудь


kavis   (2006-09-22 23:39:00) [1]

если я правильно понял это делается так
Space:= dHashSpaceCreate (nil) ;   //пространство
contactgroup := dJointGroupCreate (0);
dWorldSetQuickStepNumIterations(dWorldID,30 );
dWorldSetCFM (dWorldID,0.001 );
//dWorldSetERP (dWorldID, 0.2);
setlength(Body,kolobmap);
setlength(ODEphysicsgeom,kolobmap);
setlength(ODEphysicsgeom2,kolobmap);
setlength(GeomCUB,kolobmap);
setlength(Geom,kolobmap);
              // 1
for i:=0 to kolobmap-1  do begin
Body[i]    := dBodyCreate (dWorldID);   //создаем в мире тело
GeomCUB[i] := dCreateBox  (0, 1,1,1);   //геометрия
Geom[i]    := dCreateSphere( 0, 3);   //геометрия

//dGeomSetData( Geom[i],                     //  dCreateSphere( 0, 0.3);

ODEphysicsgeom[i]:= dCreateGeomTransform (space);      //создаем геометрию в мире      space
dGeomTransformSetCleanup (ODEphysicsgeom[i],1);  //  режим очистки трансформации геометрии. Если режим очистки установлен в 1, тогда инкапсулированные объекты будут уничтожаться при уничтожении трансформированной геометрии
dGeomTransformSetInfo (ODEphysicsgeom[i], 1);  //

ODEphysicsgeom2[i]:= dCreateGeomTransform (space);      //создаем геометрию в мире      space
dGeomTransformSetCleanup (ODEphysicsgeom2[i],1);  //  режим очистки трансформации геометрии. Если режим очистки установлен в 1, тогда инкапсулированные объекты будут уничтожаться при уничтожении трансформированной геометрии
dGeomTransformSetInfo (ODEphysicsgeom2[i], 1);  //

dGeomTransformSetGeom (ODEphysicsgeom[i], GeomCUB[i] );
dGeomTransformSetGeom (ODEphysicsgeom2[i], Geom[i] );

{void dGeomTransformSetGeom (dGeomID g, dGeomID obj);
Устанавливает геометрию которая будет являться трансформированной геометрией g.
Объект obj не должен принадлежать ни какому пространству и не быть ассоциированным с каким либо телом.
}
dGeomSetPosition( GeomCUB[i],0,0,100);
dGeomSetPosition( Geom[i],0,0,0);
dGeomSetBody (ODEphysicsgeom[i], body[i]);  //Соединяем геометрию с телом
dGeomSetBody (ODEphysicsgeom2[i], body[i]);  //Соединяем геометрию с телом
//Geom[1] :=dCreateBox( Space, 1,1,1);
body[i].mass.mass :=0.70;
//dGeomSetRotation ( Geom[i],
dBodySetPosition(body[i], Kartaob[i][1], Kartaob[i][2], Kartaob[i][3] );
                      end; //for i to kolobmap-1 do begin


dGeomTransformSetGeom   (2006-09-20 07:16:00) [2]

Сделай поиск в примерах отсюда http://www.hypeskeptic.com/Mattias/DelphiODE/по слову dGeomTransformSetGeom.


Slavikkk   (2006-09-19 13:57:00) [3]

А пример можно??


dGeomTransformSetGeom   (2006-08-16 01:28:00) [4]

Это делается через трансформированную геометрию.
dGeomTransformSetGeom


Trimp   (2006-08-15 16:53:00) [5]

Сам с ODE не знаком, но недавно нашёл спецификацию ODE v.0.5 на русском.    

http://ode.org/doc/russian/

Может поможет.


Наверх

Титульная страница Поиск, карта сайта Написать письмо