VTK
vtkJavaUtil.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkJavaUtil.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 
16 #ifndef vtkJavaUtil_h
17 #define vtkJavaUtil_h
18 
19 #include "vtkSystemIncludes.h"
20 #include <jni.h>
21 #include "vtkCommand.h"
22 #include "vtkWrappingJavaModule.h"
23 
24 #include <string>
25 
26 extern VTKWRAPPINGJAVA_EXPORT jlong q(JNIEnv *env,jobject obj);
27 
28 extern VTKWRAPPINGJAVA_EXPORT void *vtkJavaGetPointerFromObject(JNIEnv *env,jobject obj);
29 extern VTKWRAPPINGJAVA_EXPORT char *vtkJavaUTFToChar(JNIEnv *env, jstring in);
30 extern VTKWRAPPINGJAVA_EXPORT bool vtkJavaUTFToString(JNIEnv *env, jstring in, std::string &out);
31 extern VTKWRAPPINGJAVA_EXPORT jstring vtkJavaMakeJavaString(JNIEnv *env, const char *in);
32 
33 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfFloatFromFloat(JNIEnv *env,
34  float *arr, int size);
35 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfDoubleFromFloat(JNIEnv *env,
36  float *arr, int size);
37 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfDoubleFromDouble(JNIEnv *env,
38  double *arr, int size);
39 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfShortFromShort(JNIEnv *env, short *arr, int size);
40 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfIntFromInt(JNIEnv *env, int *arr, int size);
41 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfIntFromIdType(JNIEnv *env, vtkIdType *arr, int size);
42 #if defined(VTK_TYPE_USE_LONG_LONG)
43 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfIntFromLongLong(JNIEnv *env, long long *arr, int size);
44 #endif
45 #if defined(VTK_TYPE_USE___INT64)
46 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfIntFrom__Int64(JNIEnv *env, __int64 *arr, int size);
47 #endif
48 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfIntFromSignedChar(JNIEnv *env, signed char *arr, int size);
49 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfLongFromLong(JNIEnv *env, long *arr, int size);
50 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfByteFromUnsignedChar(JNIEnv *env, unsigned char *arr, int size);
51 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfByteFromChar(JNIEnv *env, char *arr, int size);
52 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfCharFromChar(JNIEnv *env, char *arr, int size);
53 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfUnsignedCharFromUnsignedChar(JNIEnv *env, unsigned char *arr, int size);
54 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfUnsignedIntFromUnsignedInt(JNIEnv *env, unsigned int *arr, int size);
55 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfUnsignedShortFromUnsignedShort(JNIEnv *env,unsigned short *ptr,int size);
56 extern VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfUnsignedLongFromUnsignedLong(JNIEnv *env, unsigned long *arr, int size);
57 
58 // this is the void pointer parameter passed to the vtk callback routines on
59 // behalf of the Java interface for callbacks.
61 {
62  JavaVM *vm;
63  jobject uobj;
64  jmethodID mid;
65 } ;
66 
67 extern VTKWRAPPINGJAVA_EXPORT void vtkJavaVoidFunc(void *);
68 extern VTKWRAPPINGJAVA_EXPORT void vtkJavaVoidFuncArgDelete(void *);
69 
70 class VTKWRAPPINGJAVA_EXPORT vtkJavaCommand : public vtkCommand
71 {
72 public:
73  static vtkJavaCommand *New() { return new vtkJavaCommand; };
74 
75  void SetGlobalRef(jobject obj) { this->uobj = obj; };
76  void SetMethodID(jmethodID id) { this->mid = id; };
77  void AssignJavaVM(JNIEnv *env) { env->GetJavaVM(&(this->vm)); };
78 
79  void Execute(vtkObject *, unsigned long, void *);
80 
81  JavaVM *vm;
82  jobject uobj;
83  jmethodID mid;
84 protected:
86  ~vtkJavaCommand();
87 };
88 
89 #endif
90 // VTK-HeaderTest-Exclude: vtkJavaUtil.h
virtual void Execute(vtkObject *caller, unsigned long eventId, void *callData)=0
JavaVM * vm
Definition: vtkJavaUtil.h:81
VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfIntFromInt(JNIEnv *env, int *arr, int size)
abstract base class for most VTK objects
Definition: vtkObject.h:61
VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfUnsignedCharFromUnsignedChar(JNIEnv *env, unsigned char *arr, int size)
void SetMethodID(jmethodID id)
Definition: vtkJavaUtil.h:76
VTKWRAPPINGJAVA_EXPORT char * vtkJavaUTFToChar(JNIEnv *env, jstring in)
VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfDoubleFromDouble(JNIEnv *env, double *arr, int size)
VTKWRAPPINGJAVA_EXPORT bool vtkJavaUTFToString(JNIEnv *env, jstring in, std::string &out)
VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfByteFromUnsignedChar(JNIEnv *env, unsigned char *arr, int size)
VTKWRAPPINGJAVA_EXPORT void vtkJavaVoidFuncArgDelete(void *)
VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfUnsignedShortFromUnsignedShort(JNIEnv *env, unsigned short *ptr, int size)
VTKWRAPPINGJAVA_EXPORT jstring vtkJavaMakeJavaString(JNIEnv *env, const char *in)
VTKWRAPPINGJAVA_EXPORT void vtkJavaVoidFunc(void *)
VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfUnsignedIntFromUnsignedInt(JNIEnv *env, unsigned int *arr, int size)
int vtkIdType
Definition: vtkType.h:275
jobject uobj
Definition: vtkJavaUtil.h:82
VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfIntFromSignedChar(JNIEnv *env, signed char *arr, int size)
VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfLongFromLong(JNIEnv *env, long *arr, int size)
void AssignJavaVM(JNIEnv *env)
Definition: vtkJavaUtil.h:77
superclass for callback/observer methods
Definition: vtkCommand.h:325
void SetGlobalRef(jobject obj)
Definition: vtkJavaUtil.h:75
VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfByteFromChar(JNIEnv *env, char *arr, int size)
VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfIntFromIdType(JNIEnv *env, vtkIdType *arr, int size)
VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfShortFromShort(JNIEnv *env, short *arr, int size)
VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfUnsignedLongFromUnsignedLong(JNIEnv *env, unsigned long *arr, int size)
VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfCharFromChar(JNIEnv *env, char *arr, int size)
VTKWRAPPINGJAVA_EXPORT jlong q(JNIEnv *env, jobject obj)
VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfFloatFromFloat(JNIEnv *env, float *arr, int size)
VTKWRAPPINGJAVA_EXPORT jarray vtkJavaMakeJArrayOfDoubleFromFloat(JNIEnv *env, float *arr, int size)
VTKWRAPPINGJAVA_EXPORT void * vtkJavaGetPointerFromObject(JNIEnv *env, jobject obj)
static vtkJavaCommand * New()
Definition: vtkJavaUtil.h:73
jmethodID mid
Definition: vtkJavaUtil.h:83