@@ -119,24 +119,21 @@ inline ContactResult* processResult(ContactTestData& cdata,
119
119
if (cdata.req .is_valid && !cdata.req .is_valid (contact))
120
120
return nullptr ;
121
121
122
+ if (!(contact.distance < cdata.collision_margin_data .getPairCollisionMarginData (key.first , key.second )))
123
+ return nullptr ;
124
+
122
125
if (!found)
123
126
{
124
127
ContactResultVector data;
125
128
if (cdata.req .type == ContactTestType::FIRST)
126
129
{
127
- if (contact.distance < cdata.collision_margin_data .getPairCollisionMarginData (key.first , key.second ))
128
- {
129
- data.emplace_back (contact);
130
- cdata.done = true ;
131
- }
130
+ data.emplace_back (contact);
131
+ cdata.done = true ;
132
132
}
133
133
else
134
134
{
135
- if (contact.distance < cdata.collision_margin_data .getPairCollisionMarginData (key.first , key.second ))
136
- {
137
- data.reserve (100 ); // TODO: Need better way to initialize this
138
- data.emplace_back (contact);
139
- }
135
+ data.reserve (100 ); // TODO: Need better way to initialize this
136
+ data.emplace_back (contact);
140
137
}
141
138
142
139
return &(cdata.res ->insert (std::make_pair (key, data)).first ->second .back ());
@@ -146,22 +143,16 @@ inline ContactResult* processResult(ContactTestData& cdata,
146
143
ContactResultVector& dr = (*cdata.res )[key];
147
144
if (cdata.req .type == ContactTestType::ALL)
148
145
{
149
- if (contact.distance < cdata.collision_margin_data .getPairCollisionMarginData (key.first , key.second ))
150
- {
151
- dr.emplace_back (contact);
152
- return &(dr.back ());
153
- }
146
+ dr.emplace_back (contact);
147
+ return &(dr.back ());
154
148
}
155
149
156
150
if (cdata.req .type == ContactTestType::CLOSEST)
157
151
{
158
- if (contact.distance < cdata. collision_margin_data . getPairCollisionMarginData (key. first , key. second ) )
152
+ if (contact.distance < dr[ 0 ]. distance )
159
153
{
160
- if (contact.distance < dr[0 ].distance )
161
- {
162
- dr[0 ] = contact;
163
- return &(dr[0 ]);
164
- }
154
+ dr[0 ] = contact;
155
+ return &(dr[0 ]);
165
156
}
166
157
}
167
158
// else if (cdata.cdata.condition == DistanceRequestType::LIMITED)
0 commit comments