ScummVM API documentation
dgBodyMasterList.h
1
/* Copyright (c) <2003-2011> <Julio Jerez, Newton Game Dynamics>
2
*
3
* This software is provided 'as-is', without any express or implied
4
* warranty. In no event will the authors be held liable for any damages
5
* arising from the use of this software.
6
*
7
* Permission is granted to anyone to use this software for any purpose,
8
* including commercial applications, and to alter it and redistribute it
9
* freely, subject to the following restrictions:
10
*
11
* 1. The origin of this software must not be misrepresented; you must not
12
* claim that you wrote the original software. If you use this software
13
* in a product, an acknowledgment in the product documentation would be
14
* appreciated but is not required.
15
*
16
* 2. Altered source versions must be plainly marked as such, and must not be
17
* misrepresented as being the original software.
18
*
19
* 3. This notice may not be removed or altered from any source distribution.
20
*/
21
22
#if !defined(AFX_DGBODYMASTER_LIST_35290_35290_A510_A865B2CC0789__INCLUDED_)
23
#define AFX_DGBODYMASTER_LIST_35290_35290_A510_A865B2CC0789__INCLUDED_
24
25
#include "hpl1/engine/libraries/newton/core/dg.h"
26
27
class
dgBody
;
28
class
dgConstraint
;
29
30
class
dgBodyMasterListCell
{
31
public
:
32
dgConstraint
*m_joint;
33
dgBody
*m_bodyNode;
34
};
35
36
class
dgBodyMasterListRow
:
public
dgList
<dgBodyMasterListCell> {
37
public
:
38
dgBodyMasterListRow
();
39
~
dgBodyMasterListRow
();
40
41
dgBody
*GetBody()
const
{
42
return
m_body;
43
}
44
45
void
RemoveAllJoints();
46
dgListNode *AddJoint(
dgConstraint
*
const
joint,
dgBody
*
const
body);
47
48
void
SortList();
49
50
private
:
51
dgBody
*m_body;
52
53
friend
class
dgBodyMasterList
;
54
};
55
56
class
dgBodyMasterList
:
public
dgList
<dgBodyMasterListRow> {
57
public
:
58
dgBodyMasterList
(
dgMemoryAllocator
*
const
allocator);
59
~
dgBodyMasterList
();
60
61
void
AddBody(
dgBody
*
const
body);
62
void
RemoveBody(
dgBody
*
const
body);
63
void
RemoveConstraint(
dgConstraint
*
const
constraint);
64
void
AttachConstraint(
dgConstraint
*
const
constraint,
dgBody
*
const
body0,
dgBody
*
const
body1);
65
66
dgBodyMasterListRow::dgListNode *FindConstraintLink(
const
dgBody
*
const
body0,
const
dgBody
*
const
body1)
const
;
67
dgBodyMasterListRow::dgListNode *FindConstraintLinkNext(
const
dgBodyMasterListRow::dgListNode *
const
me,
const
dgBody
*
const
body)
const
;
68
69
void
SortMasterList();
70
71
public
:
72
dgUnsigned32 m_constraintCount;
73
};
74
75
#endif
dgBodyMasterList
Definition:
dgBodyMasterList.h:56
dgBody
Definition:
dgBody.h:85
dgList
Definition:
dgList.h:33
dgBodyMasterListRow
Definition:
dgBodyMasterList.h:36
dgMemoryAllocator
Definition:
dgMemory.h:80
dgBodyMasterListCell
Definition:
dgBodyMasterList.h:30
dgConstraint
Definition:
dgConstraint.h:169
engines
hpl1
engine
libraries
newton
physics
dgBodyMasterList.h
Generated on Fri Nov 22 2024 09:17:34 for ScummVM API documentation by
1.8.13