begin
    const PI = 3.141593
    const PI_2 = 1.570796
    const VEC2_LEN = 2
    const VEC3_LEN = 3
    const VEC4_LEN = 4
    @cenum EulerOrder::UInt16 EulerOrder_DEFAULT = 0xffff EulerOrder_XYZ = 0x0000 EulerOrder_YZX = 0x0001 EulerOrder_ZXY = 0x0002 EulerOrder_XZY = 0x0003 EulerOrder_YXZ = 0x0004 EulerOrder_ZYX = 0x0005 EulerOrder_SXYZ = 0x0006 EulerOrder_SXYX = 0x0007 EulerOrder_SXZY = 0x0008 EulerOrder_SXZX = 0x0009 EulerOrder_SYZX = 0x000a EulerOrder_SYZY = 0x000b EulerOrder_SYXZ = 0x000c EulerOrder_SYXY = 0x000d EulerOrder_SZXY = 0x000e EulerOrder_SZXZ = 0x000f EulerOrder_SZYX = 0x0010 EulerOrder_SZYZ = 0x0011 EulerOrder_RZYX = 0x0012 EulerOrder_RXYX = 0x0013 EulerOrder_RYZX = 0x0014 EulerOrder_RXZX = 0x0015 EulerOrder_RXZY = 0x0016 EulerOrder_RYZY = 0x0017 EulerOrder_RZXY = 0x0018 EulerOrder_RYXY = 0x0019 EulerOrder_RYXZ = 0x001a EulerOrder_RZXZ = 0x001b EulerOrder_RXYZ = 0x001c EulerOrder_RZYZ = 0x001d
    @cenum RayIntersectionKind::Int32 RayIntersectionKind_NONE = 0 RayIntersectionKind_ENTER = 1 RayIntersectionKind_LEAVE = 2
end
