This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

feat: scale drawing thickness as you move closer to or further from the camera

+12 -65
+1 -1
README.md
··· 6 6 Import the Compose library 7 7 8 8 ```kotlin 9 - implementation("com.performancecoachlab.posedetection:posedetection-compose:1.0.1") 9 + implementation("com.performancecoachlab.posedetection:posedetection-compose:1.0.2") 10 10 ``` 11 11 12 12 Add camera use to your android manifest
+2 -2
posedetection/build.gradle.kts
··· 1 + import com.vanniktech.maven.publish.SonatypeHost 1 2 import org.jetbrains.compose.ExperimentalComposeLibrary 2 3 import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetTree 3 - import com.vanniktech.maven.publish.SonatypeHost 4 4 5 5 mavenPublishing { 6 6 publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) 7 - coordinates("com.performancecoachlab.posedetection", "posedetection-compose", "1.0.1") 7 + coordinates("com.performancecoachlab.posedetection", "posedetection-compose", "1.0.2") 8 8 9 9 pom { 10 10 name.set("Pose Detection")
-1
posedetection/src/iosMain/kotlin/com/performancecoachlab/posedetection/camera/CameraEngine.kt
··· 44 44 import platform.AVFoundation.AVCaptureVideoOrientationPortrait 45 45 import platform.AVFoundation.AVCaptureVideoOrientationPortraitUpsideDown 46 46 import platform.AVFoundation.AVCaptureVideoPreviewLayer 47 - import platform.AVFoundation.AVLayerVideoGravityResize 48 47 import platform.AVFoundation.AVLayerVideoGravityResizeAspectFill 49 48 import platform.AVFoundation.AVMediaTypeVideo 50 49 import platform.AVFoundation.AVVideoCodecJPEG
-47
posedetection/src/iosMain/kotlin/com/performancecoachlab/posedetection/camera/CameraView.ios.kt
··· 3 3 import androidx.compose.foundation.Image 4 4 import androidx.compose.foundation.layout.Box 5 5 import androidx.compose.foundation.layout.fillMaxSize 6 - import androidx.compose.foundation.layout.fillMaxWidth 7 - import androidx.compose.foundation.layout.height 8 - import androidx.compose.foundation.layout.requiredHeight 9 - import androidx.compose.foundation.layout.requiredWidth 10 - import androidx.compose.foundation.layout.width 11 - import androidx.compose.material3.Surface 12 - import androidx.compose.material3.Text 13 6 import androidx.compose.runtime.Composable 14 7 import androidx.compose.runtime.LaunchedEffect 15 - import androidx.compose.runtime.SideEffect 16 8 import androidx.compose.runtime.collectAsState 17 9 import androidx.compose.runtime.getValue 18 10 import androidx.compose.runtime.mutableStateOf 19 11 import androidx.compose.runtime.remember 20 - import androidx.compose.runtime.rememberCoroutineScope 21 - import androidx.compose.runtime.rememberUpdatedState 22 - import androidx.compose.runtime.setValue 23 12 import androidx.compose.ui.Modifier 24 - import androidx.compose.ui.graphics.ImageBitmap 25 13 import androidx.compose.ui.layout.ContentScale 26 - import androidx.compose.ui.unit.dp 27 - import com.performancecoachlab.posedetection.skeleton.Skeleton 28 14 import com.performancecoachlab.posedetection.skeleton.SkeletonRepository 29 - import kotlinx.cinterop.CValue 30 - import kotlinx.cinterop.ExperimentalForeignApi 31 - import kotlinx.cinterop.useContents 32 - import kotlinx.coroutines.delay 33 - import kotlinx.coroutines.launch 34 - import platform.CoreGraphics.CGImageGetHeight 35 - import platform.CoreGraphics.CGImageGetWidth 36 - import platform.CoreGraphics.CGImageRef 37 - import platform.CoreGraphics.CGImageRelease 38 - import platform.CoreGraphics.CGPoint 39 - import platform.Foundation.NSData 40 - import platform.UIKit.UIImage 41 - import platform.Vision.VNDetectHumanBodyPoseRequest 42 - import platform.Vision.VNHumanBodyPoseObservation 43 - import platform.Vision.VNHumanBodyPoseObservationJointName 44 - import platform.Vision.VNHumanBodyPoseObservationJointNameLeftAnkle 45 - import platform.Vision.VNHumanBodyPoseObservationJointNameLeftElbow 46 - import platform.Vision.VNHumanBodyPoseObservationJointNameLeftHip 47 - import platform.Vision.VNHumanBodyPoseObservationJointNameLeftKnee 48 - import platform.Vision.VNHumanBodyPoseObservationJointNameLeftShoulder 49 - import platform.Vision.VNHumanBodyPoseObservationJointNameLeftWrist 50 - import platform.Vision.VNHumanBodyPoseObservationJointNameRightAnkle 51 - import platform.Vision.VNHumanBodyPoseObservationJointNameRightElbow 52 - import platform.Vision.VNHumanBodyPoseObservationJointNameRightHip 53 - import platform.Vision.VNHumanBodyPoseObservationJointNameRightKnee 54 - import platform.Vision.VNHumanBodyPoseObservationJointNameRightShoulder 55 - import platform.Vision.VNHumanBodyPoseObservationJointNameRightWrist 56 - import platform.Vision.VNImagePointForNormalizedPoint 57 - import platform.Vision.VNImageRequestHandler 58 - import platform.Vision.VNRecognizedPoint 59 - import platform.Vision.VNRequest 60 15 import kotlin.native.runtime.NativeRuntimeApi 61 - import kotlin.time.Clock 62 - import kotlin.time.ExperimentalTime 63 16 64 17 @OptIn(NativeRuntimeApi::class) 65 18 @Composable
+9 -7
posedetection/src/iosMain/kotlin/com/performancecoachlab/posedetection/camera/Conversions.kt
··· 1 1 package com.performancecoachlab.posedetection.camera 2 2 3 + import androidx.compose.ui.graphics.ImageBitmap 3 4 import kotlinx.cinterop.ExperimentalForeignApi 4 5 import kotlinx.cinterop.addressOf 5 6 import kotlinx.cinterop.usePinned 7 + import platform.CoreGraphics.CGImageRef 8 + import platform.CoreGraphics.CGImageRelease 9 + import platform.CoreGraphics.CGRectMake 10 + import platform.CoreImage.CIContext 11 + import platform.CoreImage.CIImage 12 + import platform.CoreImage.createCGImage 6 13 import platform.CoreVideo.CVImageBufferRef 7 14 import platform.CoreVideo.CVPixelBufferGetBaseAddress 8 15 import platform.CoreVideo.CVPixelBufferGetBytesPerRow 9 16 import platform.CoreVideo.CVPixelBufferGetHeight 10 17 import platform.CoreVideo.CVPixelBufferGetWidth 11 18 import platform.CoreVideo.CVPixelBufferLockBaseAddress 12 - import platform.CoreVideo.CVPixelBufferUnlockBaseAddress 13 19 import platform.CoreVideo.CVPixelBufferLockFlags 14 - import platform.posix.memcpy 15 - import platform.CoreGraphics.* 20 + import platform.CoreVideo.CVPixelBufferUnlockBaseAddress 16 21 import platform.UIKit.UIImage 17 - import androidx.compose.ui.graphics.ImageBitmap 18 - import platform.CoreImage.CIContext 19 - import platform.CoreImage.CIImage 20 - import platform.CoreImage.createCGImage 22 + import platform.posix.memcpy 21 23 import platform.posix.size_t 22 24 23 25 @OptIn(ExperimentalForeignApi::class)
-6
posedetection/src/iosMain/kotlin/com/performancecoachlab/posedetection/camera/FrameProcessor.kt
··· 1 1 package com.performancecoachlab.posedetection.camera 2 2 3 3 import com.performancecoachlab.posedetection.skeleton.Skeleton 4 - import com.performancecoachlab.posedetection.skeleton.SkeletonRepository 5 4 import kotlinx.cinterop.BetaInteropApi 6 5 import kotlinx.cinterop.CValue 7 6 import kotlinx.cinterop.ExperimentalForeignApi ··· 10 9 import kotlinx.cinterop.memScoped 11 10 import kotlinx.cinterop.ptr 12 11 import kotlinx.cinterop.useContents 13 - import kotlinx.cinterop.usePinned 14 12 import kotlinx.cinterop.value 15 13 import platform.CoreGraphics.CGImageGetHeight 16 14 import platform.CoreGraphics.CGImageGetWidth 17 15 import platform.CoreGraphics.CGImageRef 18 16 import platform.CoreGraphics.CGPoint 19 - import platform.CoreMedia.CMSampleBufferRef 20 17 import platform.Foundation.NSError 21 - import platform.UIKit.UIImage 22 18 import platform.Vision.VNDetectHumanBodyPoseRequest 23 19 import platform.Vision.VNHumanBodyPoseObservation 24 20 import platform.Vision.VNHumanBodyPoseObservationJointName ··· 38 34 import platform.Vision.VNImageRequestHandler 39 35 import platform.Vision.VNRecognizedPoint 40 36 import platform.Vision.VNRequest 41 - import platform.posix.size_t 42 - import platform.zlib.uLong 43 37 import kotlin.native.runtime.NativeRuntimeApi 44 38 45 39 class FrameProcessor {
-1
posedetection/src/iosMain/kotlin/com/performancecoachlab/posedetection/camera/FrameRepository.kt
··· 4 4 import kotlinx.cinterop.ExperimentalForeignApi 5 5 import kotlinx.coroutines.flow.MutableStateFlow 6 6 import kotlinx.coroutines.flow.StateFlow 7 - import platform.CoreGraphics.CGImageRef 8 7 9 8 class FrameRepository { 10 9 @OptIn(ExperimentalForeignApi::class)