SLProject  4.3.020
A platform independent 3D computer graphics framework for desktop OS, Android, iOS and online in web browsers
SENSAndroidARCoreJava Class Reference

#include <SENSAndroidARCoreJava.h>

Inheritance diagram for SENSAndroidARCoreJava:
[legend]

Public Member Functions

 SENSAndroidARCoreJava (JavaVM *vm, jobject *activityContext)
 
 ~SENSAndroidARCoreJava ()
 
bool init (int targetWidth, int targetHeight, int manipWidth, int manipHeight, bool convertManipToGray) override
 
bool isReady () override
 
bool resume () override
 
void reset () override
 
void pause () override
 
bool update (cv::Mat &pose) override
 
- Public Member Functions inherited from SENSARBaseCamera
 SENSARBaseCamera ()
 
virtual ~SENSARBaseCamera ()
 
virtual bool init (unsigned int textureId=0, bool retrieveCpuImg=false, int targetWidth=-1)=0
 
virtual void lightComponentIntensity (float *components)
 
virtual bool isInstalled ()
 
virtual bool isAvailable ()
 
virtual bool install ()
 
virtual bool installRefused ()
 
virtual void installRefused (bool b)
 
bool isRunning ()
 
void fetchPointCloud (bool s)
 
cv::Mat pointCloud ()
 
cv::Size inputFrameSize ()
 
cv::Size cpuFrameSize ()
 
- Public Member Functions inherited from SENSBaseCamera
SENSFrameBasePtr latestFrame () override
 Get the latest captured frame. If no frame was captured the frame will be empty (null). More...
 
const SENSCameraConfigconfig () const override
 defines how the camera was configured during start More...
 
void registerListener (SENSCameraListener *listener) override
 
void unregisterListener (SENSCameraListener *listener) override
 
bool started () const override
 
bool permissionGranted () const override
 
void setPermissionGranted () override
 
- Public Member Functions inherited from SENSCamera
virtual ~SENSCamera ()
 
virtual const SENSCameraConfigstart (std::string deviceId, const SENSCameraStreamConfig &streamConfig, bool provideIntrinsics=true)=0
 
virtual void stop ()=0
 Stop a started camera device. More...
 
virtual const SENSCapturePropscaptureProperties ()=0
 Get SENSCaptureProps which contains necessary information about all available camera devices and their capabilities. More...
 

Private Attributes

JavaVM * _vm = nullptr
 
jobject _object = nullptr
 
bool _isReady
 

Additional Inherited Members

- Protected Member Functions inherited from SENSBaseCamera
void updateFrame (cv::Mat bgrImg, cv::Mat intrinsics, int width, int height, bool intrinsicsChanged)
 
void processStart ()
 call from start function to do startup preprocessing More...
 
- Protected Attributes inherited from SENSARBaseCamera
bool _running = false
 
bool _pause = true
 
int _inputFrameW = 0
 
int _inputFrameH = 0
 
bool _retrieveCpuImg = false
 
int _cpuImgTargetWidth = -1
 
int _cpuImgTargetHeight = -1
 
bool _fetchPointCloud = false
 
cv::Mat _pointCloud
 
- Protected Attributes inherited from SENSBaseCamera
SENSCaptureProps _captureProperties
 
std::atomic< bool > _started {false}
 flags if camera was started More...
 
SENSCameraConfig _config
 indicates what is currently running More...
 
std::atomic< bool > _permissionGranted {false}
 
std::vector< SENSCameraListener * > _listeners
 
std::mutex _listenerMutex
 
SENSFrameBasePtr _frame
 current frame More...
 
std::mutex _frameMutex
 

Detailed Description

Definition at line 22 of file SENSAndroidARCoreJava.h.

Constructor & Destructor Documentation

◆ SENSAndroidARCoreJava()

SENSAndroidARCoreJava::SENSAndroidARCoreJava ( JavaVM *  vm,
jobject *  activityContext 
)

Definition at line 17 of file SENSAndroidARCoreJava.cpp.

19  : _vm(vm), _object(*activityContext)
20 {
21  JNIEnv* env;
22  _vm->GetEnv((void**)&env, JNI_VERSION_1_6);
23  _vm->AttachCurrentThread(&env, NULL);
24 
25  jclass clazz = env->GetObjectClass(_object);
26  jmethodID methodId = env->GetMethodID(clazz,
27  "ARCoreAvailable",
28  "()Z");
29 
30  _available = env->CallBooleanMethod(_object, methodId);
31 
32  _vm->DetachCurrentThread();
33 }

◆ ~SENSAndroidARCoreJava()

SENSAndroidARCoreJava::~SENSAndroidARCoreJava ( )
inline

Definition at line 26 of file SENSAndroidARCoreJava.h.

26 { ; }

Member Function Documentation

◆ init()

bool SENSAndroidARCoreJava::init ( int  targetWidth,
int  targetHeight,
int  manipWidth,
int  manipHeight,
bool  convertManipToGray 
)
override

Definition at line 35 of file SENSAndroidARCoreJava.cpp.

40 {
41  JNIEnv* env;
42  _vm->GetEnv((void**)&env, JNI_VERSION_1_6);
43  _vm->AttachCurrentThread(&env, NULL);
44 
45  jclass clazz = env->GetObjectClass(_object);
46  jmethodID methodId = env->GetMethodID(clazz,
47  "InitARCore",
48  "(II)Z");
49 
50  bool isReady = env->CallBooleanMethod(_object, methodId, targetWidth, targetHeight);
51 
52  _vm->DetachCurrentThread();
53  _running = true;
54  return _isReady;
55 }

◆ isReady()

bool SENSAndroidARCoreJava::isReady ( )
inlineoverridevirtual

Implements SENSARBaseCamera.

Definition at line 33 of file SENSAndroidARCoreJava.h.

33 { return _isReady; }

◆ pause()

void SENSAndroidARCoreJava::pause ( )
overridevirtual

Implements SENSARBaseCamera.

Definition at line 85 of file SENSAndroidARCoreJava.cpp.

86 {
87  if (!_running)
88  return;
89  _running = false;
90 
91  // stop locations manager
92  JNIEnv* env;
93  _vm->GetEnv((void**)&env, JNI_VERSION_1_6);
94  _vm->AttachCurrentThread(&env, NULL);
95 
96  jclass clazz = env->GetObjectClass(_object);
97  jmethodID methodId = env->GetMethodID(clazz,
98  "PauseARCore",
99  "()V");
100  env->CallVoidMethod(_object, methodId);
101 
102  _vm->DetachCurrentThread();
103 }

◆ reset()

void SENSAndroidARCoreJava::reset ( )
overridevirtual

Implements SENSARBaseCamera.

Definition at line 57 of file SENSAndroidARCoreJava.cpp.

58 {
59  return;
60 }

◆ resume()

bool SENSAndroidARCoreJava::resume ( )
overridevirtual

Implements SENSARBaseCamera.

Definition at line 62 of file SENSAndroidARCoreJava.cpp.

63 {
64  Utils::log("AAAAAAAAAAAAAAA", "resume");
65  if (_running)
66  return true;
67 
68  JNIEnv* env;
69  _vm->GetEnv((void**)&env, JNI_VERSION_1_6);
70  _vm->AttachCurrentThread(&env, NULL);
71 
72  jclass clazz = env->GetObjectClass(_object);
73  jmethodID methodId = env->GetMethodID(clazz,
74  "ResumeARCore",
75  "()Z");
76  bool success = env->CallBooleanMethod(_object, methodId);
77 
78  _vm->DetachCurrentThread();
79 
80  _running = success;
81  Utils::log("AAAAAAAAAAAAAAA", "resumed");
82  return _running;
83 }
void log(const char *tag, const char *format,...)
logs a formatted string platform independently
Definition: Utils.cpp:1100

◆ update()

bool SENSAndroidARCoreJava::update ( cv::Mat &  view)
overridevirtual

Returns true if in tracking state. If correctly initialized, it will update the camera frame that may be retrieved with latestFrame()

Reimplemented from SENSARBaseCamera.

Definition at line 105 of file SENSAndroidARCoreJava.cpp.

106 {
107  JNIEnv* env;
108  _vm->GetEnv((void**)&env, JNI_VERSION_1_6);
109  _vm->AttachCurrentThread(&env, NULL);
110  jclass clazz = env->GetObjectClass(_object);
111  jmethodID methodId = env->GetMethodID(clazz,
112  "UpdateARCore",
113  "()Z");
114 
115  bool tracking = env->CallBooleanMethod(_object, methodId);
116 
117  _vm->DetachCurrentThread();
118 
119  return tracking;
120 }

Member Data Documentation

◆ _isReady

bool SENSAndroidARCoreJava::_isReady
private

Definition at line 42 of file SENSAndroidARCoreJava.h.

◆ _object

jobject SENSAndroidARCoreJava::_object = nullptr
private

Definition at line 41 of file SENSAndroidARCoreJava.h.

◆ _vm

JavaVM* SENSAndroidARCoreJava::_vm = nullptr
private

Definition at line 40 of file SENSAndroidARCoreJava.h.


The documentation for this class was generated from the following files: