Split out the material types in the GUI to have different classes based on the physics engine selected. Added RegisterMaterialType methods. When the plug-ins are cataloged on startup it calls RegisterMaterialType for each one found. Within that class it calls a shared RegisterMaterialType that specifies the physics engine it is used for. When the project is actually running we then call CreateMaterialType. It looks at the current physics engine and creates the correct type based on the ones that have been registered.
Got the materials working in bullet. I moved the variables from the base animatsim::MaterialtTyep into the VxMaterialType and BlMaterialType classes. I also added a way to keep track of all RigidBodies associated with a materialtype within BlMaterialType. When someone makes a change to a material variable it now goes through that list and informs each rigid body associated with it to reset its mateiral properties.