module unecht.core.components.physics.material;

import derelict.ode.ode;
import derelict.util.system;

import unecht.core.component;
import unecht.core.object;
import unecht.core.defaultInspector;

//TODO: support POD types in default inspectors automatically
///
@Serialize
struct UEPhysicsMaterialInfo
{
    @UEInspectorRange!float(0.0f,1.0f)
    dReal bouncyness = 0;
    @UEInspectorRange!float(0.0f,float.infinity)
    dReal friction = dInfinity;

    @nogc @property bool isBouncy() const nothrow { return bouncyness > 0.01f; }
}

///
final class UEPhysicsMaterial : UEComponent
{
    mixin(UERegisterObject!());

    @Serialize
    UEPhysicsMaterialInfo materialInfo;
}