Esempio n. 1
0
ContactPair^ ContactPair::ToManaged(const PxContactPair& pair)
{
	ContactPair^ managedPair = gcnew ContactPair();

	managedPair->Shapes = gcnew array<Shape^>(2);

	managedPair->Shapes[0] = ObjectTable::TryGetObject<Shape^>((intptr_t)pair.shapes[0]);
	managedPair->Shapes[1] = ObjectTable::TryGetObject<Shape^>((intptr_t)pair.shapes[1]);

	managedPair->ContactCount = pair.contactCount;
	managedPair->Flags = ToManagedEnum(ContactPairFlag, pair.flags);
	managedPair->Events = ToManagedEnum(PairFlag, pair.events);

	return managedPair;
}
Esempio n. 2
0
ContactPairHeader^ ContactPairHeader::ToManaged(const PxContactPairHeader& unmanaged)
{
	ContactPairHeader^ managed = gcnew ContactPairHeader();

	managed->Actors = gcnew array<Actor^>(2);

	managed->Actors[0] = ObjectTable::TryGetObject<Actor^>((intptr_t)unmanaged.actors[0]);
	managed->Actors[1] = ObjectTable::TryGetObject<Actor^>((intptr_t)unmanaged.actors[1]);

	managed->Flags = ToManagedEnum(ContactPairHeaderFlag, unmanaged.flags);

	return managed;
}
Esempio n. 3
0
TriangleMeshGeometry^ TriangleMeshGeometry::ToManaged(PxTriangleMeshGeometry triangleMesh)
{
	TriangleMeshGeometry^ g = gcnew TriangleMeshGeometry();
		g->Scale = MeshScale::ToManaged(triangleMesh.scale);
		g->MeshFlags = ToManagedEnum(MeshGeometryFlag, triangleMesh.meshFlags);
		g->TriangleMesh = triangleMesh.triangleMesh == NULL ?
			nullptr : 
			ObjectTable::GetObject<PhysX::TriangleMesh^>((intptr_t)triangleMesh.triangleMesh);

	// TODO: paddingFromFlags

	return g;
}
Esempio n. 4
0
ConvexMeshDesc^ ConvexMeshDesc::ToManaged(PxConvexMeshDesc desc)
{
	auto d = gcnew ConvexMeshDesc();

	if (desc.triangles.stride == sizeof(short))
		d->_triangles = Util::AsManagedArray<short>((void*)desc.triangles.data, desc.triangles.count);
	else if (desc.triangles.stride == sizeof(int))
		d->_triangles = Util::AsManagedArray<int>((void*)desc.triangles.data, desc.triangles.count);

	d->_positions = Util::AsManagedArray<Vector3>((void*)desc.points.data, desc.points.count);
	d->Flags = ToManagedEnum(ConvexFlag, desc.flags);

	return d;
}
ContactPairHeader^ ContactPairHeader::ToManaged(PxContactPairHeader unmanaged)
{
	auto managed = gcnew ContactPairHeader();

	managed->Actor0 = ObjectTable::TryGetObject<RigidActor^>((intptr_t)unmanaged.actors[0]);
	managed->Actor1 = ObjectTable::TryGetObject<RigidActor^>((intptr_t)unmanaged.actors[1]);

	managed->ExtraData = (unmanaged.extraDataStream == NULL) ?
		nullptr :
		Util::AsManagedArray<Byte>(unmanaged.extraDataStream, unmanaged.extraDataStreamSize);

	managed->Flags = ToManagedEnum(ContactPairHeaderFlag, unmanaged.flags);

	return managed;
}
Esempio n. 6
0
ContactPair::ContactPair(PxContactPair* pair)
{
	ThrowIfNull(pair, "pair");

	_pair = pair;

	this->Shape0 = ObjectTable::TryGetObject<Shape^>((intptr_t)pair->shapes[0]);
	this->Shape1 = ObjectTable::TryGetObject<Shape^>((intptr_t)pair->shapes[1]);

	this->ContactData = (pair->contactStream == NULL) ?
		nullptr :
		Util::AsManagedArray<Byte>(pair->contactStream, pair->contactStreamSize);

	this->RequiredBufferSize = pair->requiredBufferSize;
	this->ContactCount = pair->contactCount;
	this->Flags = ToManagedEnum(ContactPairFlag, pair->flags);
}
CapsuleClimbingMode CapsuleController::ClimbingMode::get()
{
	return ToManagedEnum(CapsuleClimbingMode, this->UnmanagedPointer->getClimbingMode());
}
PhysX::DataAccessFlag ParticleReadData::DataAccessFlag::get()
{
	return ToManagedEnum(PhysX::DataAccessFlag, this->UnmanagedPointer->getDataAccessFlags());
}