orx-kinect refactoring + new general orx-depth-camera (#257)
This commit is contained in:
26
orx-depth-camera/build.gradle.kts
Normal file
26
orx-depth-camera/build.gradle.kts
Normal file
@@ -0,0 +1,26 @@
|
||||
plugins {
|
||||
kotlin("multiplatform")
|
||||
}
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
testRuns["test"].executionTask.configure {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
}
|
||||
js(IR) {
|
||||
browser()
|
||||
nodejs()
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val commonMain by getting {
|
||||
dependencies {
|
||||
implementation(libs.openrndr.application)
|
||||
implementation(libs.openrndr.math)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
72
orx-depth-camera/src/commonMain/kotlin/DepthCamera.kt
Normal file
72
orx-depth-camera/src/commonMain/kotlin/DepthCamera.kt
Normal file
@@ -0,0 +1,72 @@
|
||||
package org.openrndr.extra.depth.camera
|
||||
|
||||
import org.openrndr.draw.ColorBuffer
|
||||
import org.openrndr.math.IntVector2
|
||||
|
||||
/**
|
||||
* Defines how pixel values encoded in depth [ColorBuffer] will be interpreted.
|
||||
*/
|
||||
enum class DepthMeasurement {
|
||||
|
||||
/**
|
||||
* Raw values, but normalized to the range 0-1.
|
||||
* Useful for debugging, because full range of captured values can be rendered
|
||||
* as a texture. Therefore it's a default setting.
|
||||
*/
|
||||
RAW_NORMALIZED,
|
||||
|
||||
/**
|
||||
* Raw values, exactly as they are provided by the device.
|
||||
* Note: it might imply that [ColorBuffer] of the depth camera frame
|
||||
* is provided in integer-based format (for example in case of Kinect devices).
|
||||
*/
|
||||
RAW,
|
||||
|
||||
/**
|
||||
* Expressed in meters.
|
||||
* It is using floating point numbers.
|
||||
* Note: values above `1.0` will not be visible if displayed as a texture.
|
||||
*/
|
||||
METERS,
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* General API of any depth camera.
|
||||
*/
|
||||
interface DepthCamera {
|
||||
|
||||
/**
|
||||
* Current operating resolution.
|
||||
*/
|
||||
val resolution: IntVector2
|
||||
|
||||
/**
|
||||
* The units/mapping in which depth is expressed on received frames.
|
||||
*/
|
||||
var depthMeasurement: DepthMeasurement
|
||||
|
||||
/**
|
||||
* Flips source depth data image in horizontal axis (mirror).
|
||||
*/
|
||||
var flipH: Boolean
|
||||
|
||||
/**
|
||||
* Flips source depth data image in vertical axis (upside-down).
|
||||
*/
|
||||
var flipV: Boolean
|
||||
|
||||
/**
|
||||
* The most recent frame received from the depth camera.
|
||||
*/
|
||||
val currentFrame: ColorBuffer
|
||||
|
||||
/**
|
||||
* Will execute the supplied block of code with each most recent frame
|
||||
* from the depth camera as an input.
|
||||
*
|
||||
* @param block the code to execute when the new frame is received.
|
||||
*/
|
||||
fun onFrameReceived(block: (frame: ColorBuffer) -> Unit)
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user