Attaching colliders to kickables?

I have these bowling pins in my age that currently use a box collider shape. Why? Because they won't stand up if I use a triangle mesh or a convex hull.
I want to change this so that the pins use a custom collider geometry that allows them to roll around like pins. The trick is getting the visual pin mesh and the collider mesh linked so that they move together.
I tried having the collider a child of the visuals, then the visuals a child of the collider. Neither one worked - I pass right through the pin.
Has anyone tried something like this for a dynamic object? If so, how did you get your custom collider linked up properly?
[EDIT] I took a look at the Gira baskets, in order to see what should happen.
The visible Gira basket scene object has a plCoordinateInterface with the collider's plCoordinateInterface as its child. The child plCoordinateInterface has LocalToParent and ParentToLocal set to the identity matrix, and it has the kCanEverDelayTransform and kDelayedTransformEval flags set.
The visible Gira basket scene object has the plSimulationInterface containing the plGeneralPhysical with the custom collider geometry; it was taken from the collider scene object, which has no simulation interface.
Looks like the plugin code needs to have the following modifications:
- When a parent object does not have bounds specified, but a child object does, the parent should obtain the plSimulationInterface from the child
- When an object is a child, its LocalToParent and ParentToLocal matrices should be set to identity, and its kCanEverDelayTransform and kDelayedTransformEval flags should be set
I'll see if these changes work...
I want to change this so that the pins use a custom collider geometry that allows them to roll around like pins. The trick is getting the visual pin mesh and the collider mesh linked so that they move together.
I tried having the collider a child of the visuals, then the visuals a child of the collider. Neither one worked - I pass right through the pin.
Has anyone tried something like this for a dynamic object? If so, how did you get your custom collider linked up properly?
[EDIT] I took a look at the Gira baskets, in order to see what should happen.
The visible Gira basket scene object has a plCoordinateInterface with the collider's plCoordinateInterface as its child. The child plCoordinateInterface has LocalToParent and ParentToLocal set to the identity matrix, and it has the kCanEverDelayTransform and kDelayedTransformEval flags set.
The visible Gira basket scene object has the plSimulationInterface containing the plGeneralPhysical with the custom collider geometry; it was taken from the collider scene object, which has no simulation interface.
Looks like the plugin code needs to have the following modifications:
- When a parent object does not have bounds specified, but a child object does, the parent should obtain the plSimulationInterface from the child
- When an object is a child, its LocalToParent and ParentToLocal matrices should be set to identity, and its kCanEverDelayTransform and kDelayedTransformEval flags should be set
I'll see if these changes work...