Integration of OCCT 6.5.0 from SVN
[occt.git] / samples / java / drv / SampleImportExportJni / SampleImportExportJni_SampleImportExportPackage_java.cxx
1 //
2 //                     Copyright (C) 1991 - 2000 by  
3 //                      Matra Datavision SA.  All rights reserved.
4 //  
5 //                     Copyright (C) 2001 - 2004 by
6 //                     Open CASCADE SA.  All rights reserved.
7 // 
8 // This file is part of the Open CASCADE Technology software.
9 //
10 // This software may be distributed and/or modified under the terms and
11 // conditions of the Open CASCADE Public License as defined by Open CASCADE SA
12 // and appearing in the file LICENSE included in the packaging of this file.
13 //  
14 // This software is distributed on an "AS IS" basis, without warranty of any
15 // kind, and Open CASCADE SA hereby disclaims all such warranties,
16 // including without limitation, any warranties of merchantability, fitness
17 // for a particular purpose or non-infringement. Please see the License for
18 // the specific terms and conditions governing rights and limitations under the
19 // License.
20
21
22 #include <SampleImportExportJni_SampleImportExportPackage.h>
23 #include <SampleImportExportPackage.hxx>
24 #include <jcas.hxx>
25 #include <stdlib.h>
26 #include <Standard_ErrorHandler.hxx>
27 #include <Standard_Failure.hxx>
28 #include <Standard_SStream.hxx>
29
30 #include <V3d_Viewer.hxx>
31 #include <Standard_ExtString.hxx>
32 #include <V3d_View.hxx>
33 #include <Standard_Integer.hxx>
34 #include <Standard_Boolean.hxx>
35 #include <Standard_CString.hxx>
36 #include <AIS_InteractiveContext.hxx>
37 #include <TCollection_AsciiString.hxx>
38 #include <MgtBRep_TriangleMode.hxx>
39 #include <IFSelect_ReturnStatus.hxx>
40 #include <STEPControl_StepModelType.hxx>
41
42
43 extern "C" {
44
45
46 JNIEXPORT jobject JNICALL Java_SampleImportExportJni_SampleImportExportPackage_CreateViewer3d (JNIEnv *env, jclass, jstring aName)
47 {
48 jobject thejret;
49
50 jcas_Locking alock(env);
51 {
52 try {
53 Standard_ExtString the_aName = jcas_ConvertToExtString(env,aName);
54 Handle(V3d_Viewer)* theret = new Handle(V3d_Viewer);
55 *theret = SampleImportExportPackage::CreateViewer3d(the_aName);
56 thejret = jcas_CreateObject(env,"CASCADESamplesJni/V3d_Viewer",theret);
57
58 }
59 catch (Standard_Failure) {
60   Standard_SStream Err;
61   Err <<   Standard_Failure::Caught(); 
62   Err << (char) 0;
63   jcas_ThrowException(env,Err.str().c_str());
64 }
65 }
66 alock.Release();
67 return thejret;
68 }
69
70
71
72 JNIEXPORT void JNICALL Java_SampleImportExportJni_SampleImportExportPackage_SetWindow3d (JNIEnv *env, jclass, jobject aView, jint hiwin, jint lowin)
73 {
74
75 jcas_Locking alock(env);
76 {
77 try {
78  Handle( V3d_View ) the_aView;
79  void*                ptr_aView = jcas_GetHandle(env,aView);
80  
81  if ( ptr_aView != NULL ) the_aView = *(   (  Handle( V3d_View )*  )ptr_aView   );
82
83 SampleImportExportPackage::SetWindow3d(the_aView,(Standard_Integer) hiwin,(Standard_Integer) lowin);
84
85 }
86 catch (Standard_Failure) {
87   Standard_SStream Err;
88   Err <<   Standard_Failure::Caught(); 
89   Err << (char) 0;
90   jcas_ThrowException(env,Err.str().c_str());
91 }
92 }
93 alock.Release();
94
95 }
96
97
98
99 JNIEXPORT jboolean JNICALL Java_SampleImportExportJni_SampleImportExportPackage_ReadBREP (JNIEnv *env, jclass, jobject aFileName, jobject aContext)
100 {
101 jboolean thejret;
102
103 jcas_Locking alock(env);
104 {
105 try {
106 Standard_CString the_aFileName = jcas_ConvertToCString(env,aFileName);
107  Handle( AIS_InteractiveContext ) the_aContext;
108  void*                ptr_aContext = jcas_GetHandle(env,aContext);
109  
110  if ( ptr_aContext != NULL ) the_aContext = *(   (  Handle( AIS_InteractiveContext )*  )ptr_aContext   );
111
112  thejret = SampleImportExportPackage::ReadBREP(the_aFileName,the_aContext);
113
114 }
115 catch (Standard_Failure) {
116   Standard_SStream Err;
117   Err <<   Standard_Failure::Caught(); 
118   Err << (char) 0;
119   jcas_ThrowException(env,Err.str().c_str());
120 }
121 }
122 alock.Release();
123 return thejret;
124 }
125
126
127
128 JNIEXPORT jboolean JNICALL Java_SampleImportExportJni_SampleImportExportPackage_SaveBREP (JNIEnv *env, jclass, jobject aFileName, jobject aContext)
129 {
130 jboolean thejret;
131
132 jcas_Locking alock(env);
133 {
134 try {
135 Standard_CString the_aFileName = jcas_ConvertToCString(env,aFileName);
136  Handle( AIS_InteractiveContext ) the_aContext;
137  void*                ptr_aContext = jcas_GetHandle(env,aContext);
138  
139  if ( ptr_aContext != NULL ) the_aContext = *(   (  Handle( AIS_InteractiveContext )*  )ptr_aContext   );
140
141  thejret = SampleImportExportPackage::SaveBREP(the_aFileName,the_aContext);
142
143 }
144 catch (Standard_Failure) {
145   Standard_SStream Err;
146   Err <<   Standard_Failure::Caught(); 
147   Err << (char) 0;
148   jcas_ThrowException(env,Err.str().c_str());
149 }
150 }
151 alock.Release();
152 return thejret;
153 }
154
155
156
157 JNIEXPORT jboolean JNICALL Java_SampleImportExportJni_SampleImportExportPackage_ReadCSFDB (JNIEnv *env, jclass, jobject aFileName, jobject aContext, jobject ReturnMessage)
158 {
159 jboolean thejret;
160
161 jcas_Locking alock(env);
162 {
163 try {
164 Standard_CString the_aFileName = jcas_ConvertToCString(env,aFileName);
165  Handle( AIS_InteractiveContext ) the_aContext;
166  void*                ptr_aContext = jcas_GetHandle(env,aContext);
167  
168  if ( ptr_aContext != NULL ) the_aContext = *(   (  Handle( AIS_InteractiveContext )*  )ptr_aContext   );
169
170 TCollection_AsciiString* the_ReturnMessage = (TCollection_AsciiString*) jcas_GetHandle(env,ReturnMessage);
171 if ( the_ReturnMessage == NULL ) {
172
173  // The following assumes availability of the default constructor (what may not
174  // always be the case). Therefore explicit exception is thrown if the null
175  // object has been passed.
176  // the_ReturnMessage = new TCollection_AsciiString ();
177  // jcas_SetHandle ( env, ReturnMessage, the_ReturnMessage );
178  jcas_ThrowException (env, "NULL object has been passed while expecting an object manipulated by value");
179
180 }  // end if
181  thejret = SampleImportExportPackage::ReadCSFDB(the_aFileName,the_aContext,*the_ReturnMessage);
182
183 }
184 catch (Standard_Failure) {
185   Standard_SStream Err;
186   Err <<   Standard_Failure::Caught(); 
187   Err << (char) 0;
188   jcas_ThrowException(env,Err.str().c_str());
189 }
190 }
191 alock.Release();
192 return thejret;
193 }
194
195
196
197 JNIEXPORT jboolean JNICALL Java_SampleImportExportJni_SampleImportExportPackage_SaveCSFDB (JNIEnv *env, jclass, jobject aFileName, jobject aContext, jobject ReturnMessage, jshort aTriangleMode)
198 {
199 jboolean thejret;
200
201 jcas_Locking alock(env);
202 {
203 try {
204 Standard_CString the_aFileName = jcas_ConvertToCString(env,aFileName);
205  Handle( AIS_InteractiveContext ) the_aContext;
206  void*                ptr_aContext = jcas_GetHandle(env,aContext);
207  
208  if ( ptr_aContext != NULL ) the_aContext = *(   (  Handle( AIS_InteractiveContext )*  )ptr_aContext   );
209
210 TCollection_AsciiString* the_ReturnMessage = (TCollection_AsciiString*) jcas_GetHandle(env,ReturnMessage);
211 if ( the_ReturnMessage == NULL ) {
212
213  // The following assumes availability of the default constructor (what may not
214  // always be the case). Therefore explicit exception is thrown if the null
215  // object has been passed.
216  // the_ReturnMessage = new TCollection_AsciiString ();
217  // jcas_SetHandle ( env, ReturnMessage, the_ReturnMessage );
218  jcas_ThrowException (env, "NULL object has been passed while expecting an object manipulated by value");
219
220 }  // end if
221  thejret = SampleImportExportPackage::SaveCSFDB(the_aFileName,the_aContext,*the_ReturnMessage,(MgtBRep_TriangleMode) aTriangleMode);
222
223 }
224 catch (Standard_Failure) {
225   Standard_SStream Err;
226   Err <<   Standard_Failure::Caught(); 
227   Err << (char) 0;
228   jcas_ThrowException(env,Err.str().c_str());
229 }
230 }
231 alock.Release();
232 return thejret;
233 }
234
235
236
237 JNIEXPORT jshort JNICALL Java_SampleImportExportJni_SampleImportExportPackage_ReadSTEP (JNIEnv *env, jclass, jobject aFileName, jobject aContext)
238 {
239 jshort thejret;
240
241 jcas_Locking alock(env);
242 {
243 try {
244 Standard_CString the_aFileName = jcas_ConvertToCString(env,aFileName);
245  Handle( AIS_InteractiveContext ) the_aContext;
246  void*                ptr_aContext = jcas_GetHandle(env,aContext);
247  
248  if ( ptr_aContext != NULL ) the_aContext = *(   (  Handle( AIS_InteractiveContext )*  )ptr_aContext   );
249
250  thejret = SampleImportExportPackage::ReadSTEP(the_aFileName,the_aContext);
251
252 }
253 catch (Standard_Failure) {
254   Standard_SStream Err;
255   Err <<   Standard_Failure::Caught(); 
256   Err << (char) 0;
257   jcas_ThrowException(env,Err.str().c_str());
258 }
259 }
260 alock.Release();
261 return thejret;
262 }
263
264
265
266 JNIEXPORT jshort JNICALL Java_SampleImportExportJni_SampleImportExportPackage_SaveSTEP (JNIEnv *env, jclass, jobject aFileName, jobject aContext, jshort aValue)
267 {
268 jshort thejret;
269
270 jcas_Locking alock(env);
271 {
272 try {
273 Standard_CString the_aFileName = jcas_ConvertToCString(env,aFileName);
274  Handle( AIS_InteractiveContext ) the_aContext;
275  void*                ptr_aContext = jcas_GetHandle(env,aContext);
276  
277  if ( ptr_aContext != NULL ) the_aContext = *(   (  Handle( AIS_InteractiveContext )*  )ptr_aContext   );
278
279  thejret = SampleImportExportPackage::SaveSTEP(the_aFileName,the_aContext,(STEPControl_StepModelType) aValue);
280
281 }
282 catch (Standard_Failure) {
283   Standard_SStream Err;
284   Err <<   Standard_Failure::Caught(); 
285   Err << (char) 0;
286   jcas_ThrowException(env,Err.str().c_str());
287 }
288 }
289 alock.Release();
290 return thejret;
291 }
292
293
294
295 JNIEXPORT jint JNICALL Java_SampleImportExportJni_SampleImportExportPackage_ReadIGES (JNIEnv *env, jclass, jobject aFileName, jobject aContext)
296 {
297 jint thejret;
298
299 jcas_Locking alock(env);
300 {
301 try {
302 Standard_CString the_aFileName = jcas_ConvertToCString(env,aFileName);
303  Handle( AIS_InteractiveContext ) the_aContext;
304  void*                ptr_aContext = jcas_GetHandle(env,aContext);
305  
306  if ( ptr_aContext != NULL ) the_aContext = *(   (  Handle( AIS_InteractiveContext )*  )ptr_aContext   );
307
308  thejret = SampleImportExportPackage::ReadIGES(the_aFileName,the_aContext);
309
310 }
311 catch (Standard_Failure) {
312   Standard_SStream Err;
313   Err <<   Standard_Failure::Caught(); 
314   Err << (char) 0;
315   jcas_ThrowException(env,Err.str().c_str());
316 }
317 }
318 alock.Release();
319 return thejret;
320 }
321
322
323
324 JNIEXPORT jboolean JNICALL Java_SampleImportExportJni_SampleImportExportPackage_SaveIGES (JNIEnv *env, jclass, jobject aFileName, jobject aContext)
325 {
326 jboolean thejret;
327
328 jcas_Locking alock(env);
329 {
330 try {
331 Standard_CString the_aFileName = jcas_ConvertToCString(env,aFileName);
332  Handle( AIS_InteractiveContext ) the_aContext;
333  void*                ptr_aContext = jcas_GetHandle(env,aContext);
334  
335  if ( ptr_aContext != NULL ) the_aContext = *(   (  Handle( AIS_InteractiveContext )*  )ptr_aContext   );
336
337  thejret = SampleImportExportPackage::SaveIGES(the_aFileName,the_aContext);
338
339 }
340 catch (Standard_Failure) {
341   Standard_SStream Err;
342   Err <<   Standard_Failure::Caught(); 
343   Err << (char) 0;
344   jcas_ThrowException(env,Err.str().c_str());
345 }
346 }
347 alock.Release();
348 return thejret;
349 }
350
351
352
353 JNIEXPORT jboolean JNICALL Java_SampleImportExportJni_SampleImportExportPackage_SaveImage (JNIEnv *env, jclass, jobject aFileName, jobject aFormat, jobject aView)
354 {
355 jboolean thejret;
356
357 jcas_Locking alock(env);
358 {
359 try {
360 Standard_CString the_aFileName = jcas_ConvertToCString(env,aFileName);
361 Standard_CString the_aFormat = jcas_ConvertToCString(env,aFormat);
362  Handle( V3d_View ) the_aView;
363  void*                ptr_aView = jcas_GetHandle(env,aView);
364  
365  if ( ptr_aView != NULL ) the_aView = *(   (  Handle( V3d_View )*  )ptr_aView   );
366
367  thejret = SampleImportExportPackage::SaveImage(the_aFileName,the_aFormat,the_aView);
368
369 }
370 catch (Standard_Failure) {
371   Standard_SStream Err;
372   Err <<   Standard_Failure::Caught(); 
373   Err << (char) 0;
374   jcas_ThrowException(env,Err.str().c_str());
375 }
376 }
377 alock.Release();
378 return thejret;
379 }
380
381
382 }