btTriangleMeshShape::btTriangleMeshShape(btStridingMeshInterface* meshInterface)
: btConcaveShape (), m_meshInterface(meshInterface)
{
	m_shapeType = TRIANGLE_MESH_SHAPE_PROXYTYPE;
	if(meshInterface->hasPremadeAabb())
	{
		meshInterface->getPremadeAabb(&m_localAabbMin, &m_localAabbMax);
	}
	else
	{
		recalcLocalAabb();
	}
}
Esempio n. 2
0
btConvexHullShape ::btConvexHullShape (const btScalar* points,int numPoints,int stride) : btPolyhedralConvexShape ()
{
	m_shapeType = CONVEX_HULL_SHAPE_PROXYTYPE;
	m_unscaledPoints.resize(numPoints);

	unsigned char* pointsBaseAddress = (unsigned char*)points;

	for (int i=0;i<numPoints;i++)
	{
		btVector3* point = (btVector3*)(pointsBaseAddress + i*stride);
		m_unscaledPoints[i] = point[0];
	}

	recalcLocalAabb();

}
Esempio n. 3
0
btConvexHullShape ::btConvexHullShape (const btScalar* points,int numPoints,int stride) : btPolyhedralConvexAabbCachingShape ()
{
	m_shapeType = CONVEX_HULL_SHAPE_PROXYTYPE;
	m_unscaledPoints.resize(numPoints);

	unsigned char* pointsAddress = (unsigned char*)points;

	for (int i=0;i<numPoints;i++)
	{
		btScalar* point = (btScalar*)pointsAddress;
		m_unscaledPoints[i] = btVector3(point[0], point[1], point[2]);
		pointsAddress += stride;
	}

	recalcLocalAabb();

}
void btConvexHullShape::updatePoints(const btScalar* points, int numPoints, int stride)
{
	const btScalar* ptr = points;
	unsigned char* address = (unsigned char*)points;

	// In case the number of points differ.
	m_unscaledPoints.resize(numPoints);

	for (int index = 0; index < numPoints; ++index)
	{
		btScalar* point = (btScalar*)address;
		m_unscaledPoints[index] = btVector3(point[0], point[1], point[2]);
		address += stride;
	}

	recalcLocalAabb();
}
btMultiSphereShape::btMultiSphereShape (const btVector3* positions,const btScalar* radi,int numSpheres)
:btConvexInternalAabbCachingShape ()
{
	m_shapeType = MULTI_SPHERE_SHAPE_PROXYTYPE;
	//btScalar startMargin = btScalar(BT_LARGE_FLOAT);

	m_localPositionArray.resize(numSpheres);
	m_radiArray.resize(numSpheres);
	for (int i=0;i<numSpheres;i++)
	{
		m_localPositionArray[i] = positions[i];
		m_radiArray[i] = radi[i];
		
	}

	recalcLocalAabb();

}
btTriangleMeshShape::btTriangleMeshShape(btStridingMeshInterface* meshInterface)
: m_meshInterface(meshInterface)
{
	recalcLocalAabb();
}
void btTriangleMeshShape::setLocalScaling(const btVector3& scaling)
{
	m_meshInterface->setScaling(scaling);
	recalcLocalAabb();
}
void	btPolyhedralConvexAabbCachingShape::setLocalScaling(const btVector3& scaling)
{
	btConvexInternalShape::setLocalScaling(scaling);
	recalcLocalAabb();
}
Esempio n. 9
0
void btConvexHullShape::addPoint(const btVector3& point)
{
	m_unscaledPoints.push_back(point);
	recalcLocalAabb();

}
Esempio n. 10
0
void btConvexHullShape::setLocalScaling(const btVector3& scaling)
{
	m_localScaling = scaling;
	recalcLocalAabb();
}
Esempio n. 11
0
void btConvexTriangleMeshShape::setLocalScaling(const btVector3& scaling)
{
	m_stridingMesh->setScaling(scaling);

	recalcLocalAabb();
}
Esempio n. 12
0
void btBU_Simplex1to4::addVertex(const btVector3& pt)
{
	m_vertices[m_numVertices++] = pt;

	recalcLocalAabb();
}
btCylinderShapeZ::btCylinderShapeZ (const btVector3& halfExtents)
:btCylinderShape(halfExtents)
{
	m_upAxis = 2;
	recalcLocalAabb();
}
void	btBvhTriangleMeshShape::refitTree(const btVector3& aabbMin,const btVector3& aabbMax)
{
	m_bvh->refit( m_meshInterface, aabbMin,aabbMax );
	
	recalcLocalAabb();
}
Esempio n. 15
0
btCylinderShape::btCylinderShape (const btVector3& halfExtents)
:btBoxShape(halfExtents),
m_upAxis(1)
{
	recalcLocalAabb();
}
Esempio n. 16
0
void btConvexHullShape::addPoint(const btPoint3& point)
{
	m_points.push_back(point);
	recalcLocalAabb();

}