Skip to content
Snippets Groups Projects
Commit f0662b24 authored by Maxime Graulich's avatar Maxime Graulich
Browse files

drawString for iOS and new ViewController for models list

parent c43b0302
No related branches found
No related tags found
No related merge requests found
......@@ -57,6 +57,8 @@ if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/iOS/ic_launcher_retina.png ${CMAKE_CURRENT_BINARY_DIR}/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/drawContext.cpp ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/drawContext.h ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/drawString.cpp ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/drawString.h ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Trackball.cpp ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Trackball.h ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/movePosition.h ${CMAKE_CURRENT_BINARY_DIR}/Onelab/Onelab/
......
......@@ -16,6 +16,7 @@
#include <Gmsh/onelabUtils.h>
#include <Gmsh/PView.h>
#include <Gmsh/PViewOptions.h>
#include <Gmsh/PViewData.h>
#include <Gmsh/Context.h>
#include <Gmsh/StringUtils.h>
......
#if !defined(BUILD_ANDROID)
#define BUILD_IOS 1
#endif
#if defined(BUILD_IOS)
#include <OpenGLES/ES1/gl.h>
#include <OpenGLES/ES1/glext.h>
#endif
#if defined(BUILD_ANDROID)
#include <GLES/gl.h>
#include <GLES/glext.h>
#endif
#include "drawString.h"
......@@ -17,6 +28,7 @@ void drawString::setText(std::string text)
{
this->_text = text;
getBitmapFromString(this->_text.c_str(), _size, &this->_map, &this->_height, &this->_width, &this->_realWidth);
//printf("\n%s\n", _text.c_str());for(int i=0; i<_height*_width;i++) printf("0x%x ", _map[i]);printf("\n");
}
void drawString::setColor(float color[4])
......@@ -36,9 +48,11 @@ void drawString::setColor(float r, float g, float b, float a)
}
void drawString::draw(float x, float y, float z, float w, float h, bool center)
{
// TODO fix on iOS
GLuint textureId;
glGenTextures(1, &textureId);
glBindTexture(GL_TEXTURE_2D, textureId);
//printf("\n%s\n", _text.c_str());for(int i=0; i<_height*_width;i++) printf("0x%x ", _map[i]);printf("\n");
glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, _width, _height, 0, GL_ALPHA, GL_UNSIGNED_BYTE, _map);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glColor4f(_color[0], _color[1], _color[2], _color[3]);
......@@ -61,7 +75,6 @@ void drawString::draw(float x, float y, float z, float w, float h, bool center)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glDisable(GL_LIGHTING);
glVertexPointer(3, GL_FLOAT, 0, vertex);
glTexCoordPointer(2, GL_FLOAT, 0, texture);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
......
#include <string>
#if !defined(BUILD_ANDROID)
#define BUILD_IOS 1
#endif
#if defined(BUILD_IOS)
#include "iosGModel.h"
#endif
#if defined(BUILD_ANDROID)
#include "androidGModel.h"
#endif
class drawString
{
......
......@@ -7,6 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
9C6A645817A7C3DB00DEDAFC /* drawString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9C6A645617A7C3DB00DEDAFC /* drawString.cpp */; };
9C95B7F61726C88E00C0CCE2 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C95B7F51726C88E00C0CCE2 /* main.m */; };
9C96083B1712C16300E1D4A0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C96083A1712C16300E1D4A0 /* UIKit.framework */; };
9C96083D1712C16300E1D4A0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C96083C1712C16300E1D4A0 /* Foundation.framework */; };
......@@ -24,7 +25,7 @@
9C96089B1712C7BE00E1D4A0 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C96089A1712C7BE00E1D4A0 /* OpenGLES.framework */; };
9C96089D1712C7F600E1D4A0 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C96089C1712C7F600E1D4A0 /* QuartzCore.framework */; };
9C96089F1712C8EB00E1D4A0 /* emulatorFix.c in Sources */ = {isa = PBXBuildFile; fileRef = 9C96089E1712C8EB00E1D4A0 /* emulatorFix.c */; };
9C9608AC1712EF0900E1D4A0 /* MainStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9C9608AA1712EF0900E1D4A0 /* MainStoryboard.storyboard */; };
9C9608AC1712EF0900E1D4A0 /* iPadStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9C9608AA1712EF0900E1D4A0 /* iPadStoryboard.storyboard */; };
9C9F8BCD174B5A1B004332C5 /* ic_launcher_retina.png in Resources */ = {isa = PBXBuildFile; fileRef = 9C9F8BCC174B5A1B004332C5 /* ic_launcher_retina.png */; };
9C9F8BCF174B5A23004332C5 /* ic_launcher.png in Resources */ = {isa = PBXBuildFile; fileRef = 9C9F8BCE174B5A23004332C5 /* ic_launcher.png */; };
9CC85C021790286C00F241C4 /* files in Resources */ = {isa = PBXBuildFile; fileRef = 9CC85C011790286C00F241C4 /* files */; };
......@@ -37,6 +38,8 @@
9CE08E16178AEC5F00A83B4B /* movePosition.h in Sources */ = {isa = PBXBuildFile; fileRef = 9CE08E03178AE6BE00A83B4B /* movePosition.h */; };
9CE08E17178AEC5F00A83B4B /* Trackball.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9CE08E04178AE6BE00A83B4B /* Trackball.cpp */; };
9CE08E18178AEC5F00A83B4B /* Trackball.h in Sources */ = {isa = PBXBuildFile; fileRef = 9CE08E05178AE6BE00A83B4B /* Trackball.h */; };
9CEAECC717A91CD20014D229 /* ModelListController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9CEAECC617A91CD20014D229 /* ModelListController.mm */; };
9CF1C1EA17AA39ED002CD2E3 /* iPhoneStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9CF1C1E917AA39ED002CD2E3 /* iPhoneStoryboard.storyboard */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
......@@ -50,6 +53,8 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
9C6A645617A7C3DB00DEDAFC /* drawString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = drawString.cpp; sourceTree = "<group>"; };
9C6A645717A7C3DB00DEDAFC /* drawString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = drawString.h; sourceTree = "<group>"; };
9C95B7F51726C88E00C0CCE2 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
9C9608361712C16300E1D4A0 /* Onelab.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Onelab.app; sourceTree = BUILT_PRODUCTS_DIR; };
9C96083A1712C16300E1D4A0 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
......@@ -73,7 +78,7 @@
9C96089A1712C7BE00E1D4A0 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
9C96089C1712C7F600E1D4A0 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
9C96089E1712C8EB00E1D4A0 /* emulatorFix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = emulatorFix.c; sourceTree = "<group>"; };
9C9608AB1712EF0900E1D4A0 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard.storyboard; sourceTree = "<group>"; };
9C9608AB1712EF0900E1D4A0 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/iPadStoryboard.storyboard; sourceTree = "<group>"; };
9C99754C17390DEE0036EC24 /* iosGModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iosGModel.h; sourceTree = "<group>"; };
9C9F8BCC174B5A1B004332C5 /* ic_launcher_retina.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_launcher_retina.png; sourceTree = "<group>"; };
9C9F8BCE174B5A23004332C5 /* ic_launcher.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_launcher.png; sourceTree = "<group>"; };
......@@ -86,6 +91,9 @@
9CE08E0D178AEB1600A83B4B /* GetDP.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GetDP.framework; path = Onelab/frameworks/GetDP.framework; sourceTree = "<group>"; };
9CE08E0E178AEB1600A83B4B /* Gmsh.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Gmsh.framework; path = Onelab/frameworks/Gmsh.framework; sourceTree = "<group>"; };
9CE08E0F178AEB1600A83B4B /* petsc.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = petsc.framework; path = Onelab/frameworks/petsc.framework; sourceTree = "<group>"; };
9CEAECC517A91CD20014D229 /* ModelListController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ModelListController.h; sourceTree = "<group>"; };
9CEAECC617A91CD20014D229 /* ModelListController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ModelListController.mm; sourceTree = "<group>"; };
9CF1C1E917AA39ED002CD2E3 /* iPhoneStoryboard.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = iPhoneStoryboard.storyboard; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
......@@ -161,15 +169,18 @@
children = (
9CC85C011790286C00F241C4 /* files */,
9C95B7F51726C88E00C0CCE2 /* main.m */,
9C9608AA1712EF0900E1D4A0 /* MainStoryboard.storyboard */,
9C9608AA1712EF0900E1D4A0 /* iPadStoryboard.storyboard */,
9CF1C1E917AA39ED002CD2E3 /* iPhoneStoryboard.storyboard */,
9C9608491712C16300E1D4A0 /* AppDelegate.h */,
9C96084A1712C16300E1D4A0 /* AppDelegate.mm */,
9CE08E01178AE6BE00A83B4B /* drawContext.cpp */,
9CE08E02178AE6BE00A83B4B /* drawContext.h */,
9C6A645617A7C3DB00DEDAFC /* drawString.cpp */,
9C6A645717A7C3DB00DEDAFC /* drawString.h */,
9C99754C17390DEE0036EC24 /* iosGModel.h */,
9CE08E03178AE6BE00A83B4B /* movePosition.h */,
9CE08E04178AE6BE00A83B4B /* Trackball.cpp */,
9CE08E05178AE6BE00A83B4B /* Trackball.h */,
9C96084A1712C16300E1D4A0 /* AppDelegate.mm */,
9C96084F1712C16400E1D4A0 /* MasterViewController.h */,
9C9608501712C16400E1D4A0 /* MasterViewController.mm */,
9C9608521712C16400E1D4A0 /* DetailViewController.h */,
......@@ -177,6 +188,8 @@
9C9608721712C47200E1D4A0 /* EAGLView.h */,
9C9608731712C47200E1D4A0 /* EAGLView.mm */,
9C96089E1712C8EB00E1D4A0 /* emulatorFix.c */,
9CEAECC517A91CD20014D229 /* ModelListController.h */,
9CEAECC617A91CD20014D229 /* ModelListController.mm */,
);
path = Onelab;
sourceTree = "<group>";
......@@ -271,10 +284,11 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9C9608AC1712EF0900E1D4A0 /* MainStoryboard.storyboard in Resources */,
9C9608AC1712EF0900E1D4A0 /* iPadStoryboard.storyboard in Resources */,
9C9F8BCD174B5A1B004332C5 /* ic_launcher_retina.png in Resources */,
9C9F8BCF174B5A23004332C5 /* ic_launcher.png in Resources */,
9CC85C021790286C00F241C4 /* files in Resources */,
9CF1C1EA17AA39ED002CD2E3 /* iPhoneStoryboard.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
......@@ -321,6 +335,8 @@
9C9608741712C47200E1D4A0 /* EAGLView.mm in Sources */,
9C96089F1712C8EB00E1D4A0 /* emulatorFix.c in Sources */,
9C95B7F61726C88E00C0CCE2 /* main.m in Sources */,
9C6A645817A7C3DB00DEDAFC /* drawString.cpp in Sources */,
9CEAECC717A91CD20014D229 /* ModelListController.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
......@@ -351,12 +367,12 @@
name = InfoPlist.strings;
sourceTree = "<group>";
};
9C9608AA1712EF0900E1D4A0 /* MainStoryboard.storyboard */ = {
9C9608AA1712EF0900E1D4A0 /* iPadStoryboard.storyboard */ = {
isa = PBXVariantGroup;
children = (
9C9608AB1712EF0900E1D4A0 /* en */,
);
name = MainStoryboard.storyboard;
name = iPadStoryboard.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
......@@ -435,7 +451,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
TARGETED_DEVICE_FAMILY = 2;
TARGETED_DEVICE_FAMILY = "1,2";
VALID_ARCHS = armv7;
WRAPPER_EXTENSION = app;
};
......@@ -462,7 +478,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
TARGETED_DEVICE_FAMILY = 2;
TARGETED_DEVICE_FAMILY = "1,2";
VALID_ARCHS = armv7;
WRAPPER_EXTENSION = app;
};
......
......@@ -14,14 +14,10 @@
#include <gmsh/PViewData.h>
#include <gmsh/PViewOptions.h>
#import "iosGModel.h"
@interface DetailViewController : UIViewController <UISplitViewControllerDelegate, UITextFieldDelegate, UIActionSheetDelegate, UITableViewDelegate, UITableViewDataSource>
@interface DetailViewController : UIViewController <UISplitViewControllerDelegate, UITextFieldDelegate, UIActionSheetDelegate>
{
@private
double scaleFactor;
iosGModel *mIosGModel;
NSArray *models;
}
- (IBAction)pinch:(UIPinchGestureRecognizer *)sender;
......
......@@ -8,6 +8,9 @@
#import <QuartzCore/QuartzCore.h>
#import "DetailViewController.h"
#import "iosGModel.h"
#import "ModelListController.h"
@interface DetailViewController ()
@property (strong, nonatomic) UIPopoverController *masterPopoverController;
......@@ -49,8 +52,7 @@
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(requestRender) name:@"requestRender" object:nil];
[self configureView];
scaleFactor = 1.;
mIosGModel = new iosGModel((__bridge void*) self);
models = [NSArray arrayWithObjects:@"pmsm", @"magnet", nil];
setObjCBridge((__bridge void*) self);
}
- (IBAction)pinch:(UIPinchGestureRecognizer *)sender
......@@ -102,29 +104,9 @@
- (void) showModelsList
{
for(UIView *v in self.view.subviews)
if(v.tag ==-2)
{
[self hideModelsList];
return;
}
UITableView *modelsList = [[UITableView alloc] initWithFrame:CGRectMake(20,20,self.view.bounds.size.width-40,self.view.bounds.size.height - 2 * 40)];
[modelsList setBackgroundColor: [UIColor colorWithRed:0.6 green:0.6 blue:0.6 alpha:.75]];
[modelsList.layer setBorderWidth:1.];
[modelsList.layer setBorderColor:[UIColor colorWithRed:0.9 green:0.9 blue:0.9 alpha:1].CGColor];
modelsList.tag = -2;
[modelsList setDataSource:self];
[modelsList setDelegate:self];
[self.view addSubview:modelsList];
[self.view bringSubviewToFront:modelsList];
}
- (void) hideModelsList
{
for(UIView *v in self.view.subviews)
if(v.tag == -2)
[v removeFromSuperview];
ModelListController *modelListController = [[ModelListController alloc] init];
modelListController.glView = glView;
[self.navigationController pushViewController:modelListController animated:true];
}
- (void) showPostpro
......@@ -343,52 +325,49 @@ void messageFromCpp (void *self, std::string level, std::string msg)
//[[NSNotificationCenter defaultCenter] postNotificationName:@"refreshParameters" object:nil];
}
else if(level == "Error")
;//[(__bridge id)self showAlert:msg title:level];
[(__bridge id)self showAlert:msg title:level];
}
#pragma mark - tableView
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
void getBitmap(void *self, const char *text, int textsize, unsigned char **map, int *height, int *width, int *realWidth)
{
return 1;
[(__bridge id)self getBitmapFromStringObjC:text withTextSize:textsize inMap:map inHeight:height inWidth:width inRealWidth:realWidth];
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
-(void) getBitmapFromStringObjC:(const char *)text withTextSize:(int)textsize inMap:(unsigned char **)map inHeight:(int *)height inWidth:(int *)width inRealWidth:(int *) realWidth
{
return [models count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *modelName = [models objectAtIndex:indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:modelName];
if(cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:modelName];
else
return cell;
[cell.textLabel setText:modelName];
return cell;
}
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return @"Select a model";
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 30;
}
-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *modelName = [models objectAtIndex:indexPath.row];
//NSString *ressourcePath = [[NSBundle mainBundle] resourcePath];
[glView loadMsh:[NSString stringWithFormat:@"%@%@%@",@"/",modelName,@".geo"]];
//glView->mContext->load([[NSString stringWithFormat:@"%@%@%@%@",ressourcePath,@"/",modelName,@".geo"] UTF8String]);
[self hideModelsList];
[[NSNotificationCenter defaultCenter] postNotificationName:@"refreshParameters" object:nil];
return indexPath;
UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 25, textsize)];
[lbl setText:[NSString stringWithCString:text encoding:[NSString defaultCStringEncoding]]];
[lbl setBackgroundColor:[UIColor clearColor]];
UIGraphicsBeginImageContextWithOptions(lbl.bounds.size, NO, 0.0);
[lbl.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
CGImageRef bitmap = [img CGImage];
*width = CGImageGetWidth(bitmap);
*realWidth = *width;
*height = CGImageGetHeight(bitmap);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
unsigned char *rawData = (unsigned char*) calloc(*height * *width * 4, sizeof(unsigned char));
*map = (unsigned char*) calloc(*height * *width, sizeof(unsigned char));
NSUInteger bytesPerPixel = 4;
NSUInteger bytesPerRow = bytesPerPixel * *width;
NSUInteger bitsPerComponent = 8;
CGContextRef context = CGBitmapContextCreate(rawData, *width, *height,
bitsPerComponent, bytesPerRow, colorSpace,
kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGColorSpaceRelease(colorSpace);
CGContextDrawImage(context, CGRectMake(0, 0, *width, *height), bitmap);
CGContextRelease(context);
// rawData contains the image data in the RGBA8888 pixel format.
for (int byteIndex = 0 ; byteIndex < *width * *height * 4 ; byteIndex+=4)
*(*map+byteIndex/4) = (rawData[byteIndex + 3] == 0x00)? 0x00 : 0xFF;
free(rawData);
/*for(int y=0;y<*height;y++){
for(int x=0;x<=*width;x++){
printf("%c", (*(*map+y**width+x) == 0x00)? ' ' : '#');
}
printf("\n");
}*/
}
@end
......@@ -193,9 +193,11 @@
{
dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[runButton setTitle:@"Stop"];
[self refreshControl];
[runButton setAction:@selector(stopRunning)];
onelab_cb("compute");
[runButton setTitle:@"Run"];
[self refreshControl];
[runButton setAction:@selector(runWithNewParameter)];
[self getAvailableParam];
});
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="2549" systemVersion="12C60" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" initialViewController="5">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="3084" systemVersion="12E55" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" initialViewController="5">
<dependencies>
<deployment defaultVersion="1296" identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="1498"/>
<deployment defaultVersion="1552" identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="2083"/>
</dependencies>
<scenes>
<!--Navigation Controller-->
<scene sceneID="14">
<objects>
<placeholder placeholderIdentifier="IBFirstResponder" id="13" sceneMemberID="firstResponder"/>
<navigationController id="3" sceneMemberID="viewController">
<navigationBar key="navigationBar" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="6">
<autoresizingMask key="autoresizingMask"/>
......@@ -17,13 +16,13 @@
<segue destination="19" kind="relationship" relationship="rootViewController" id="25"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="13" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="448" y="-630"/>
<point key="canvasLocation" x="440" y="-806"/>
</scene>
<!--Detail View Controller - Detail-->
<scene sceneID="16">
<objects>
<placeholder placeholderIdentifier="IBFirstResponder" id="15" sceneMemberID="firstResponder"/>
<viewController storyboardIdentifier="" title="Detail" id="4" customClass="DetailViewController" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="26" customClass="EAGLView">
<rect key="frame" x="0.0" y="64" width="703" height="660"/>
......@@ -31,8 +30,8 @@
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
<connections>
<outletCollection property="gestureRecognizers" destination="RL1-jv-cjC" id="y8D-yh-PkV"/>
<outletCollection property="gestureRecognizers" destination="Nb5-mS-uY7" id="aF3-Oi-e8B"/>
<outletCollection property="gestureRecognizers" destination="RL1-jv-cjC" appends="YES" id="y8D-yh-PkV"/>
<outletCollection property="gestureRecognizers" destination="Nb5-mS-uY7" appends="YES" id="aF3-Oi-e8B"/>
</connections>
</view>
<toolbarItems/>
......@@ -40,8 +39,10 @@
<simulatedToolbarMetrics key="simulatedBottomBarMetrics"/>
<connections>
<outlet property="glView" destination="26" id="i7d-I7-Zhz"/>
<segue destination="E9F-81-Qlc" kind="push" id="NvT-Dc-KH4"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="15" sceneMemberID="firstResponder"/>
<tapGestureRecognizer id="RL1-jv-cjC">
<connections>
<action selector="tap:" destination="4" id="hTk-hm-dba"/>
......@@ -53,14 +54,45 @@
</connections>
</pinchGestureRecognizer>
</objects>
<point key="canvasLocation" x="524" y="342"/>
<point key="canvasLocation" x="1144" y="330"/>
</scene>
<!--Model List Controller - Load a new model-->
<scene sceneID="ggP-yy-g12">
<objects>
<tableViewController id="E9F-81-Qlc" customClass="ModelListController" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="tal-df-VsP">
<rect key="frame" x="0.0" y="64" width="703" height="660"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
<prototypes>
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="ozg-kT-Ijz">
<rect key="frame" x="0.0" y="22" width="703" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
<rect key="frame" x="0.0" y="0.0" width="703" height="43"/>
<autoresizingMask key="autoresizingMask"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</view>
</tableViewCell>
</prototypes>
<connections>
<outlet property="dataSource" destination="E9F-81-Qlc" id="2Za-8v-z7o"/>
<outlet property="delegate" destination="E9F-81-Qlc" id="88m-bV-0PG"/>
</connections>
</tableView>
<navigationItem key="navigationItem" title="Load a new model" id="Z27-wO-c1E"/>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="JFe-Hg-fSu" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1953" y="330"/>
</scene>
<!--Split View Controller-->
<scene sceneID="18">
<objects>
<placeholder placeholderIdentifier="IBFirstResponder" id="17" sceneMemberID="firstResponder"/>
<splitViewController id="5" sceneMemberID="viewController">
<toolbarItems/>
<navigationItem key="navigationItem" id="Pnc-za-KDo"/>
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackTranslucent"/>
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
<connections>
......@@ -68,13 +100,13 @@
<segue destination="42" kind="relationship" relationship="detailViewController" id="51"/>
</connections>
</splitViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="17" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-879" y="-806"/>
</scene>
<!--Master View Controller - Master-->
<scene sceneID="24">
<objects>
<placeholder placeholderIdentifier="IBFirstResponder" id="23" sceneMemberID="firstResponder"/>
<tableViewController storyboardIdentifier="" title="Master" clearsSelectionOnViewWillAppear="NO" id="19" customClass="MasterViewController" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="singleLineEtched" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="20">
<rect key="frame" x="0.0" y="64" width="320" height="704"/>
......@@ -110,13 +142,13 @@
</tableView>
<navigationItem key="navigationItem" title="Settings" id="40"/>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="23" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="859" y="-631"/>
<point key="canvasLocation" x="851" y="-807"/>
</scene>
<!--Navigation Controller-->
<scene sceneID="50">
<objects>
<placeholder placeholderIdentifier="IBFirstResponder" id="49" userLabel="First Responder" sceneMemberID="firstResponder"/>
<navigationController id="42" sceneMemberID="viewController">
<navigationBar key="navigationBar" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="43">
<autoresizingMask key="autoresizingMask"/>
......@@ -125,14 +157,17 @@
<segue destination="4" kind="relationship" relationship="rootViewController" id="52"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="49" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-366" y="248"/>
<point key="canvasLocation" x="342" y="338"/>
</scene>
</scenes>
<classes>
<class className="DetailViewController" superclassName="UIViewController">
<source key="sourceIdentifier" type="project" relativePath="./Classes/DetailViewController.h"/>
<relationships>
<relationship kind="action" name="PViewIntervalType:"/>
<relationship kind="action" name="PViewVisible:"/>
<relationship kind="action" name="pinch:" candidateClass="UIPinchGestureRecognizer"/>
<relationship kind="action" name="tap:" candidateClass="UITapGestureRecognizer"/>
<relationship kind="outlet" name="detailDescriptionLabel" candidateClass="UILabel"/>
......@@ -144,6 +179,9 @@
<class className="MasterViewController" superclassName="UITableViewController">
<source key="sourceIdentifier" type="project" relativePath="./Classes/MasterViewController.h"/>
</class>
<class className="ModelListController" superclassName="UITableViewController">
<source key="sourceIdentifier" type="project" relativePath="./Classes/ModelListController.h"/>
</class>
</classes>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedStatusBarMetrics key="statusBar" statusBarStyle="blackTranslucent"/>
......
......@@ -13,7 +13,16 @@
#include <string>
#include "drawContext.h"
static void * objc;
void messageFromCpp (void *self, std::string level, std::string msg);
void getBitmap(void *self, const char *text, int textsize, unsigned char **map, int *height, int *width, int *realWidth=NULL);
//void getBitmapFromString(const char *text, int textsize, unsigned char **map, int *height, int *width, int *realWidth=NULL);
void getBitmapFromString(const char *text, int textsize, unsigned char **map, int *height, int *width, int *realWidth)
{
getBitmap(objc, text, textsize, map, height, width, realWidth);
}
class MobileMessage : GmshMessage
{
......@@ -27,18 +36,10 @@ public:
messageFromCpp(_objcObject, level, message);
}
};
class iosGModel
void setObjCBridge(void *objcObject)
{
private:
void* _objcObject;
public:
iosGModel(void* objcObject)
{
_objcObject = objcObject;
objc = objcObject;
Msg::SetCallback((GmshMessage*)new MobileMessage(objcObject));
}
~iosGModel(){}
};
#endif /* defined(__Onelab__iosGModel__) */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment