#![allow(
unused_parens,
clippy::excessive_precision,
clippy::missing_safety_doc,
clippy::not_unsafe_ptr_arg_deref,
clippy::should_implement_trait,
clippy::too_many_arguments,
clippy::unused_unit,
)]
use crate::{mod_prelude::*, core, sys, types};
pub mod prelude {
pub use { super::WindowScene };
}
pub const ENTITY_AABB_WORLD: i32 = 2;
pub const ENTITY_ANIMBLEND_MODE: i32 = 3;
pub const ENTITY_MATERIAL: i32 = 0;
pub const ENTITY_SCALE: i32 = 1;
pub const MATERIAL_DIFFUSE: i32 = 4;
pub const MATERIAL_EMISSIVE: i32 = 3;
pub const MATERIAL_LINE_WIDTH: i32 = 1;
pub const MATERIAL_OPACITY: i32 = 2;
pub const MATERIAL_POINT_SIZE: i32 = 0;
pub const MATERIAL_TEXTURE: i32 = 5;
pub const MATERIAL_TEXTURE0: i32 = 5;
pub const MATERIAL_TEXTURE1: i32 = 6;
pub const MATERIAL_TEXTURE2: i32 = 7;
pub const MATERIAL_TEXTURE3: i32 = 8;
pub const SCENE_AA: i32 = 8;
pub const SCENE_INTERACTIVE: i32 = 2;
pub const SCENE_OFFSCREEN: i32 = 16;
pub const SCENE_SEPARATE: i32 = 1;
pub const SCENE_SHOW_CS_CROSS: i32 = 4;
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub enum EntityProperty {
ENTITY_MATERIAL = 0,
ENTITY_SCALE = 1,
ENTITY_AABB_WORLD = 2,
ENTITY_ANIMBLEND_MODE = 3,
}
opencv_type_enum! { crate::ovis::EntityProperty }
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub enum MaterialProperty {
MATERIAL_POINT_SIZE = 0,
MATERIAL_LINE_WIDTH = 1,
MATERIAL_OPACITY = 2,
MATERIAL_EMISSIVE = 3,
MATERIAL_DIFFUSE = 4,
MATERIAL_TEXTURE0 = 5,
MATERIAL_TEXTURE1 = 6,
MATERIAL_TEXTURE2 = 7,
MATERIAL_TEXTURE3 = 8,
}
opencv_type_enum! { crate::ovis::MaterialProperty }
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub enum SceneSettings {
SCENE_SEPARATE = 1,
SCENE_INTERACTIVE = 2,
SCENE_SHOW_CS_CROSS = 4,
SCENE_AA = 8,
SCENE_OFFSCREEN = 16,
}
opencv_type_enum! { crate::ovis::SceneSettings }
pub fn add_resource_location(path: &str) -> Result<()> {
extern_container_arg!(path);
unsafe { sys::cv_ovis_addResourceLocation_const_StringR(path.opencv_as_extern()) }.into_result()
}
pub fn create_grid_mesh(name: &str, size: core::Size2f, segments: core::Size) -> Result<()> {
extern_container_arg!(name);
unsafe { sys::cv_ovis_createGridMesh_const_StringR_const_Size2fR_const_SizeR(name.opencv_as_extern(), &size, &segments) }.into_result()
}
pub fn create_plane_mesh(name: &str, size: core::Size2f, image: &dyn core::ToInputArray) -> Result<()> {
extern_container_arg!(name);
input_array_arg!(image);
unsafe { sys::cv_ovis_createPlaneMesh_const_StringR_const_Size2fR_const__InputArrayR(name.opencv_as_extern(), &size, image.as_raw__InputArray()) }.into_result()
}
pub fn create_point_cloud_mesh(name: &str, vertices: &dyn core::ToInputArray, colors: &dyn core::ToInputArray) -> Result<()> {
extern_container_arg!(name);
input_array_arg!(vertices);
input_array_arg!(colors);
unsafe { sys::cv_ovis_createPointCloudMesh_const_StringR_const__InputArrayR_const__InputArrayR(name.opencv_as_extern(), vertices.as_raw__InputArray(), colors.as_raw__InputArray()) }.into_result()
}
pub fn create_triangle_mesh(name: &str, vertices: &dyn core::ToInputArray, normals: &dyn core::ToInputArray, indices: &dyn core::ToInputArray) -> Result<()> {
extern_container_arg!(name);
input_array_arg!(vertices);
input_array_arg!(normals);
input_array_arg!(indices);
unsafe { sys::cv_ovis_createTriangleMesh_const_StringR_const__InputArrayR_const__InputArrayR_const__InputArrayR(name.opencv_as_extern(), vertices.as_raw__InputArray(), normals.as_raw__InputArray(), indices.as_raw__InputArray()) }.into_result()
}
pub fn create_window(title: &str, size: core::Size, flags: i32) -> Result<core::Ptr::<dyn crate::ovis::WindowScene>> {
extern_container_arg!(title);
unsafe { sys::cv_ovis_createWindow_const_StringR_const_SizeR_int(title.opencv_as_extern(), &size, flags) }.into_result().map(|r| unsafe { core::Ptr::<dyn crate::ovis::WindowScene>::opencv_from_extern(r) } )
}
pub fn set_material_property_2(name: &str, prop: &str, value: core::Scalar) -> Result<()> {
extern_container_arg!(name);
extern_container_arg!(prop);
unsafe { sys::cv_ovis_setMaterialProperty_const_StringR_const_StringR_const_ScalarR(name.opencv_as_extern(), prop.opencv_as_extern(), &value) }.into_result()
}
pub fn set_material_property(name: &str, prop: i32, value: core::Scalar) -> Result<()> {
extern_container_arg!(name);
unsafe { sys::cv_ovis_setMaterialProperty_const_StringR_int_const_ScalarR(name.opencv_as_extern(), prop, &value) }.into_result()
}
pub fn set_material_property_1(name: &str, prop: i32, value: &str) -> Result<()> {
extern_container_arg!(name);
extern_container_arg!(value);
unsafe { sys::cv_ovis_setMaterialProperty_const_StringR_int_const_StringR(name.opencv_as_extern(), prop, value.opencv_as_extern()) }.into_result()
}
pub fn set_material_texture(name: &str, prop: i32, value: &dyn core::ToInputArray) -> Result<()> {
extern_container_arg!(name);
input_array_arg!(value);
unsafe { sys::cv_ovis_setMaterialProperty_const_StringR_int_const__InputArrayR(name.opencv_as_extern(), prop, value.as_raw__InputArray()) }.into_result()
}
#[deprecated = "use setMaterialProperty"]
pub fn update_texture(name: &str, image: &dyn core::ToInputArray) -> Result<()> {
extern_container_arg!(name);
input_array_arg!(image);
unsafe { sys::cv_ovis_updateTexture_const_StringR_const__InputArrayR(name.opencv_as_extern(), image.as_raw__InputArray()) }.into_result()
}
pub fn wait_key(delay: i32) -> Result<i32> {
unsafe { sys::cv_ovis_waitKey_int(delay) }.into_result()
}
pub trait WindowScene {
fn as_raw_WindowScene(&self) -> *const c_void;
fn as_raw_mut_WindowScene(&mut self) -> *mut c_void;
fn set_background(&mut self, image: &dyn core::ToInputArray) -> Result<()> {
input_array_arg!(image);
unsafe { sys::cv_ovis_WindowScene_setBackground_const__InputArrayR(self.as_raw_mut_WindowScene(), image.as_raw__InputArray()) }.into_result()
}
fn set_background_color(&mut self, color: core::Scalar) -> Result<()> {
unsafe { sys::cv_ovis_WindowScene_setBackground_const_ScalarR(self.as_raw_mut_WindowScene(), &color) }.into_result()
}
fn set_compositors(&mut self, names: &core::Vector::<String>) -> Result<()> {
unsafe { sys::cv_ovis_WindowScene_setCompositors_const_vector_String_R(self.as_raw_mut_WindowScene(), names.as_raw_VectorOfString()) }.into_result()
}
fn create_entity(&mut self, name: &str, meshname: &str, tvec: &dyn core::ToInputArray, rot: &dyn core::ToInputArray) -> Result<()> {
extern_container_arg!(name);
extern_container_arg!(meshname);
input_array_arg!(tvec);
input_array_arg!(rot);
unsafe { sys::cv_ovis_WindowScene_createEntity_const_StringR_const_StringR_const__InputArrayR_const__InputArrayR(self.as_raw_mut_WindowScene(), name.opencv_as_extern(), meshname.opencv_as_extern(), tvec.as_raw__InputArray(), rot.as_raw__InputArray()) }.into_result()
}
fn remove_entity(&mut self, name: &str) -> Result<()> {
extern_container_arg!(name);
unsafe { sys::cv_ovis_WindowScene_removeEntity_const_StringR(self.as_raw_mut_WindowScene(), name.opencv_as_extern()) }.into_result()
}
fn set_entity_property(&mut self, name: &str, prop: i32, value: core::Scalar) -> Result<()> {
extern_container_arg!(name);
unsafe { sys::cv_ovis_WindowScene_setEntityProperty_const_StringR_int_const_ScalarR(self.as_raw_mut_WindowScene(), name.opencv_as_extern(), prop, &value) }.into_result()
}
fn set_entity_property_1(&mut self, name: &str, prop: i32, value: &str, sub_entity_idx: i32) -> Result<()> {
extern_container_arg!(name);
extern_container_arg!(value);
unsafe { sys::cv_ovis_WindowScene_setEntityProperty_const_StringR_int_const_StringR_int(self.as_raw_mut_WindowScene(), name.opencv_as_extern(), prop, value.opencv_as_extern(), sub_entity_idx) }.into_result()
}
fn get_entity_property(&mut self, name: &str, prop: i32, value: &mut dyn core::ToOutputArray) -> Result<()> {
extern_container_arg!(name);
output_array_arg!(value);
unsafe { sys::cv_ovis_WindowScene_getEntityProperty_const_StringR_int_const__OutputArrayR(self.as_raw_mut_WindowScene(), name.opencv_as_extern(), prop, value.as_raw__OutputArray()) }.into_result()
}
fn create_camera_entity(&mut self, name: &str, k: &dyn core::ToInputArray, imsize: core::Size, z_far: f32, tvec: &dyn core::ToInputArray, rot: &dyn core::ToInputArray, color: core::Scalar) -> Result<core::Rect2d> {
extern_container_arg!(name);
input_array_arg!(k);
input_array_arg!(tvec);
input_array_arg!(rot);
unsafe { sys::cv_ovis_WindowScene_createCameraEntity_const_StringR_const__InputArrayR_const_SizeR_float_const__InputArrayR_const__InputArrayR_const_ScalarR(self.as_raw_mut_WindowScene(), name.opencv_as_extern(), k.as_raw__InputArray(), &imsize, z_far, tvec.as_raw__InputArray(), rot.as_raw__InputArray(), &color) }.into_result()
}
fn create_light_entity(&mut self, name: &str, tvec: &dyn core::ToInputArray, rot: &dyn core::ToInputArray, diffuse_color: core::Scalar, specular_color: core::Scalar) -> Result<()> {
extern_container_arg!(name);
input_array_arg!(tvec);
input_array_arg!(rot);
unsafe { sys::cv_ovis_WindowScene_createLightEntity_const_StringR_const__InputArrayR_const__InputArrayR_const_ScalarR_const_ScalarR(self.as_raw_mut_WindowScene(), name.opencv_as_extern(), tvec.as_raw__InputArray(), rot.as_raw__InputArray(), &diffuse_color, &specular_color) }.into_result()
}
fn update_entity_pose(&mut self, name: &str, tvec: &dyn core::ToInputArray, rot: &dyn core::ToInputArray) -> Result<()> {
extern_container_arg!(name);
input_array_arg!(tvec);
input_array_arg!(rot);
unsafe { sys::cv_ovis_WindowScene_updateEntityPose_const_StringR_const__InputArrayR_const__InputArrayR(self.as_raw_mut_WindowScene(), name.opencv_as_extern(), tvec.as_raw__InputArray(), rot.as_raw__InputArray()) }.into_result()
}
fn set_entity_pose(&mut self, name: &str, tvec: &dyn core::ToInputArray, rot: &dyn core::ToInputArray, invert: bool) -> Result<()> {
extern_container_arg!(name);
input_array_arg!(tvec);
input_array_arg!(rot);
unsafe { sys::cv_ovis_WindowScene_setEntityPose_const_StringR_const__InputArrayR_const__InputArrayR_bool(self.as_raw_mut_WindowScene(), name.opencv_as_extern(), tvec.as_raw__InputArray(), rot.as_raw__InputArray(), invert) }.into_result()
}
fn get_entity_pose(&mut self, name: &str, r: &mut dyn core::ToOutputArray, tvec: &mut dyn core::ToOutputArray, invert: bool) -> Result<()> {
extern_container_arg!(name);
output_array_arg!(r);
output_array_arg!(tvec);
unsafe { sys::cv_ovis_WindowScene_getEntityPose_const_StringR_const__OutputArrayR_const__OutputArrayR_bool(self.as_raw_mut_WindowScene(), name.opencv_as_extern(), r.as_raw__OutputArray(), tvec.as_raw__OutputArray(), invert) }.into_result()
}
fn get_entity_animations(&mut self, name: &str, out: &mut core::Vector::<String>) -> Result<()> {
extern_container_arg!(name);
unsafe { sys::cv_ovis_WindowScene_getEntityAnimations_const_StringR_vector_String_R(self.as_raw_mut_WindowScene(), name.opencv_as_extern(), out.as_raw_mut_VectorOfString()) }.into_result()
}
fn play_entity_animation(&mut self, name: &str, animname: &str, loop_: bool) -> Result<()> {
extern_container_arg!(name);
extern_container_arg!(animname);
unsafe { sys::cv_ovis_WindowScene_playEntityAnimation_const_StringR_const_StringR_bool(self.as_raw_mut_WindowScene(), name.opencv_as_extern(), animname.opencv_as_extern(), loop_) }.into_result()
}
fn stop_entity_animation(&mut self, name: &str, animname: &str) -> Result<()> {
extern_container_arg!(name);
extern_container_arg!(animname);
unsafe { sys::cv_ovis_WindowScene_stopEntityAnimation_const_StringR_const_StringR(self.as_raw_mut_WindowScene(), name.opencv_as_extern(), animname.opencv_as_extern()) }.into_result()
}
fn get_screenshot(&mut self, frame: &mut dyn core::ToOutputArray) -> Result<()> {
output_array_arg!(frame);
unsafe { sys::cv_ovis_WindowScene_getScreenshot_const__OutputArrayR(self.as_raw_mut_WindowScene(), frame.as_raw__OutputArray()) }.into_result()
}
fn get_compositor_texture(&mut self, compname: &str, texname: &str, out: &mut dyn core::ToOutputArray, mrt_index: i32) -> Result<()> {
extern_container_arg!(compname);
extern_container_arg!(texname);
output_array_arg!(out);
unsafe { sys::cv_ovis_WindowScene_getCompositorTexture_const_StringR_const_StringR_const__OutputArrayR_int(self.as_raw_mut_WindowScene(), compname.opencv_as_extern(), texname.opencv_as_extern(), out.as_raw__OutputArray(), mrt_index) }.into_result()
}
fn get_depth(&mut self, depth: &mut dyn core::ToOutputArray) -> Result<()> {
output_array_arg!(depth);
unsafe { sys::cv_ovis_WindowScene_getDepth_const__OutputArrayR(self.as_raw_mut_WindowScene(), depth.as_raw__OutputArray()) }.into_result()
}
fn fix_camera_yaw_axis(&mut self, use_fixed: bool, up: &dyn core::ToInputArray) -> Result<()> {
input_array_arg!(up);
unsafe { sys::cv_ovis_WindowScene_fixCameraYawAxis_bool_const__InputArrayR(self.as_raw_mut_WindowScene(), use_fixed, up.as_raw__InputArray()) }.into_result()
}
fn set_camera_pose(&mut self, tvec: &dyn core::ToInputArray, rot: &dyn core::ToInputArray, invert: bool) -> Result<()> {
input_array_arg!(tvec);
input_array_arg!(rot);
unsafe { sys::cv_ovis_WindowScene_setCameraPose_const__InputArrayR_const__InputArrayR_bool(self.as_raw_mut_WindowScene(), tvec.as_raw__InputArray(), rot.as_raw__InputArray(), invert) }.into_result()
}
fn set_camera_look_at(&mut self, target: &str, offset: &dyn core::ToInputArray) -> Result<()> {
extern_container_arg!(target);
input_array_arg!(offset);
unsafe { sys::cv_ovis_WindowScene_setCameraLookAt_const_StringR_const__InputArrayR(self.as_raw_mut_WindowScene(), target.opencv_as_extern(), offset.as_raw__InputArray()) }.into_result()
}
fn set_entity_look_at(&mut self, origin: &str, target: &str, offset: &dyn core::ToInputArray) -> Result<()> {
extern_container_arg!(origin);
extern_container_arg!(target);
input_array_arg!(offset);
unsafe { sys::cv_ovis_WindowScene_setEntityLookAt_const_StringR_const_StringR_const__InputArrayR(self.as_raw_mut_WindowScene(), origin.opencv_as_extern(), target.opencv_as_extern(), offset.as_raw__InputArray()) }.into_result()
}
fn get_camera_pose(&mut self, r: &mut dyn core::ToOutputArray, tvec: &mut dyn core::ToOutputArray, invert: bool) -> Result<()> {
output_array_arg!(r);
output_array_arg!(tvec);
unsafe { sys::cv_ovis_WindowScene_getCameraPose_const__OutputArrayR_const__OutputArrayR_bool(self.as_raw_mut_WindowScene(), r.as_raw__OutputArray(), tvec.as_raw__OutputArray(), invert) }.into_result()
}
fn set_camera_intrinsics(&mut self, k: &dyn core::ToInputArray, imsize: core::Size, z_near: f32, z_far: f32) -> Result<()> {
input_array_arg!(k);
unsafe { sys::cv_ovis_WindowScene_setCameraIntrinsics_const__InputArrayR_const_SizeR_float_float(self.as_raw_mut_WindowScene(), k.as_raw__InputArray(), &imsize, z_near, z_far) }.into_result()
}
fn update(&mut self) -> Result<()> {
unsafe { sys::cv_ovis_WindowScene_update(self.as_raw_mut_WindowScene()) }.into_result()
}
}