Merge commit 'refs/remotes/origin/5.1'
[scilab.git] / scilab / modules / renderer / src / jni / DrawableFigureGL.hxx
1 /* Generated by GIWS (version 1.0.3) */
2 /*
3
4 Copyright 2007-2008 INRIA
5
6 Author : Sylvestre Ledru & others
7
8 This software is a computer program whose purpose is to hide the complexity
9 of accessing Java objects/methods from C++ code.
10
11 This software is governed by the CeCILL-B license under French law and
12 abiding by the rules of distribution of free software.  You can  use, 
13 modify and/ or redistribute the software under the terms of the CeCILL-B
14 license as circulated by CEA, CNRS and INRIA at the following URL
15 "http://www.cecill.info". 
16
17 As a counterpart to the access to the source code and  rights to copy,
18 modify and redistribute granted by the license, users are provided only
19 with a limited warranty  and the software's author,  the holder of the
20 economic rights,  and the successive licensors  have only  limited
21 liability. 
22
23 In this respect, the user's attention is drawn to the risks associated
24 with loading,  using,  modifying and/or developing or reproducing the
25 software by the user in light of its specific status of free software,
26 that may mean  that it is complicated to manipulate,  and  that  also
27 therefore means  that it is reserved for developers  and  experienced
28 professionals having in-depth computer knowledge. Users are therefore
29 encouraged to load and test the software's suitability as regards their
30 requirements in conditions enabling the security of their systems and/or 
31 data to be ensured and,  more generally, to use and operate it in the 
32 same conditions as regards security. 
33
34 The fact that you are presently reading this means that you have had
35 knowledge of the CeCILL-B license and that you accept its terms.
36 */
37
38
39 #ifndef __ORG_SCILAB_MODULES_RENDERER_FIGUREDRAWING_DRAWABLEFIGUREGL__
40 #define __ORG_SCILAB_MODULES_RENDERER_FIGUREDRAWING_DRAWABLEFIGUREGL__
41 #include <iostream>
42 #include <string>
43 #include <string.h>
44 #include <stdlib.h>
45 #include <jni.h>
46
47 #include "GiwsException.hxx"
48
49 namespace org_scilab_modules_renderer_figureDrawing {
50
51 class DrawableFigureGL {
52 private:
53 JavaVM * jvm;
54 jobject instance;
55
56 jclass instanceClass; // cache class
57 jmethodID voiddisplayID; // cache method id
58 jmethodID voidinitializeDrawingjintID; // cache method id
59 jmethodID voidendDrawingID; // cache method id
60 jmethodID voidshowjintID; // cache method id
61 jmethodID voiddestroyjintID; // cache method id
62 jmethodID voidsetFigureIndexjintID; // cache method id
63 jmethodID voiddrawCanvasID; // cache method id
64 jmethodID voiddrawBackgroundID; // cache method id
65 jmethodID voidsetBackgroundColorjintID; // cache method id
66 jmethodID voidsetLogicalOpjintID; // cache method id
67 jmethodID voidsetColorMapDatajdoubleArrayID; // cache method id
68 jmethodID jdoubleArraygetColorMapDataID; // cache method id
69 jmethodID jintgetColorMapSizeID; // cache method id
70 jmethodID jintgetCanvasWidthID; // cache method id
71 jmethodID jintgetCanvasHeightID; // cache method id
72 jmethodID jintsetCanvasSizejintjintID; // cache method id
73 jmethodID jintgetWindowPosXID; // cache method id
74 jmethodID jintgetWindowPosYID; // cache method id
75 jmethodID voidsetWindowPositionjintjintID; // cache method id
76 jmethodID jintgetWindowWidthID; // cache method id
77 jmethodID jintgetWindowHeightID; // cache method id
78 jmethodID voidsetWindowSizejintjintID; // cache method id
79 jmethodID voidsetInfoMessagejstringID; // cache method id
80 jmethodID jstringgetInfoMessageID; // cache method id
81 jmethodID voidsetAutoResizeModejbooleanID; // cache method id
82 jmethodID jbooleangetAutoResizeModeID; // cache method id
83 jmethodID jintArraygetViewportID; // cache method id
84 jmethodID voidsetViewportjintjintjintjintID; // cache method id
85 jmethodID jintArrayrubberBoxjbooleanjintArrayID; // cache method id
86 jmethodID voidinteractiveZoomjlongID; // cache method id
87 jmethodID voidsetTitlejstringID; // cache method id
88 jmethodID voidinteractiveRotationID; // cache method id
89 jmethodID voidshowWindowID; // cache method id
90 jmethodID voidsetNbSubwinsjintID; // cache method id
91 jmethodID voidopenGraphicCanvasID; // cache method id
92 jmethodID voidcloseGraphicCanvasID; // cache method id
93 jmethodID voidsetUseSingleBufferjbooleanID; // cache method id
94 jmethodID jintgetAntialiasingQualityID; // cache method id
95 jmethodID voidsetAntialiasingQualityjintID; // cache method id
96
97
98 /**
99 * Get the environment matching to the current thread.
100 */
101 JNIEnv * getCurrentEnv();
102
103 public:
104 // Constructor
105 /**
106 * Create a wrapping of the object from a JNIEnv.
107 * It will call the default constructor
108 * @param JEnv_ the Java Env
109 */
110 DrawableFigureGL(JavaVM * jvm_);
111 /**
112 * Create a wrapping of an already existing object from a JNIEnv.
113 * The object must have already been instantiated
114 * @param JEnv_ the Java Env
115 * @param JObj the object
116 */
117 DrawableFigureGL(JavaVM * jvm_, jobject JObj);
118
119 // Destructor
120 ~DrawableFigureGL();
121
122 // Generic method
123 // Synchronization methods
124 /**
125 * Enter monitor associated with the object.
126 * Equivalent of creating a "synchronized(obj)" scope in Java.
127 */
128 void synchronize();
129
130 /**
131 * Exit monitor associated with the object.
132 * Equivalent of ending a "synchronized(obj)" scope.
133 */
134 void endSynchronize();
135
136 // Methods
137 void display();
138
139 void initializeDrawing(int figureIndex);
140
141 void endDrawing();
142
143 void show(int figureIndex);
144
145 void destroy(int parentFigureIndex);
146
147 void setFigureIndex(int figureIndex);
148
149 void drawCanvas();
150
151 void drawBackground();
152
153 void setBackgroundColor(int colorIndex);
154
155 void setLogicalOp(int logicOpIndex);
156
157 void setColorMapData(double * rgbmat, int rgbmatSize);
158
159 double * getColorMapData();
160
161 int getColorMapSize();
162
163 int getCanvasWidth();
164
165 int getCanvasHeight();
166
167 int setCanvasSize(int width, int height);
168
169 int getWindowPosX();
170
171 int getWindowPosY();
172
173 void setWindowPosition(int posX, int posY);
174
175 int getWindowWidth();
176
177 int getWindowHeight();
178
179 void setWindowSize(int width, int height);
180
181 void setInfoMessage(char * infoMessage);
182
183 char * getInfoMessage();
184
185 void setAutoResizeMode(bool onOrOff);
186
187 bool getAutoResizeMode();
188
189 int * getViewport();
190
191 void setViewport(int posX, int posY, int width, int height);
192
193 int * rubberBox(bool isClick, int * initialRect, int initialRectSize);
194
195 void interactiveZoom(long long objectHandle);
196
197 void setTitle(char * title);
198
199 void interactiveRotation();
200
201 void showWindow();
202
203 void setNbSubwins(int nbSubwins);
204
205 void openGraphicCanvas();
206
207 void closeGraphicCanvas();
208
209 void setUseSingleBuffer(bool useSingleBuffer);
210
211 int getAntialiasingQuality();
212
213 void setAntialiasingQuality(int quality);
214
215
216                         /**
217                         * Get class name to use for static methods
218                         * @return class name to use for static methods
219                         */
220                         
221                 static const std::string className()
222                 {
223                 return "org/scilab/modules/renderer/figureDrawing/DrawableFigureGL";
224                 }
225                 
226 };
227
228
229 }
230 #endif