[options]
girs_directories = ["../gir-files"]
library = "Graphene"
version = "1.0"
min_cfg_version = "1.10"
target_path = "."
work_mode = "normal"
generate_safety_asserts = true
single_version_file = true
deprecate_by_min_version = true
trust_return_value_nullability = true

generate = [
    "Graphene.EulerOrder",
    "Graphene.RayIntersectionKind",
]

[[object]]
name = "Graphene.*"
status = "generate"
    [[object.constant]]
    name = "SIMD_S"
    ignore = true

[[object]]
name = "Graphene.Box"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_box"
    ignore = true # Copy like constructor
    [[object.function]]
    name = "init"
    manual = true # manual proper constructor
    rename = "new"
    [[object.function]]
    name = "init_from_points"
    manual = true # manual proper constructor
    rename = "from_points"
    [[object.function]]
    name = "init_from_vec3"
    manual = true # manual proper constructor
    rename = "from_vec3"
    [[object.function]]
    name = "init_from_vectors"
    manual = true # manual proper constructor
    rename = "from_vectors"
    [[object.function]]
    name = "get_vertices"
    # float array
    manual = true

[[object]]
name = "Graphene.Box2D"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_box"
    ignore = true # Copy like constructor
    [[object.function]]
    name = "init"
    manual = true # manual proper constructor
    rename = "new"
    [[object.function]]
    name = "init_from_points"
    manual = true # manual proper constructor
    rename = "from_points"
    [[object.function]]
    name = "init_from_vec2"
    manual = true # manual proper constructor
    rename = "from_vec2"
    [[object.function]]
    name = "init_from_rect"
    manual = true # manual proper constructor
    rename = "from_rect"
    [[object.function]]
    name = "init_from_vectors"
    manual = true # manual proper constructor
    rename = "from_vectors"
    [[object.function]]
    name = "get_vertices"
    # float array
    manual = true
    [[object.function]]
    name = "to_float"
    # float array
    manual = true

[[object]]
name = "Graphene.Euler"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_euler"
    ignore = true # Copy like constructor
    [[object.function]]
    name = "init"
    rename = "new"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_matrix"
    rename = "from_matrix"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_quaternion"
    rename = "from_quaternion"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_radians"
    rename = "from_radians"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_vec3"
    rename = "from_vec3"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_with_order"
    rename = "with_order"
    manual = true # manual proper constructor

[[object]]
name = "Graphene.Frustum"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_frustum"
    ignore = true # Copy like constructor
    [[object.function]]
    name = "init"
    rename = "new"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_matrix"
    rename = "from_matrix"
    manual = true # manual proper constructor
    [[object.function]]
    name = "get_planes"
    # float array
    manual = true

[[object]]
name = "Graphene.Matrix"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_matrix"
    ignore = true # Copy like constructor
    [[object.function]]
    name = "init_from_2d"
    rename = "from_2d"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_float"
    rename = "from_float"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_vec4"
    rename = "from_vec4"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_frustum" 
    rename = "new_frustum"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_identity" 
    rename = "new_identity"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_look_at" 
    rename = "new_look_at"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_ortho" 
    rename = "new_ortho"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_perspective" 
    rename = "new_perspective"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_rotate" 
    rename = "new_rotate"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_scale" 
    rename = "new_scale"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_skew" 
    rename = "new_skew"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_translate" 
    rename = "new_translate"
    manual = true # manual proper constructor
    [[object.function]]
    name = "to_float"
    # float array
    manual = true

[[object]]
name = "Graphene.Plane"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_plane"
    ignore = true # Copy like constructor
    [[object.function]]
    name = "init"
    rename = "new"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_point"
    rename = "from_point"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_points"
    rename = "from_points"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_vec4"
    rename = "from_vec4"
    manual = true # manual proper constructor


[[object]]
name = "Graphene.Point"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_point"
    ignore = true # Copy like constructor
    [[object.function]]
    name = "init"
    rename = "new"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_vec2"
    rename = "from_vec2"
    manual = true # manual proper constructor

[[object]]
name = "Graphene.Point3D"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_point"
    ignore = true # Copy like constructor
    [[object.function]]
    name = "init"
    rename = "new"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_vec3"
    rename = "from_vec3"
    manual = true # manual proper constructor

[[object]]
name = "Graphene.Quad"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init"
    rename = "new"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_rect"
    rename = "from_rect"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_points"
    rename = "from_points"
    manual = true # manual proper constructor
    [[object.function]]
    name = "get_point"
    # needs bounds check
    manual = true

[[object]]
name = "Graphene.Quaternion"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_quaternion"
    ignore = true # Copy like constructor
    [[object.function]]
    name = "init"
    rename = "new"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_angle_vec3"
    rename = "from_angle_vec3"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_angles"
    rename = "from_angles"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_euler"
    rename = "from_euler"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_matrix"
    rename = "from_matrix"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_radians"
    rename = "from_radians"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_vec4"
    rename = "from_vec4"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_identity"
    rename = "new_identity"
    manual = true # manual proper constructor

[[object]]
name = "Graphene.Ray"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_ray"
    ignore = true # Copy like constructor
    [[object.function]]
    name = "init"
    rename = "new"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_vec3"
    rename = "from_vec3"
    manual = true # manual proper constructor
    [[object.function]]
    pattern = "intersect_(box|sphere|triangle)"
    manual = true # Handle no intersection cases

[[object]]
name = "Graphene.Rect"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_rect"
    ignore = true # Copy like constructor
    [[object.function]]
    name = "init"
    rename = "new"
    manual = true # manual proper constructor
    [[object.function]]
    name = "get_vertices"
    # float array
    manual = true
    [[object.function]]
    name = "inset"
        [object.function.return]
        type = "none"
    [[object.function]]
    name = "normalize"
        [object.function.return]
        type = "none"
    [[object.function]]
    name = "offset"
        [object.function.return]
        type = "none"

[[object]]
# missing memory management functions
name = "Graphene.Simd4F"
status = "ignore"

[[object]]
# missing memory management functions
name = "Graphene.Simd4X4F"
status = "ignore"

[[object]]
name = "Graphene.Size"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_size"
    ignore = true # Copy like constructor
    [[object.function]]
    name = "init"
    rename = "new"
    manual = true # manual proper constructor

[[object]]
name = "Graphene.Sphere"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init"
    rename = "new"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_points"
    rename = "from_points"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_vectors"
    rename = "from_vectors"
    manual = true # manual proper constructor

[[object]]
name = "Graphene.Triangle"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_float"
    rename = "from_float"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_point3d"
    rename = "from_point3d"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_vec3"
    rename = "from_vec3"
    manual = true # manual proper constructor

[[object]]
name = "Graphene.Vec2"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_vec2"
    ignore = true # Copy like constructor
    [[object.function]]
    name = "init"
    rename = "new"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_float"
    rename = "from_float"
    manual = true # manual proper constructor
    [[object.function]]
    name = "to_float"
    # float array
    manual = true

[[object]]
name = "Graphene.Vec3"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_vec3"
    ignore = true # Copy like constructor
    [[object.function]]
    name = "init"
    rename = "new"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_float"
    rename = "from_float"
    manual = true # manual proper constructor
    [[object.function]]
    name = "to_float"
    # float array
    manual = true

[[object]]
name = "Graphene.Vec4"
status = "generate"
boxed_inline = true
    [[object.function]]
    # contents undefined
    name = "alloc"
    ignore = true
    [[object.function]]
    name = "init_from_vec4"
    ignore = true # Copy like constructor
    [[object.function]]
    name = "init"
    rename = "new"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_vec2"
    rename = "from_vec2"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_vec3"
    rename = "from_vec3"
    manual = true # manual proper constructor
    [[object.function]]
    name = "init_from_float"
    rename = "from_float"
    manual = true # manual proper constructor
    [[object.function]]
    name = "to_float"
    # float array
    manual = true
