Trait physx::traits::Class

source ·
pub unsafe trait Class<S> {
    // Required methods
    fn as_ptr(&self) -> *const S;
    fn as_mut_ptr(&mut self) -> *mut S;
}
Expand description

Trait for getting raw pointers for FFI calls, used to provide default implementations of traits that “re-object” a C wrapper of a C++ library.

Safety

Implementing Class<S> for T where S is not a superclass of T will cause Undefined Behaviour.

This trait may hide a raw pointer cast from *Self to *T. It is intended for use in default implementations for traits wrapping C++ classes. In C++-land this is just how things are done, but From Rust’s perspective, this is madness. The relations defined between types using this trait must align with the C++ class hierarchy. The [Inherit] trait can be used to simplify implementing Class<S> for T where T: Class<T>.

Required Methods§

source

fn as_ptr(&self) -> *const S

Returns a raw const pointer to the wrapped type. Retrieving a raw pointer is safe. However, pretty much any use of a raw pointer is unsafe. In particular: this pointer should not be used to construct a second owning wrapper around the pointer.

source

fn as_mut_ptr(&mut self) -> *mut S

Returns a raw mut pointer to the wrapped type. Retrieving a raw pointer is safe. However, pretty much any use of a raw pointer is unsafe. In particular: this pointer should not be used to construct a second owning wrapper around the pointer.

Implementations on Foreign Types§

source§

impl Class<PxJoint> for PxContactJoint

source§

impl Class<PxBase> for PxRigidDynamic

source§

impl Class<PxActor> for PxRigidStatic

source§

impl Class<PxBoxController> for PxBoxController

source§

impl Class<PxArticulationCache> for PxArticulationCache

source§

impl Class<PxActor> for PxRigidDynamic

source§

impl Class<PxRigidBody> for PxRigidDynamic

source§

impl Class<PxTriangleMesh> for PxTriangleMesh

source§

impl Class<PxBase> for PxDistanceJoint

source§

impl Class<PxRigidActor> for PxRigidDynamic

source§

impl Class<PxConvexMesh> for PxConvexMesh

source§

impl Class<PxBase> for PxBase

source§

impl Class<PxBase> for PxArticulationJointReducedCoordinate

source§

impl Class<PxController> for PxCapsuleController

source§

impl Class<PxFixedJoint> for PxFixedJoint

source§

impl Class<PxMaterial> for PxMaterial

source§

impl Class<PxBase> for PxAggregate

source§

impl Class<PxRigidBody> for PxRigidBody

source§

impl Class<PxBase> for PxShape

source§

impl Class<PxContactJoint> for PxContactJoint

source§

impl Class<PxRigidActor> for PxRigidBody

source§

impl Class<PxShape> for PxShape

source§

impl Class<PxActor> for PxRigidActor

source§

impl Class<PxRevoluteJoint> for PxRevoluteJoint

source§

impl Class<PxJoint> for PxJoint

source§

impl Class<PxRigidActor> for PxRigidActor

source§

impl Class<PxControllerDesc> for PxCapsuleControllerDesc

source§

impl Class<PxMeshScale> for PxMeshScale

source§

impl Class<PxBase> for PxRigidActor

source§

impl Class<PxBase> for PxHeightField

source§

impl Class<PxBase> for PxRevoluteJoint

source§

impl Class<PxCooking> for PxCooking

source§

impl Class<PxBase> for PxContactJoint

source§

impl Class<PxFoundation> for PxFoundation

source§

impl Class<PxBase> for PxSphericalJoint

source§

impl Class<PxJoint> for PxSphericalJoint

source§

impl Class<PxJoint> for PxPrismaticJoint

source§

impl Class<PxJoint> for PxDistanceJoint

source§

impl Class<PxBoxControllerDesc> for PxBoxControllerDesc

source§

impl Class<PxControllerDesc> for PxControllerDesc

source§

impl Class<PxJoint> for PxRevoluteJoint

source§

impl Class<PxBase> for PxConvexMesh

source§

impl Class<PxBase> for PxActor

source§

impl Class<PxBase> for PxTriangleMesh

source§

impl Class<PxPrismaticJoint> for PxPrismaticJoint

source§

impl Class<PxPvdTransport> for PxPvdTransport

source§

impl Class<PxBase> for PxArticulationReducedCoordinate

source§

impl Class<PxAggregate> for PxAggregate

source§

impl Class<PxBounds3> for PxBounds3

source§

impl Class<PxArticulationReducedCoordinate> for PxArticulationReducedCoordinate

source§

impl Class<PxControllerDesc> for PxBoxControllerDesc

source§

impl Class<PxRefCounted> for PxShape

source§

impl Class<PxActor> for PxRigidBody

source§

impl Class<PxCapsuleController> for PxCapsuleController

source§

impl Class<PxRigidActor> for PxRigidStatic

source§

impl Class<PxPhysics> for PxPhysics

source§

impl Class<PxConstraint> for PxConstraint

source§

impl Class<PxExtendedVec3> for PxExtendedVec3

source§

impl Class<PxPvdSceneClient> for PxPvdSceneClient

source§

impl Class<PxBase> for PxPrismaticJoint

source§

impl Class<PxRigidStatic> for PxRigidStatic

source§

impl Class<PxDistanceJoint> for PxDistanceJoint

source§

impl Class<PxTransform> for PxTransform

source§

impl Class<PxScene> for PxScene

source§

impl Class<PxBase> for PxRigidBody

source§

impl Class<PxHeightField> for PxHeightField

source§

impl Class<PxBase> for PxRigidStatic

source§

impl Class<PxJoint> for PxFixedJoint

source§

impl Class<PxController> for PxBoxController

source§

impl Class<PxBase> for PxJoint

source§

impl Class<PxSphericalJoint> for PxSphericalJoint

source§

impl Class<PxRigidDynamic> for PxRigidDynamic

source§

impl Class<PxBase> for PxConstraint

source§

impl Class<PxPruningStructure> for PxPruningStructure

source§

impl Class<PxBase> for PxFixedJoint

source§

impl Class<PxBase> for PxBVH

source§

impl Class<PxD6Joint> for PxD6Joint

source§

impl Class<PxArticulationJointReducedCoordinate> for PxArticulationJointReducedCoordinate

source§

impl Class<PxBase> for PxMaterial

source§

impl Class<PxController> for PxController

source§

impl Class<PxActor> for PxActor

source§

impl Class<PxControllerManager> for PxControllerManager

source§

impl Class<PxBase> for PxD6Joint

source§

impl Class<PxVec3> for PxVec3

source§

impl Class<PxBase> for PxPruningStructure

source§

impl Class<PxJoint> for PxD6Joint

source§

impl Class<PxCapsuleControllerDesc> for PxCapsuleControllerDesc

source§

impl Class<PxPvd> for PxPvd

source§

impl Class<PxQuat> for PxQuat

source§

impl Class<PxRefCounted> for PxMaterial

source§

impl Class<PxBVH> for PxBVH

Implementors§

source§

impl Class<PxBoxGeometry> for PxBoxGeometry

source§

impl Class<PxCapsuleGeometry> for PxCapsuleGeometry

source§

impl Class<PxConvexMeshGeometry> for PxConvexMeshGeometry

source§

impl Class<PxGeometry> for PxBoxGeometry

source§

impl Class<PxGeometry> for PxCapsuleGeometry

source§

impl Class<PxGeometry> for PxConvexMeshGeometry

source§

impl Class<PxGeometry> for PxHeightFieldGeometry

source§

impl Class<PxGeometry> for PxPlaneGeometry

source§

impl Class<PxGeometry> for PxSphereGeometry

source§

impl Class<PxGeometry> for PxTriangleMeshGeometry

source§

impl Class<PxHeightFieldGeometry> for PxHeightFieldGeometry

source§

impl Class<PxPlaneGeometry> for PxPlaneGeometry

source§

impl Class<PxSphereGeometry> for PxSphereGeometry

source§

impl Class<PxTriangleMeshGeometry> for PxTriangleMeshGeometry

source§

impl Class<PxArticulationCache> for ArticulationCache

source§

impl Class<PxArticulationJointReducedCoordinate> for ArticulationJointReducedCoordinate

source§

impl Class<PxBVH> for Bvh

source§

impl Class<PxBVHDesc> for PxBVHDesc

source§

impl Class<PxBase> for ArticulationJointReducedCoordinate

source§

impl Class<PxBase> for Bvh

source§

impl Class<PxBase> for Constraint

source§

impl Class<PxBase> for ConvexMesh

source§

impl Class<PxBase> for HeightField

source§

impl Class<PxBase> for PruningStructure

source§

impl Class<PxBase> for TriangleMesh

source§

impl Class<PxBounds3> for physx::math::PxBounds3

source§

impl Class<PxConstraint> for Constraint

source§

impl Class<PxConvexMesh> for ConvexMesh

source§

impl Class<PxConvexMeshDesc> for PxConvexMeshDesc

source§

impl Class<PxCookingParams> for PxCookingParams

source§

impl Class<PxExtendedVec3> for physx::math::PxExtendedVec3

source§

impl Class<PxHeightField> for HeightField

source§

impl Class<PxHeightFieldDesc> for PxHeightFieldDesc

source§

impl Class<PxPruningStructure> for PruningStructure

source§

impl Class<PxPvd> for Pvd

source§

impl Class<PxPvd> for VisualDebugger

source§

impl Class<PxPvdSceneClient> for PvdSceneClient

source§

impl Class<PxPvdTransport> for PvdTransport

source§

impl Class<PxQuat> for physx::math::PxQuat

source§

impl Class<PxTransform> for physx::math::PxTransform

source§

impl Class<PxTriangleMesh> for TriangleMesh

source§

impl Class<PxTriangleMeshDesc> for PxTriangleMeshDesc

source§

impl Class<PxVec3> for physx::math::PxVec3

source§

impl<L, S, D, OC, OT, OCB, OWS, OA> Class<PxSimulationEventCallback> for PxSimulationEventCallback<L, S, D, OC, OT, OCB, OWS, OA>where L: ArticulationLink, S: RigidStatic, D: RigidDynamic, OC: CollisionCallback, OT: TriggerCallback, OCB: ConstraintBreakCallback, OWS: WakeSleepCallback<L, S, D>, OA: AdvanceCallback<L, D>,

source§

impl<P, Allocator: AllocatorCallback> Class<P> for physx::foundation::PxFoundation<Allocator>where PxFoundation: Class<P>,

source§

impl<P, D, Geom: Shape> Class<P> for physx::rigid_dynamic::PxRigidDynamic<D, Geom>where PxRigidDynamic: Class<P>,

source§

impl<P, L, D> Class<P> for RigidBodyMap<L, D>where PxRigidBody: Class<P>, L: ArticulationLink, D: RigidDynamic,

source§

impl<P, L, Geom: Shape> Class<P> for physx::articulation_link::PxArticulationLink<L, Geom>where PxArticulationLink: Class<P>,

source§

impl<P, L, S, D> Class<P> for ActorMap<L, S, D>where PxRigidActor: Class<P>, L: ArticulationLink, S: RigidStatic, D: RigidDynamic,

source§

impl<P, L, S, D, C> Class<P> for physx::aggregate::PxAggregate<L, S, D, C>where PxAggregate: Class<P>, L: ArticulationLink, S: RigidStatic, D: RigidDynamic, C: ArticulationReducedCoordinate,

source§

impl<P, S, Geom: Shape> Class<P> for physx::rigid_static::PxRigidStatic<S, Geom>where PxRigidStatic: Class<P>,

source§

impl<P, U> Class<P> for physx::material::PxMaterial<U>where PxMaterial: Class<P>,

source§

impl<P, U, L, S, D, C, OC, OT, OCB, OWS, OA> Class<P> for physx::scene::PxScene<U, L, S, D, C, OC, OT, OCB, OWS, OA>where PxScene: Class<P>, L: ArticulationLink, S: RigidStatic, D: RigidDynamic, C: ArticulationReducedCoordinate, OC: CollisionCallback, OT: TriggerCallback, OCB: ConstraintBreakCallback, OWS: WakeSleepCallback<L, S, D>, OA: AdvanceCallback<L, D>,

source§

impl<S, U, Link: ArticulationLink> Class<S> for physx::articulation_reduced_coordinate::PxArticulationReducedCoordinate<U, Link>where PxArticulationReducedCoordinate: Class<S>,

source§

impl<S, U, M: Material> Class<S> for physx::shape::PxShape<U, M>where PxShape: Class<S>,

source§

impl<T, Allocator: AllocatorCallback, Geom: Shape> Class<T> for PhysicsFoundation<Allocator, Geom>where PxPhysics: Class<T>,

source§

impl<T, C> Class<T> for physx::controller_manager::PxControllerManager<C>where PxControllerManager: Class<T>, C: Controller,

source§

impl<T, Geom: Shape> Class<T> for physx::physics::PxPhysics<Geom>where PxPhysics: Class<T>,

source§

impl<T, S> Class<S> for Owner<T>where T: Class<S>,

source§

impl<T, U> Class<T> for physx::controller::PxBoxController<U>where PxBoxController: Class<T>,

source§

impl<T, U> Class<T> for physx::controller::PxBoxControllerDesc<U>where PxBoxControllerDesc: Class<T>,

source§

impl<T, U> Class<T> for physx::controller::PxCapsuleController<U>where PxCapsuleController: Class<T>,

source§

impl<T, U> Class<T> for physx::controller::PxCapsuleControllerDesc<U>where PxCapsuleControllerDesc: Class<T>,