24#ifndef GIMPACT_TRIANGLE_SHAPE_EX_H
25#define GIMPACT_TRIANGLE_SHAPE_EX_H
33#define MAX_TRI_CLIPPING 16
66 btScalar margin,
const btVector3* points,
int point_count);
97 const btVector3& e1 =
m_vertices[(edge_index + 1) % 3];
129 btTriangleShapeEx() : btTriangleShape(btVector3(0, 0, 0), btVector3(0, 0, 0), btVector3(0, 0, 0))
133 btTriangleShapeEx(
const btVector3& p0,
const btVector3& p1,
const btVector3& p2) : btTriangleShape(p0, p1, p2)
148 aabbMin = trianglebox.m_min;
149 aabbMax = trianglebox.m_max;
163 plane.setValue(normal[0], normal[1], normal[2],
m_vertices1[0].
dot(normal));
btScalar m_collisionMargin
SIMD_FORCE_INLINE void bt_edge_plane(const btVector3 &e1, const btVector3 &e2, const btVector3 &normal, btVector4 &plane)
Calc a plane from a triangle edge an a normal. plane is a vec4f.
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define SIMD_FORCE_INLINE
bool find_triangle_collision_clip_method(btPrimitiveTriangle &other, GIM_TRIANGLE_CONTACT &contacts)
Find collision using the clipping method.
SIMD_FORCE_INLINE void get_edge_plane(int edge_index, btVector4 &plane) const
Calcs the plane which is paralele to the edge and perpendicular to the triangle plane.
int clip_triangle(btPrimitiveTriangle &other, btVector3 *clipped_points)
Clips the triangle against this.
bool overlap_test_conservative(const btPrimitiveTriangle &other)
Test if triangles could collide.
void applyTransform(const btTransform &t)
SIMD_FORCE_INLINE void buildTriPlane()
Helper class for colliding Bullet Triangle Shapes.
SIMD_FORCE_INLINE void buildTriPlane(btVector4 &plane) const
btTriangleShapeEx(const btVector3 &p0, const btVector3 &p1, const btVector3 &p2)
void applyTransform(const btTransform &t)
bool overlap_test_conservative(const btTriangleShapeEx &other)
class btTriangleShapeEx: public btTriangleShape
virtual void getAabb(const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
btTriangleShapeEx(const btTriangleShapeEx &other)
SIMD_FORCE_INLINE void setValue(const btScalar &_x, const btScalar &_y, const btScalar &_z, const btScalar &_w)
Set x,y,z and zero w.
additional_info("compositor_sum_squared_difference_float_shared") .push_constant(Type output_img float dot(value.rgb, luminance_coefficients)") .define("LOAD(value)"
ccl_device_inline float cross(const float2 a, const float2 b)