├── 3DModeling-objective-c ├── .DS_Store ├── Modeling3dDemo.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ │ └── xcuserdata │ │ │ └── zhaoyue.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ ├── xcshareddata │ │ └── xcschemes │ │ │ └── Modeling3dDemo.xcscheme │ └── xcuserdata │ │ └── zhaoyue.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── Modeling3dDemo │ ├── .DS_Store │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── .DS_Store │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── icon_back.imageset │ │ │ ├── Contents.json │ │ │ ├── 返回箭头黑@2x.png │ │ │ └── 返回箭头黑@3x.png │ │ ├── icon_blank_img.imageset │ │ │ ├── Contents.json │ │ │ ├── hw_canvasalbums@2x.png │ │ │ └── hw_canvasalbums@3x.png │ │ ├── icon_home_0.imageset │ │ │ ├── Contents.json │ │ │ ├── 资源 2@2x@2x.png │ │ │ └── 资源 2@2x@3x.png │ │ ├── icon_home_select.imageset │ │ │ ├── Contents.json │ │ │ ├── 首页@2x.png │ │ │ └── 首页@3x.png │ │ ├── icon_home_unselect.imageset │ │ │ ├── Contents.json │ │ │ ├── 首页@2x.png │ │ │ └── 首页@3x.png │ │ ├── icon_logo.imageset │ │ │ ├── 3d魔方logo@2x.png │ │ │ ├── 3d魔方logo@3x.png │ │ │ └── Contents.json │ │ ├── icon_mine_0.imageset │ │ │ ├── Contents.json │ │ │ ├── 组 128@2x.png │ │ │ └── 组 128@3x.png │ │ ├── icon_mine_1.imageset │ │ │ ├── Contents.json │ │ │ ├── 组 126@2x.png │ │ │ └── 组 126@3x.png │ │ ├── icon_mine_2.imageset │ │ │ ├── Contents.json │ │ │ ├── 组 126@2x.png │ │ │ └── 组 126@3x.png │ │ ├── icon_mine_3.imageset │ │ │ ├── Contents.json │ │ │ ├── 组 126@2x.png │ │ │ └── 组 126@3x.png │ │ ├── icon_mine_4.imageset │ │ │ ├── Contents.json │ │ │ ├── 编组备份@2x.png │ │ │ └── 编组备份@3x.png │ │ ├── icon_mine_select.imageset │ │ │ ├── Contents.json │ │ │ ├── 我的@2x.png │ │ │ └── 我的@3x.png │ │ └── icon_mine_unselect.imageset │ │ │ ├── Contents.json │ │ │ ├── 我的@2x.png │ │ │ └── 我的@3x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── Modeling3dKit.framework │ │ ├── GRSResource.bundle │ │ │ ├── Root.plist │ │ │ ├── en.lproj │ │ │ │ └── Root.strings │ │ │ └── grs │ │ │ │ ├── config │ │ │ │ ├── cbg_root.pem │ │ │ │ └── grs_sdk_server_config.json │ │ │ │ └── router │ │ │ │ └── grs_sdk_global_route_config_threeDModeling.json │ │ ├── HAFormal.bundle │ │ │ ├── certificates │ │ │ │ ├── 002root.cer │ │ │ │ ├── 003root.cer │ │ │ │ ├── 004root.cer │ │ │ │ ├── 005root.cer │ │ │ │ ├── 007root.cer │ │ │ │ ├── 010root.cer │ │ │ │ ├── 011root.cer │ │ │ │ ├── 012root.cer │ │ │ │ ├── 013root.cer │ │ │ │ ├── 015root.cer │ │ │ │ ├── 016root.cer │ │ │ │ ├── 017root.cer │ │ │ │ ├── 020root.cer │ │ │ │ ├── 024root.cer │ │ │ │ ├── 026root.cer │ │ │ │ ├── 028root.cer │ │ │ │ ├── 032root.cer │ │ │ │ ├── 033root.cer │ │ │ │ ├── 035root.cer │ │ │ │ ├── 037root.cer │ │ │ │ ├── 038root.cer │ │ │ │ ├── 043root.cer │ │ │ │ ├── 048root.cer │ │ │ │ ├── 049root.cer │ │ │ │ ├── 050T-TeleSec_GlobalRoot_Class.cer │ │ │ │ ├── 051DigiCert_Global_Root_G.cer │ │ │ │ ├── 052Huawei_CBG_Root_CA.cer │ │ │ │ ├── 053-Actalis_root.cer │ │ │ │ ├── 054-CFCA_root.cer │ │ │ │ └── 055-AddTrust External CA Root.cer │ │ │ ├── hianalytics_list │ │ │ └── hianalytics_njjn │ │ ├── Headers │ │ │ ├── Modeling3dKit.h │ │ │ ├── Modeling3dReconstructConstants.h │ │ │ ├── Modeling3dReconstructErrorCode.h │ │ │ ├── Modeling3dReconstructTask.h │ │ │ └── Modeling3dReconstructTaskModel.h │ │ ├── Info.plist │ │ ├── Modeling3dKit │ │ ├── Modules │ │ │ └── module.modulemap │ │ ├── _CodeSignature │ │ │ └── CodeResources │ │ ├── icon_close@2x.png │ │ └── icon_close@3x.png │ ├── SceneDelegate.h │ ├── SceneDelegate.m │ ├── UI │ │ ├── .DS_Store │ │ ├── Lib │ │ │ ├── .DS_Store │ │ │ ├── CGXPopoverView │ │ │ │ ├── CGXPopoverItem.h │ │ │ │ ├── CGXPopoverItem.m │ │ │ │ ├── CGXPopoverManager.h │ │ │ │ ├── CGXPopoverManager.m │ │ │ │ ├── CGXPopoverView.h │ │ │ │ ├── CGXPopoverView.m │ │ │ │ ├── CGXPopovewCell.h │ │ │ │ └── CGXPopovewCell.m │ │ │ ├── SVProgressHUD │ │ │ │ ├── SVIndefiniteAnimatedView.h │ │ │ │ ├── SVIndefiniteAnimatedView.m │ │ │ │ ├── SVProgressAnimatedView.h │ │ │ │ ├── SVProgressAnimatedView.m │ │ │ │ ├── SVProgressHUD-Prefix.pch │ │ │ │ ├── SVProgressHUD.bundle │ │ │ │ │ ├── angle-mask.png │ │ │ │ │ ├── angle-mask@2x.png │ │ │ │ │ ├── angle-mask@3x.png │ │ │ │ │ ├── error.png │ │ │ │ │ ├── error@2x.png │ │ │ │ │ ├── error@3x.png │ │ │ │ │ ├── info.png │ │ │ │ │ ├── info@2x.png │ │ │ │ │ ├── info@3x.png │ │ │ │ │ ├── success.png │ │ │ │ │ ├── success@2x.png │ │ │ │ │ └── success@3x.png │ │ │ │ ├── SVProgressHUD.h │ │ │ │ ├── SVProgressHUD.m │ │ │ │ ├── SVRadialGradientLayer.h │ │ │ │ └── SVRadialGradientLayer.m │ │ │ └── TZImagePickerController │ │ │ │ ├── NSBundle+TZImagePicker.h │ │ │ │ ├── NSBundle+TZImagePicker.m │ │ │ │ ├── TZAssetCell.h │ │ │ │ ├── TZAssetCell.m │ │ │ │ ├── TZAssetModel.h │ │ │ │ ├── TZAssetModel.m │ │ │ │ ├── TZGifPhotoPreviewController.h │ │ │ │ ├── TZGifPhotoPreviewController.m │ │ │ │ ├── TZImageCropManager.h │ │ │ │ ├── TZImageCropManager.m │ │ │ │ ├── TZImageManager.h │ │ │ │ ├── TZImageManager.m │ │ │ │ ├── TZImagePickerController.bundle │ │ │ │ ├── MMVideoPreviewPlay@2x.png │ │ │ │ ├── MMVideoPreviewPlayHL@2x.png │ │ │ │ ├── VideoSendIcon@2x.png │ │ │ │ ├── ar.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── bg.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── cs-CZ.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── de.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── el.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── en.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── es.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── fr.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── he.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── iCloudError@2x.png │ │ │ │ ├── it.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── ja.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── ko-KP.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── ko.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── navi_back@2x.png │ │ │ │ ├── nl.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── photo_def_photoPickerVc@2x.png │ │ │ │ ├── photo_def_previewVc@2x.png │ │ │ │ ├── photo_number_icon@2x.png │ │ │ │ ├── photo_original_def@2x.png │ │ │ │ ├── photo_original_sel@2x.png │ │ │ │ ├── photo_sel_photoPickerVc@2x.png │ │ │ │ ├── photo_sel_previewVc@2x.png │ │ │ │ ├── pl.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── preview_number_icon@2x.png │ │ │ │ ├── preview_original_def@2x.png │ │ │ │ ├── pt.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── ro.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── ru.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── sk.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── sv.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── takePicture80@2x.png │ │ │ │ ├── takePicture@2x.png │ │ │ │ ├── th.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── tr.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── uk.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── vi.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── zh-Hans.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ └── zh-Hant.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── TZImagePickerController.h │ │ │ │ ├── TZImagePickerController.m │ │ │ │ ├── TZImageRequestOperation.h │ │ │ │ ├── TZImageRequestOperation.m │ │ │ │ ├── TZLocationManager.h │ │ │ │ ├── TZLocationManager.m │ │ │ │ ├── TZPhotoPickerController.h │ │ │ │ ├── TZPhotoPickerController.m │ │ │ │ ├── TZPhotoPreviewCell.h │ │ │ │ ├── TZPhotoPreviewCell.m │ │ │ │ ├── TZPhotoPreviewController.h │ │ │ │ ├── TZPhotoPreviewController.m │ │ │ │ ├── TZProgressView.h │ │ │ │ ├── TZProgressView.m │ │ │ │ ├── TZVideoCropController.h │ │ │ │ ├── TZVideoCropController.m │ │ │ │ ├── TZVideoEditedPreviewController.h │ │ │ │ ├── TZVideoEditedPreviewController.m │ │ │ │ ├── TZVideoPlayerController.h │ │ │ │ ├── TZVideoPlayerController.m │ │ │ │ ├── UIView+TZLayout.h │ │ │ │ └── UIView+TZLayout.m │ │ ├── Modeling3dDemoFilesListVC.h │ │ ├── Modeling3dDemoFilesListVC.m │ │ ├── Modeling3dDemoHomeVC.h │ │ ├── Modeling3dDemoHomeVC.m │ │ ├── Modeling3dDemoMineVC.h │ │ ├── Modeling3dDemoMineVC.m │ │ ├── UIViewController+CustomAlert.h │ │ ├── UIViewController+CustomAlert.m │ │ └── View │ │ │ ├── Modeling3dMainListCell.h │ │ │ ├── Modeling3dMainListCell.m │ │ │ ├── Modeling3dMainListCell.xib │ │ │ ├── Modeling3dProgressAlertView.h │ │ │ ├── Modeling3dProgressAlertView.m │ │ │ └── Modeling3dProgressAlertView.xib │ ├── agconnect-services.plist │ ├── en.lproj │ │ ├── Localizable.strings │ │ └── Main.strings │ ├── main.m │ └── zh-Hans.lproj │ │ ├── Localizable.strings │ │ └── Main.strings ├── README.md ├── README_ZH.md └── resources │ ├── ModelDownload.png │ ├── ModelDownload_ZH.png │ ├── ModelPreview.png │ ├── ModelUpload.png │ └── ModelUpload_ZH.png ├── README.md └── README_ZH.md /3DModeling-objective-c/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/.DS_Store -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo.xcodeproj/project.xcworkspace/xcuserdata/zhaoyue.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo.xcodeproj/project.xcworkspace/xcuserdata/zhaoyue.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo.xcodeproj/xcshareddata/xcschemes/Modeling3dDemo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 45 | 51 | 52 | 53 | 54 | 57 | 58 | 59 | 60 | 66 | 67 | 69 | 70 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo.xcodeproj/xcuserdata/zhaoyue.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 9 | 17 | 18 | 19 | 21 | 33 | 34 | 35 | 37 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo.xcodeproj/xcuserdata/zhaoyue.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Modeling3dDemo.xcscheme_^#shared#^_ 8 | 9 | isShown 10 | 11 | orderHint 12 | 0 13 | 14 | 15 | SuppressBuildableAutocreation 16 | 17 | 5632E0B426C26EE000E67B98 18 | 19 | primary 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/.DS_Store -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/8/10. 6 | // 7 | 8 | #import 9 | 10 | @interface AppDelegate : UIResponder 11 | 12 | @property(nonatomic, strong) UIWindow *window; 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/8/10. 6 | // 7 | 8 | #import "AppDelegate.h" 9 | #import 10 | 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | 18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 19 | // Override point for customization after application launch. 20 | 21 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 22 | [self.window makeKeyAndVisible]; 23 | 24 | 25 | [[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor colorWithRed:98/255.f green:166/255.f blue:255/255.f alpha:1]} forState:UIControlStateSelected]; 26 | if (@available(iOS 10.0, *)) { 27 | [[UITabBar appearance] setUnselectedItemTintColor:[UIColor colorWithRed:232/255.f green:235/255.f blue:243/255.f alpha:1]]; 28 | } else { 29 | // Fallback on earlier versions 30 | [[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor colorWithRed:98/255.f green:166/255.f blue:255/255.f alpha:1]} forState:UIControlStateNormal]; 31 | } 32 | [[UITabBar appearance] setBackgroundImage:[UIImage new]]; 33 | 34 | [[Modeling3dReconstructTask sharedManager] initSDK]; 35 | 36 | return YES; 37 | } 38 | 39 | 40 | #pragma mark - UISceneSession lifecycle 41 | 42 | 43 | - (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options API_AVAILABLE(ios(13.0)){ 44 | // Called when a new scene session is being created. 45 | // Use this method to select a configuration to create the new scene with. 46 | return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role]; 47 | } 48 | 49 | 50 | - (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet *)sceneSessions API_AVAILABLE(ios(13.0)){ 51 | // Called when the user discards a scene session. 52 | // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. 53 | // Use this method to release any resources that were specific to the discarded scenes, as they will not return. 54 | } 55 | 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/.DS_Store -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "scale" : "2x", 6 | "size" : "20x20" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "scale" : "3x", 11 | "size" : "20x20" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "scale" : "2x", 16 | "size" : "29x29" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "scale" : "3x", 21 | "size" : "29x29" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "scale" : "2x", 26 | "size" : "40x40" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "scale" : "3x", 31 | "size" : "40x40" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "scale" : "2x", 36 | "size" : "60x60" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "scale" : "3x", 41 | "size" : "60x60" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "scale" : "1x", 46 | "size" : "20x20" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "scale" : "2x", 51 | "size" : "20x20" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "scale" : "1x", 56 | "size" : "29x29" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "scale" : "2x", 61 | "size" : "29x29" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "scale" : "1x", 66 | "size" : "40x40" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "scale" : "2x", 71 | "size" : "40x40" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "scale" : "1x", 76 | "size" : "76x76" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "scale" : "2x", 81 | "size" : "76x76" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "scale" : "2x", 86 | "size" : "83.5x83.5" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "scale" : "1x", 91 | "size" : "1024x1024" 92 | } 93 | ], 94 | "info" : { 95 | "author" : "xcode", 96 | "version" : 1 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_back.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "返回箭头黑@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "返回箭头黑@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_back.imageset/返回箭头黑@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_back.imageset/返回箭头黑@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_back.imageset/返回箭头黑@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_back.imageset/返回箭头黑@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_blank_img.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "hw_canvasalbums@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "hw_canvasalbums@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_blank_img.imageset/hw_canvasalbums@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_blank_img.imageset/hw_canvasalbums@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_blank_img.imageset/hw_canvasalbums@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_blank_img.imageset/hw_canvasalbums@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_home_0.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "资源 2@2x@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "资源 2@2x@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_home_0.imageset/资源 2@2x@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_home_0.imageset/资源 2@2x@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_home_0.imageset/资源 2@2x@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_home_0.imageset/资源 2@2x@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_home_select.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "首页@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "首页@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_home_select.imageset/首页@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_home_select.imageset/首页@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_home_select.imageset/首页@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_home_select.imageset/首页@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_home_unselect.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "首页@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "首页@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_home_unselect.imageset/首页@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_home_unselect.imageset/首页@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_home_unselect.imageset/首页@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_home_unselect.imageset/首页@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_logo.imageset/3d魔方logo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_logo.imageset/3d魔方logo@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_logo.imageset/3d魔方logo@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_logo.imageset/3d魔方logo@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "3d魔方logo@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "3d魔方logo@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_0.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "组 128@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "组 128@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_0.imageset/组 128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_0.imageset/组 128@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_0.imageset/组 128@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_0.imageset/组 128@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "组 126@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "组 126@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_1.imageset/组 126@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_1.imageset/组 126@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_1.imageset/组 126@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_1.imageset/组 126@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "组 126@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "组 126@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_2.imageset/组 126@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_2.imageset/组 126@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_2.imageset/组 126@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_2.imageset/组 126@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "组 126@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "组 126@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_3.imageset/组 126@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_3.imageset/组 126@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_3.imageset/组 126@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_3.imageset/组 126@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "编组备份@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "编组备份@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_4.imageset/编组备份@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_4.imageset/编组备份@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_4.imageset/编组备份@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_4.imageset/编组备份@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_select.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "我的@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "我的@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_select.imageset/我的@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_select.imageset/我的@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_select.imageset/我的@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_select.imageset/我的@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_unselect.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "我的@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "我的@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_unselect.imageset/我的@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_unselect.imageset/我的@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_unselect.imageset/我的@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Assets.xcassets/icon_mine_unselect.imageset/我的@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 25 | 26 | 27 | 28 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleDisplayName 8 | Modeling3dDemo 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 19 | CFBundleShortVersionString 20 | $(MARKETING_VERSION) 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | NSAppTransportSecurity 26 | 27 | NSAllowsArbitraryLoads 28 | 29 | 30 | NSPhotoLibraryUsageDescription 31 | Photo 32 | UIApplicationSceneManifest 33 | 34 | UIApplicationSupportsMultipleScenes 35 | 36 | UISceneConfigurations 37 | 38 | UIWindowSceneSessionRoleApplication 39 | 40 | 41 | UISceneConfigurationName 42 | Default Configuration 43 | UISceneDelegateClassName 44 | SceneDelegate 45 | UISceneStoryboardFile 46 | Main 47 | 48 | 49 | 50 | 51 | UIApplicationSupportsIndirectInputEvents 52 | 53 | UILaunchStoryboardName 54 | LaunchScreen 55 | UIMainStoryboardFile 56 | Main 57 | UIRequiredDeviceCapabilities 58 | 59 | armv7 60 | 61 | UISupportedInterfaceOrientations 62 | 63 | UIInterfaceOrientationPortrait 64 | 65 | UISupportedInterfaceOrientations~ipad 66 | 67 | UIInterfaceOrientationPortrait 68 | UIInterfaceOrientationPortraitUpsideDown 69 | UIInterfaceOrientationLandscapeLeft 70 | UIInterfaceOrientationLandscapeRight 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/GRSResource.bundle/Root.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | StringsTable 6 | Root 7 | PreferenceSpecifiers 8 | 9 | 10 | Type 11 | PSGroupSpecifier 12 | Title 13 | Group 14 | 15 | 16 | Type 17 | PSTextFieldSpecifier 18 | Title 19 | Name 20 | Key 21 | name_preference 22 | DefaultValue 23 | 24 | IsSecure 25 | 26 | KeyboardType 27 | Alphabet 28 | AutocapitalizationType 29 | None 30 | AutocorrectionType 31 | No 32 | 33 | 34 | Type 35 | PSToggleSwitchSpecifier 36 | Title 37 | Enabled 38 | Key 39 | enabled_preference 40 | DefaultValue 41 | 42 | 43 | 44 | Type 45 | PSSliderSpecifier 46 | Key 47 | slider_preference 48 | DefaultValue 49 | 0.5 50 | MinimumValue 51 | 0 52 | MaximumValue 53 | 1 54 | MinimumValueImage 55 | 56 | MaximumValueImage 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/GRSResource.bundle/en.lproj/Root.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/GRSResource.bundle/en.lproj/Root.strings -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/GRSResource.bundle/grs/config/cbg_root.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIFZDCCA0ygAwIBAgIIYsLLTehAXpYwDQYJKoZIhvcNAQELBQAwUDELMAkGA1UE 3 | BhMCQ04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UECwwKSHVhd2VpIENCRzEbMBkG 4 | A1UEAwwSSHVhd2VpIENCRyBSb290IENBMB4XDTE3MDgyMTEwNTYyN1oXDTQyMDgx 5 | NTEwNTYyN1owUDELMAkGA1UEBhMCQ04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UE 6 | CwwKSHVhd2VpIENCRzEbMBkGA1UEAwwSSHVhd2VpIENCRyBSb290IENBMIICIjAN 7 | BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1OyKm3Ig/6eibB7Uz2o93UqGk2M7 8 | 84WdfF8mvffvu218d61G5M3Px54E3kefUTk5Ky1ywHvw7Rp9KDuYv7ktaHkk+yr5 9 | 9Ihseu3a7iM/C6SnMSGt+LfB/Bcob9Abw95EigXQ4yQddX9hbNrin3AwZw8wMjEI 10 | SYYDo5GuYDL0NbAiYg2Y5GpfYIqRzoi6GqDz+evLrsl20kJeCEPgJZN4Jg00Iq9k 11 | ++EKOZ5Jc/Zx22ZUgKpdwKABkvzshEgG6WWUPB+gosOiLv++inu/9blDpEzQZhjZ 12 | 9WVHpURHDK1YlCvubVAMhDpnbqNHZ0AxlPletdoyugrH/OLKl5inhMXNj3Re7Hl8 13 | WsBWLUKp6sXFf0dvSFzqnr2jkhicS+K2IYZnjghC9cOBRO8fnkonh0EBt0evjUIK 14 | r5ClbCKioBX8JU+d4ldtWOpp2FlxeFTLreDJ5ZBU4//bQpTwYMt7gwMK+MO5Wtok 15 | Ux3UF98Z6GdUgbl6nBjBe82c7oIQXhHGHPnURQO7DDPgyVnNOnTPIkmiHJh/e3vk 16 | VhiZNHFCCLTip6GoJVrLxwb9i4q+d0thw4doxVJ5NB9OfDMV64/ybJgpf7m3Ld2y 17 | E0gsf1prrRlDFDXjlYyqqpf1l9Y0u3ctXo7UpXMgbyDEpUQhq3a7txZQO/17luTD 18 | oA6Tz1ADavvBwHkCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF 19 | MAMBAf8wHQYDVR0OBBYEFKrE03lH6G4ja+/wqWwicz16GWmhMA0GCSqGSIb3DQEB 20 | CwUAA4ICAQC1d3TMB+VHZdGrWJbfaBShFNiCTN/MceSHOpzBn6JumQP4N7mxCOwd 21 | RSsGKQxV2NPH7LTXWNhUvUw5Sek96FWx/+Oa7jsj3WNAVtmS3zKpCQ5iGb08WIRO 22 | cFnx3oUQ5rcO8r/lUk7Q2cN0E+rF4xsdQrH9k2cd3kAXZXBjfxfKPJTdPy1XnZR/ 23 | h8H5EwEK5DWjSzK1wKd3G/Fxdm3E23pcr4FZgdYdOlFSiqW2TJ3Qe6lF4GOKOOyd 24 | WHkpu54ieTsqoYcuMKnKMjT2SLNNgv9Gu5ipaG8Olz6g9C7Htp943lmK/1Vtnhgg 25 | pL3rDTsFX/+ehk7OtxuNzRMD9lXUtEfok7f8XB0dcL4ZjnEhDmp5QZqC1kMubHQt 26 | QnTauEiv0YkSGOwJAUZpK1PIff5GgxXYfaHfBC6Op4q02ppl5Q3URl7XIjYLjvs9 27 | t4S9xPe8tb6416V2fe1dZ62vOXMMKHkZjVihh+IceYpJYHuyfKoYJyahLOQXZykG 28 | K5iPAEEtq3HPfMVF43RKHOwfhrAH5KwelUA/0EkcR4Gzth1MKEqojdnYNemkkSy7 29 | aNPPT4LEm5R7sV6vG1CjwbgvQrWCgc4nMb8ngdfnVF7Ydqjqi9SAqUzIk4+Uf0ZY 30 | +6RY5IcHdCaiPaWIE1xURQ8B0DRUURsQwXdjZhgLN/DKJpCl5aCCxg== 31 | -----END CERTIFICATE----- 32 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/GRSResource.bundle/grs/config/grs_sdk_server_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "grs_server":{ 3 | "grs_base_url":[ 4 | "https://grs.dbankcloud.com", 5 | "https://grs.dbankcloud.cn", 6 | "https://grs.dbankcloud.eu", 7 | "https://grs.dbankcloud.asia" 8 | ], 9 | "grs_query_endpoint":"/grs/2.0/router", 10 | "grs_query_timeout":2 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/GRSResource.bundle/grs/router/grs_sdk_global_route_config_threeDModeling.json: -------------------------------------------------------------------------------- 1 | { 2 | "applications":[], 3 | "services":[ 4 | { 5 | "name":"com.huawei.cloud.modeling3d", 6 | "routeBy":"ser_country", 7 | "servings":[ 8 | { 9 | "countryOrAreaGroup":"DR1", 10 | "addresses":{ 11 | "HiAnalyticsUrl":"https://metrics1.data.hicloud.com:6447", 12 | "ROOT":"3dmodeling-api-drcn.cloud.huawei.com", 13 | "ROOTBACK":"3dmodeling-api-drcn.cloud.huawei.com.cn" 14 | } 15 | }, 16 | { 17 | "countryOrAreaGroup":"DR2", 18 | "addresses":{ 19 | "HiAnalyticsUrl":"https://metrics-dra.dt.hicloud.com:6447", 20 | "ROOT":"3dmodeling-api-dra.cloud.huawei.com", 21 | "ROOTBACK":"3dmodeling-api-dra.cloud.huawei.asia" 22 | } 23 | }, 24 | { 25 | "countryOrAreaGroup":"DR3", 26 | "addresses":{ 27 | "HiAnalyticsUrl":"https://metrics2.data.hicloud.com:6447", 28 | "ROOT":"3dmodeling-api-dre.cloud.huawei.com", 29 | "ROOTBACK":"3dmodeling-api-dre.cloud.huawei.eu" 30 | } 31 | }, 32 | { 33 | "countryOrAreaGroup":"DR4", 34 | "addresses":{ 35 | "HiAnalyticsUrl":"https://metrics5.data.hicloud.com:6447", 36 | "ROOT":"3dmodeling-api-drru.cloud.huawei.com", 37 | "ROOTBACK":"3dmodeling-api-drru.cloud.huawei.ru" 38 | } 39 | } 40 | ], 41 | "countryOrAreaGroups":[] 42 | } 43 | ], 44 | "countryOrAreaGroups":[ 45 | { 46 | "id":"DR1", 47 | "name":"China", 48 | "countriesOrAreas":["CN"], 49 | "description":"China zone" 50 | }, 51 | { 52 | "id":"DR2", 53 | "name":"Asian-African-Latin American", 54 | "countriesOrAreas":["AE","AF","AG","AI","AM","AO","AQ","AR","AS","AW","AZ","BB","BD","BF","BH","BI","BJ","BL","BM","BN","BO","BR","BS","BT","BV","BW","BY","BZ","CC","CD","CF","CG","CI","CK","CL","CM","CO","CR","CU","CV","CX","DJ","DM","DO","DZ","EC","EG","EH","ER","ET","FJ","FK","FM","GA","GD","GE","GF","GH","GM","GN","GP","GQ","GS","GT","GU","GW","GY","HK","HM","HN","HT","ID","IN","IO","IQ","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LK","LR","LS","LY","MA","MG","MH","ML","MM","MN","MO","MP","MQ","MR","MS","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NP","NR","NU","OM","PA","PE","PF","PG","PH","PK","PN","PR","PS","PW","PY","QA","RE","RW","SA","SB","SC","SD","SG","SH","SL","SN","SO","SR","SS","ST","SV","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TT","TV","TW","TZ","UG","UY","UZ","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"], 55 | "description":"Asian-African-Latin American zone" 56 | }, 57 | { 58 | "id":"DR3", 59 | "name":"Europe", 60 | "countriesOrAreas":["AD","AL","AN","AT","AU","AX","BA","BE","BG","BQ","CA","CH","CW","CY","CZ","DE","DK","EE","ES","FI","FO","FR","GB","GG","GI","GL","GR","HR","HU","IE","IL","IM","IS","IT","JE","LI","LT","LU","LV","MC","MD","ME","MF","MK","MT","NL","NO","NZ","PL","PM","PT","RO","RS","SE","SI","SJ","SK","SM","SX","TR","UA","UM","US","VA","VC","XK","YK"], 61 | "description":"Europe zone" 62 | }, 63 | { 64 | "id":"DR4", 65 | "name":"Russia", 66 | "countriesOrAreas":["RU"], 67 | "description":"Russia zone" 68 | }, 69 | { 70 | "id":"DR5", 71 | "name":"A2", 72 | "countriesOrAreas":["IR"], 73 | "description":"A2 zone" 74 | } 75 | ] 76 | } -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/002root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/002root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/003root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/003root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/004root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/004root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/005root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/005root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/007root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/007root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/010root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/010root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/011root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/011root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/012root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/012root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/013root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/013root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/015root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/015root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/016root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/016root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/017root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/017root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/020root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/020root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/024root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/024root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/026root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/026root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/028root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/028root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/032root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/032root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/033root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/033root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/035root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/035root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/037root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/037root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/038root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/038root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/043root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/043root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/048root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/048root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/049root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/049root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/050T-TeleSec_GlobalRoot_Class.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/050T-TeleSec_GlobalRoot_Class.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/051DigiCert_Global_Root_G.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/051DigiCert_Global_Root_G.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/052Huawei_CBG_Root_CA.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/052Huawei_CBG_Root_CA.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/053-Actalis_root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/053-Actalis_root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/054-CFCA_root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/054-CFCA_root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/055-AddTrust External CA Root.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/certificates/055-AddTrust External CA Root.cer -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/hianalytics_list: -------------------------------------------------------------------------------- 1 | e2f856b9f9a4fd4cb2795aeaf83268e4bff189aaec05d691ffde76e075b82648,173cf86fe9894a0f70dadd09d4fd88c380836099d4939f8c3754361bdc16a32b,b368b110e3b565fe97c91f786e11bc48754cc8e4e6f21d8a94a68ac6ad67aaaf,db48223fd9e143f7e133c57f5d08a4e38549ce3ebd921fe3b4003c26e5e35bed,4bdecdf772491e35c4e8b48f88aee22bae1311984f2e1da4dfad0b78ee7f5163,3081a0adab3018d57165e6dd24074bdbac640f6dbe21a9e24d3474a87ebf38b8,db53fcdc9ab71e9bdd4eab257fe1aba7989ad2b24fbe3a85dfef72ea1dd6bae2,d80f18e8081b624cc64985f87f70118f1702985d2e10dbc985ee7be334fd3c7d,5fed96c85bd58c58aadbd465c172a4c9a794d8eb2f86cbc7bcee6caf4c7a2c5f,07ff9b7aeeff969173c45b285fe0fecdbaae244576ff7a2796a36f1c0c11adb4,92974c6802419e4d18b5ec536cbfa167b8e8eff09ec4c8510a5b95750b1e0c82,403f14ad2f0e5eb3c4f3a0bcd5c1592cc4492662ad53191c92905255d4990656,4230baa077b401374d0fc012375047e79ea0790d58d095ef18d97d95470c738d, 2 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/HAFormal.bundle/hianalytics_njjn: -------------------------------------------------------------------------------- 1 | 3082010a0282010100c54db230ca0e0f37b105a3cd364dd20c76d3574a781f884aeb7d7548fb33928eaafe7cf9d94b3dcb553bbb9e61821738b359da9f8cf1e9281cfbf842d1e55658d041b98ce28d81f5c7fe8b85b528f6afea350f28da6e833df875e19a6c71c59050298b28323c8910980c12a8e731e0c47dc14da076e88e25a8b7e9a7c33b27baf12e1c9de861523af15f577789389b700578670b6e37ff5e49cb4254efce57d5861aedca86e5baf1205b09cd7f742b38065559f0f70676754915acca5ad6eeaa0d68dfd5143d0a50faedb6cda3b13852705c881ba5b587ecbbb4467cbed08b6754a3f424d90c66fd3b82d48bd5c132b88ff36da668f5adc286ec8317166c70110203010001 2 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/Headers/Modeling3dKit.h: -------------------------------------------------------------------------------- 1 | // 2 | // Modeling3dKit.h 3 | // Modeling3dKit 4 | // 5 | // Created by zy on 2021/10/8. 6 | // 7 | 8 | #import 9 | 10 | //! Project version number for Modeling3dKit. 11 | FOUNDATION_EXPORT double Modeling3dKitVersionNumber; 12 | 13 | //! Project version string for Modeling3dKit. 14 | FOUNDATION_EXPORT const unsigned char Modeling3dKitVersionString[]; 15 | 16 | // In this header, you should import all the public headers of your framework using statements like #import 17 | 18 | #import "Modeling3dReconstructTask.h" 19 | #import "Modeling3dReconstructTaskModel.h" 20 | #import "Modeling3dReconstructErrorCode.h" 21 | #import "Modeling3dReconstructConstants.h" 22 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/Headers/Modeling3dReconstructConstants.h: -------------------------------------------------------------------------------- 1 | // 2 | // Modeling3dReconstructConstants.h 3 | // Modeling3dDemo 4 | // 5 | // Created by zy on 2021/10/14. 6 | // 7 | 8 | #ifndef Modeling3dReconstructConstants_h 9 | #define Modeling3dReconstructConstants_h 10 | 11 | typedef NS_ENUM(NSUInteger, UploadProgress) { 12 | UploadProgressInitUpload, //初始化上传 13 | UploadProgressCompress, //压缩 14 | UploadProgressSplit, //分片 15 | UploadProgressUploading, //上传 16 | UploadProgressNoticeService //通知云端上传完成 17 | }; 18 | 19 | typedef NS_ENUM(NSUInteger, InitTaskConfig) { 20 | /** taskType = 0 */ 21 | InitTaskConfigPictureModel=0, //RGB图像 22 | // InitTaskConfigSLAMModel=1, //SLAM模式 23 | // /** taskType = 1 */ 24 | // InitTaskConfigTrandationModel=0, //传统模式 25 | // InitTaskConfigAIModel=1 //AI模式 26 | }; 27 | 28 | typedef NS_ENUM(NSUInteger, QueryTaskStatus) { 29 | QueryTaskStatusCreateReconstruct, //新建重建任务 30 | QueryTaskStatusFinishUploadFiles, //文件上传完毕 31 | QueryTaskStatusExcuteReconstruct, //开始重建 32 | QueryTaskStatusReconstructSuccess, //重建成功 33 | QueryTaskStatusReconstructFail //重建失败 34 | }; 35 | 36 | typedef NS_ENUM(NSUInteger, TaskRestrictStatus) { 37 | TaskRestrictStatusUnrestrict, //未限制 38 | TaskRestrictStatusRestrict //已限制 39 | }; 40 | 41 | typedef NS_ENUM(NSUInteger, TaskDownloadFormat) { 42 | TaskDownloadFormatOBJ, //OBJ 43 | TaskDownloadFormatGLTF //GLTF 44 | }; 45 | 46 | 47 | #endif /* Modeling3dReconstructConstants_h */ 48 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/Headers/Modeling3dReconstructErrorCode.h: -------------------------------------------------------------------------------- 1 | // 2 | // Modeling3dErrorCode.h 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/8/21. 6 | // 7 | 8 | #ifndef Modeling3dErrorCode_h 9 | #define Modeling3dErrorCode_h 10 | 11 | typedef NS_ENUM(NSUInteger, MRErrorCode) { 12 | /** 未知错误 */ 13 | ERR_UNKNOWN = 1122, 14 | 15 | // 云测返回码 映射到 端侧错误码 16 | /**(1000 1003 1004) 服务器异常 */ 17 | ERR_SERVICE_EXCEPTION = 1112, 18 | /**(1001 1006) 鉴权失败 */ 19 | ERR_AUTHORIZE_FAILED = 1111, 20 | /**(1002) 非法参数 */ 21 | ERR_ILLEGAL_PARAMETER = 1104, 22 | /**(1005) Token非法或过期 */ 23 | ERR_ILLEGAL_TOKEN = 1116, 24 | /**(1007) 任务不存在 */ 25 | ERR_TASKIDID_NOT_EXISTE = 1114, 26 | /**(1008) 任务状态非法 */ 27 | ERR_ILLEGAL_TASK_STATUS = 1115, 28 | /**(1009) 图片文件不存在 */ 29 | ERR_FILE_NOT_FOUND = 1103, 30 | /**(1010) 任务过期 */ 31 | ERR_TASK_EXPIRED = 1117, 32 | /**(1011 1012) 调用超过上线 */ 33 | ERR_RAT_OVER_MAX_LIMIT = 1118, 34 | 35 | 36 | // 本地逻辑错误码 37 | /** 不支持的图片格式 */ 38 | ERR_IMAGE_FILE_NOTSUPPORTED = 1100, 39 | /** 图片文件太大 (上传的图片大小范围为小于800M) */ 40 | ERR_IMAGE_FILE_SIZE_OVERFLOW = 1101, 41 | /** 图片文件数量不支持 (上传的图片个数范围为20-200) */ 42 | ERR_FILE_NUMBER_NOT_SUPPORT = 1102, 43 | /** 重建引擎繁忙 */ 44 | ERR_ENGINE_BUSY = 1105, 45 | /** 上传失败 */ 46 | ERR_IMAGE_UPLOAD_FAILED = 1106, 47 | /** 任务正在执行,不允许重复提交 */ 48 | ERR_TASK_ALREADY_INPROGRESS = 1107, 49 | /** 查询失败 */ 50 | ERR_QUERY_FAILED = 1108, 51 | /** 下载失败 */ 52 | ERR_DOWNLOAD_FAILED = 1109, 53 | /** 取消上传失败 */ 54 | ERR_UPLOAD_CANCEL_FAILED = 1119, 55 | /** 取消下载失败 */ 56 | ERR_CANCELDOWNLOAD_FAILED = 1120, 57 | /** 网络异常 */ 58 | ERR_NETCONNECT_FAILED = 1110, 59 | /** 内部错误 */ 60 | ERR_INTERNAL = 1113, 61 | /** 初始化失败 */ 62 | ERR_INIT_TASK_FAILED = 1121, 63 | /** 图片分辨率不支持 (上传的图片个数范围为1080*720-4096*3048) */ 64 | ERR_IMAGE_RESOLUTION_NOTSUPPORTED = 1123, 65 | /** 图片分辨率不一致 */ 66 | ERR_IMAGE_RESOLUTION_INCONSISTENT = 1124, 67 | 68 | /** 图片格式不一致 */ 69 | ERR_IMAGE_TYPE_INCONSISTENT = 1125, 70 | /** 预览失败 */ 71 | ERR_MODEL_PREVIEW_FAILED = 1126, 72 | /** 删除云测文件失败 */ 73 | ERR_DELETE_REMOTE_FILE_FAILED = 1127, 74 | /** 任务受限 */ 75 | ERR_TASK_RESTRICTED = 1128, 76 | /** 数据处理地未设置 */ 77 | ERR_DATA_PROCESSING_LOCATION_NOT_SET = 1129, 78 | 79 | /** 压缩失败 */ 80 | ERR_COMPRESS_FAIL = 2111, 81 | /** 分片失败 */ 82 | ERR_FILE_SPLIT_FAIL = 2112, 83 | /** 重建未完成不支持下载 */ 84 | ERR_DOWNLOAD_NOT_SUPPORT = 2113, 85 | 86 | 87 | /** 请求取消 */ 88 | MRErrorCodeCanceled = NSURLErrorCancelled 89 | }; 90 | 91 | 92 | 93 | 94 | #endif /* Modeling3dErrorCode_h */ 95 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/Headers/Modeling3dReconstructTask.h: -------------------------------------------------------------------------------- 1 | // 2 | // Modeling3dTask.h 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/8/11. 6 | // 7 | 8 | #import 9 | #import "Modeling3dReconstructConstants.h" 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | typedef void(^failureBlock)(NSInteger retCode, NSString *retMsg); 15 | 16 | @class Modeling3dReconstructTaskModel; 17 | @interface Modeling3dReconstructTask : NSObject 18 | 19 | /** taskType 0、物体重建 1、材质生成 默认为0 */ 20 | @property (nonatomic, assign) NSInteger taskType; 21 | 22 | + (instancetype)sharedManager; 23 | 24 | 25 | /// 初始化SDK 26 | - (void)initSDK; 27 | 28 | /// 初始化Task 29 | /// @param taskConfig 任务配置参数 详见InitTaskConfig枚举 30 | /// @param successHandler 成功回调 返回Modeling3dTaskModel对象 31 | /// @param failureHandler 失败回调 retCode:错误码 retMsg错误信息 32 | - (void)initTaskWithTaskConfig:(InitTaskConfig)taskConfig 33 | successHandler:(void(^)(Modeling3dReconstructTaskModel *taskModel))successHandler 34 | failureHandler:(failureBlock)failureHandler; 35 | 36 | 37 | /// 删除Task 38 | /// @param taskId taskId 39 | /// @param successHandler 成功回调 40 | /// @param failureHandler 失败回调 retCode:错误码 retMsg错误信息 41 | - (void)deleteTaskWithTaskId:(NSString *)taskId 42 | successHandler:(void(^)(void))successHandler 43 | failureHandler:(failureBlock)failureHandler; 44 | 45 | 46 | /// 查询Task状态 47 | /// @param taskId taskId 48 | /// @param successHandler 成功回调 返回QueryTaskStatus枚举 49 | /// @param failureHandler 失败回调 retCode:错误码 retMsg错误信息 50 | - (void)queryTaskWithTaskId:(NSString *)taskId 51 | successHandler:(void(^)(QueryTaskStatus taskStatus, NSString *errorMsg))successHandler 52 | failureHandler:(failureBlock)failureHandler; 53 | 54 | 55 | /// 限制Task 56 | /// @param taskId taskId 57 | /// @param isCancel 添加限制和取消限制的标识 isCancel: 0-添加 1-取消 58 | /// @param successHandler 成功回调 59 | /// @param failureHandler 失败回调 retCode:错误码 retMsg错误信息 60 | - (void)restrictionWithTaskId:(NSString *)taskId 61 | isCancel:(BOOL)isCancel 62 | successHandler:(void(^)(void))successHandler 63 | failureHandler:(failureBlock)failureHandler; 64 | 65 | 66 | /// 查询Task的限制状态 67 | /// @param taskId taskId 68 | /// @param successHandler 成功回调 返回TaskRestrictStatus枚举 69 | /// @param failureHandler 失败回调 retCode:错误码 retMsg错误信息 70 | - (void)queryRestrictionWithTaskId:(NSString *)taskId 71 | successHandler:(void(^)(TaskRestrictStatus restrictFlag))successHandler 72 | failureHandler:(failureBlock)failureHandler; 73 | 74 | 75 | /// 下载Task 76 | /// @param taskId taskId 77 | /// @param downloadFormat 下载格式:目前支持OBJ、GLTF 78 | /// @param successHandler 成功回调 79 | /// @param progressHandler 进度回调 80 | /// @param failureHandler 失败回调 retCode:错误码 retMsg错误信息 81 | - (void)downloadTaskWithTaskId:(NSString *)taskId 82 | downloadFormat:(TaskDownloadFormat)downloadFormat 83 | successHandler:(void(^)(void))successHandler 84 | progressHandler:(void(^)(float progressValue))progressHandler 85 | failureHandler:(failureBlock)failureHandler; 86 | 87 | 88 | /// 预览Task 89 | /// @param taskId taskId 90 | /// @param successHandler 成功回调 91 | /// @param failureHandler 失败回调 retCode:错误码 retMsg错误信息 92 | - (void)previewTaskWithTaskId:(NSString *)taskId 93 | successHandler:(void(^)(void))successHandler 94 | failureHandler:(failureBlock)failureHandler; 95 | 96 | 97 | /// 上传文件 98 | /// @param taskModel Init获取到的Modeling3dTaskModel对象 99 | /// @param imageAssets 选择的图片素材数组(NSArray *)数组内为UIImage对象 100 | /// @param fileHandleProgress 上传阶段回调 101 | /// @param successHandler 成功回调 102 | /// @param progressHandler 进度回调 103 | /// @param failureHandler 失败回调 retCode:错误码 retMsg错误信息 104 | - (void)uploadTaskWithTaskModel:(Modeling3dReconstructTaskModel *)taskModel 105 | imageAssets:(NSArray *)imageAssets 106 | fileHandleProgress:(void(^)(UploadProgress progress))fileHandleProgress 107 | successHandler:(void(^)(void))successHandler 108 | progressHandler:(void(^)(float progressValue))progressHandler 109 | failureHandler:(failureBlock)failureHandler; 110 | 111 | 112 | /// 取消上传 113 | /// @param taskId taskId 114 | /// @param completeHandler 完成回调 retCode:错误码 retMsg错误信息 115 | - (void)cancelUploadTaskWithTaskId:(NSString *)taskId 116 | completeHandler:(void(^)(NSInteger retCode, NSString *retMsg))completeHandler; 117 | 118 | 119 | /// 取消下载 120 | /// @param completeHandler 完成回调 retCode:错误码 retMsg错误信息 121 | - (void)cancelDownloadTaskWithTaskId:(NSString *)taskId 122 | completeHandler:(void(^)(NSInteger retCode, NSString *retMsg))completeHandler; 123 | 124 | 125 | /// 下载模型转换为指定格式 126 | /// @param taskId 任务ID 127 | /// @param fileFormat 目标格式类型 128 | /// @param successHandler 成功回调 129 | /// @param failureHandler 失败回调 130 | - (void)transformDownloadFormatWithTaskId:(NSString *)taskId 131 | fileFormat:(NSString *)fileFormat 132 | successHandler:(void(^)(void))successHandler 133 | failureHandler:(failureBlock)failureHandler; 134 | 135 | #pragma mark - Demo 136 | - (void)createLocationUrlWithTaskModel:(Modeling3dReconstructTaskModel *)taskModel; 137 | - (NSArray *)getLocationFileArray; 138 | - (UIImage *)getCoverImageWithTaskId:(NSString *)taskId; 139 | @end 140 | 141 | NS_ASSUME_NONNULL_END 142 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/Headers/Modeling3dReconstructTaskModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // Modeling3dTaskModel.h 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/8/14. 6 | // 7 | 8 | #import 9 | #import "Modeling3dReconstructConstants.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface Modeling3dReconstructTaskModel : NSObject 14 | 15 | // id 16 | @property (nonatomic, copy) NSString *taskId; 17 | // 分片大小 18 | @property (nonatomic, assign) NSInteger blockSize; 19 | // 有效期 20 | @property (nonatomic, assign) NSInteger expireTime; 21 | // 任务状态 22 | @property (nonatomic, assign) NSInteger taskStatus; 23 | // 受限制处理状态:0.不限制 1.限制处理 24 | @property (nonatomic, assign) BOOL restrictFlag; 25 | // 创建时间 26 | @property (nonatomic, copy) NSString *createDate; 27 | // 上传状态 28 | @property (nonatomic, assign) UploadProgress uploadStatus; 29 | // 当前任务文件大小 30 | @property (nonatomic, assign) int64_t fileSize; 31 | 32 | // 保存更改 33 | - (void)save; 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/Info.plist -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/Modeling3dKit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/Modeling3dKit -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Modeling3dKit { 2 | umbrella header "Modeling3dKit.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/icon_close@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/icon_close@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/icon_close@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/Modeling3dKit.framework/icon_close@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/SceneDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.h 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/8/10. 6 | // 7 | 8 | #import 9 | 10 | @interface SceneDelegate : UIResponder 11 | 12 | @property (strong, nonatomic) UIWindow * window; 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/SceneDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.m 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/8/10. 6 | // 7 | 8 | #import "SceneDelegate.h" 9 | 10 | @interface SceneDelegate () 11 | 12 | @end 13 | 14 | @implementation SceneDelegate 15 | 16 | 17 | - (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions { 18 | // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. 19 | // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. 20 | // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). 21 | } 22 | 23 | 24 | - (void)sceneDidDisconnect:(UIScene *)scene { 25 | // Called as the scene is being released by the system. 26 | // This occurs shortly after the scene enters the background, or when its session is discarded. 27 | // Release any resources associated with this scene that can be re-created the next time the scene connects. 28 | // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). 29 | } 30 | 31 | 32 | - (void)sceneDidBecomeActive:(UIScene *)scene { 33 | // Called when the scene has moved from an inactive state to an active state. 34 | // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. 35 | } 36 | 37 | 38 | - (void)sceneWillResignActive:(UIScene *)scene { 39 | // Called when the scene will move from an active state to an inactive state. 40 | // This may occur due to temporary interruptions (ex. an incoming phone call). 41 | } 42 | 43 | 44 | - (void)sceneWillEnterForeground:(UIScene *)scene { 45 | // Called as the scene transitions from the background to the foreground. 46 | // Use this method to undo the changes made on entering the background. 47 | } 48 | 49 | 50 | - (void)sceneDidEnterBackground:(UIScene *)scene { 51 | // Called as the scene transitions from the foreground to the background. 52 | // Use this method to save data, release shared resources, and store enough scene-specific state information 53 | // to restore the scene back to its current state. 54 | } 55 | 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/.DS_Store -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/.DS_Store -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/CGXPopoverView/CGXPopoverItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // CGXPopoverItem.h 3 | // CGXPopoverVIew 4 | // 5 | // Created by CGX on 2018/6/6. 6 | // Copyright © 2018年 CGX. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | 13 | @interface CGXPopoverItem : NSObject 14 | @property (nonatomic, strong) UIImage *image; ///< 图标 (建议使用 60pix*60pix 的图片) 15 | @property (nonatomic, copy) NSString *title; ///< 标题 16 | 17 | @property (nonatomic, copy) NSDictionary *userInfo; ///< 标题相关详情字典 18 | @property (nonatomic, copy) UIFont *titleFont; 19 | @property (nonatomic, copy) UIColor *titleColor; 20 | 21 | @property (nonatomic, assign) NSTextAlignment alignment; 22 | 23 | @property (nonatomic, assign) BOOL isSelect;// 默认选中 24 | 25 | 26 | + (instancetype)actionWithTitle:(NSString *)title; 27 | + (instancetype)actionWithImage:(UIImage *)image 28 | Title:(NSString *)title; 29 | + (instancetype)actionWithImage:(UIImage *)image 30 | Title:(NSString *)title 31 | IsSelect:(BOOL)isSelect; 32 | + (instancetype)actionWithImage:(UIImage *)image 33 | Title:(NSString *)title 34 | TitleFont:(UIFont *)titleFont 35 | TitleColor:(UIColor *)titleColor 36 | UserInfo:(NSDictionary *)userInfo 37 | Alignment:(NSTextAlignment)alignment 38 | IsSelect:(BOOL)isSelect; 39 | @end 40 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/CGXPopoverView/CGXPopoverItem.m: -------------------------------------------------------------------------------- 1 | // 2 | // CGXPopoverItem.m 3 | // CGXPopoverVIew 4 | // 5 | // Created by CGX on 2018/6/6. 6 | // Copyright © 2018年 CGX. All rights reserved. 7 | // 8 | 9 | #import "CGXPopoverItem.h" 10 | @interface CGXPopoverItem () 11 | 12 | @end 13 | 14 | @implementation CGXPopoverItem 15 | 16 | 17 | - (instancetype)init 18 | { 19 | self = [super init]; 20 | if (self) { 21 | self.titleFont = [UIFont systemFontOfSize:14]; 22 | self.titleColor = [UIColor blackColor]; 23 | 24 | self.alignment = NSTextAlignmentCenter; 25 | 26 | self.isSelect= NO; 27 | } 28 | return self; 29 | } 30 | + (instancetype)actionWithTitle:(NSString *)title 31 | { 32 | return [self actionWithImage:nil Title:title]; 33 | } 34 | 35 | + (instancetype)actionWithImage:(UIImage *)image 36 | Title:(NSString *)title 37 | { 38 | return [self actionWithImage:image Title:title TitleFont:[UIFont systemFontOfSize:15] TitleColor:[UIColor blackColor] UserInfo:@{} Alignment:NSTextAlignmentLeft IsSelect:NO]; 39 | } 40 | + (instancetype)actionWithImage:(UIImage *)image 41 | Title:(NSString *)title 42 | IsSelect:(BOOL)isSelect 43 | { 44 | return [self actionWithImage:image Title:title TitleFont:[UIFont systemFontOfSize:15] TitleColor:[UIColor blackColor] UserInfo:@{} Alignment:NSTextAlignmentLeft IsSelect:isSelect]; 45 | } 46 | + (instancetype)actionWithImage:(UIImage *)image 47 | Title:(NSString *)title 48 | TitleFont:(UIFont *)titleFont 49 | TitleColor:(UIColor *)titleColor 50 | UserInfo:(NSDictionary *)userInfo 51 | Alignment:(NSTextAlignment)alignment 52 | IsSelect:(BOOL)isSelect; 53 | { 54 | CGXPopoverItem *action = [[self alloc] init]; 55 | action.image = image; 56 | action.title = title ? : @""; 57 | action.userInfo = userInfo; 58 | action.titleFont = titleFont; 59 | action.titleColor = titleColor; 60 | action.alignment = alignment; 61 | action.isSelect = isSelect; 62 | return action; 63 | } 64 | @end 65 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/CGXPopoverView/CGXPopoverManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // CGXPopoverManager.h 3 | // CGXPopoverViewDemo 4 | // 5 | // Created by CGX on 2018/6/13. 6 | // Copyright © 2018年 CGX. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | typedef NS_ENUM(NSUInteger, CGXPopoverManagerItemStyle) { 12 | CGXPopoverManagerItemDefault, // 默认风格, 白色 13 | CGXPopoverManagerItemDark // 黑色风格 14 | }; 15 | 16 | // 弹窗箭头的样式 17 | typedef NS_ENUM(NSUInteger, CGXPopoverManagerArrowStyle) { 18 | CGXPopoverManagerArrowStyleRound, // 圆角 19 | CGXPopoverManagerArrowStyleTriangle // 菱角 20 | }; 21 | 22 | @interface CGXPopoverManager : NSObject 23 | 24 | 25 | @property (nonatomic, strong) NSMutableArray *modleArray; 26 | 27 | @property (nonatomic, strong) NSIndexPath *selectIndexPath; 28 | /** 29 | 是否开启点击外部隐藏弹窗, 默认为YES. 30 | */ 31 | @property (nonatomic, assign) BOOL hideAfterTouchOutside; 32 | 33 | /** 34 | 是否显示阴影, 如果为YES则弹窗背景为半透明的阴影层, 默认为YES. 35 | */ 36 | @property (nonatomic, assign) BOOL showShade; 37 | /** 38 | 是否有动画, 默认为YES. 39 | */ 40 | @property (nonatomic, assign) BOOL isAnimate; 41 | /** 42 | 动画时间。默认5秒 43 | */ 44 | @property (nonatomic, assign) CGFloat timeInterval; 45 | 46 | /** 47 | 指示箭头的宽 默认30 48 | */ 49 | @property (nonatomic, assign) CGFloat arrowWidth; 50 | /** 51 | 边框圆角 默认6 52 | */ 53 | @property (nonatomic, assign) CGFloat cornerRadius; 54 | 55 | /** 56 | 动画选中颜色。默认5秒 57 | */ 58 | @property (nonatomic, strong) UIColor *selectTitleColor; 59 | 60 | /** 61 | 弹出窗风格, 默认为 CGXPopoverManagerItemDark(灰色). 62 | */ 63 | @property (nonatomic, assign) CGXPopoverManagerItemStyle style; 64 | 65 | /** 66 | 箭头样式, 默认为 PopoverViewArrowStyleRound. 67 | 如果要修改箭头的样式, 需要在显示先设置. 68 | */ 69 | @property (nonatomic, assign) CGXPopoverManagerArrowStyle arrowStyle; 70 | 71 | 72 | @end 73 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/CGXPopoverView/CGXPopoverManager.m: -------------------------------------------------------------------------------- 1 | // 2 | // CGXPopoverManager.m 3 | // CGXPopoverViewDemo 4 | // 5 | // Created by CGX on 2018/6/13. 6 | // Copyright © 2018年 CGX. All rights reserved. 7 | // 8 | 9 | #import "CGXPopoverManager.h" 10 | 11 | @implementation CGXPopoverManager 12 | 13 | - (NSMutableArray *)modleArray 14 | { 15 | if (!_modleArray) { 16 | _modleArray = [NSMutableArray array]; 17 | } 18 | return _modleArray; 19 | } 20 | - (instancetype)init 21 | { 22 | self = [super init]; 23 | if (self) { 24 | _selectIndexPath = [NSIndexPath indexPathForItem:0 inSection:0]; 25 | self.cornerRadius = 6; 26 | self.arrowWidth = 30; 27 | } 28 | return self; 29 | } 30 | - (BOOL)hideAfterTouchOutside 31 | { 32 | if (!_hideAfterTouchOutside) { 33 | _hideAfterTouchOutside = YES; 34 | } 35 | return _hideAfterTouchOutside; 36 | } 37 | - (BOOL)showShade 38 | { 39 | if (!_showShade) { 40 | _showShade = YES; 41 | } 42 | return _showShade; 43 | } 44 | - (BOOL)isAnimate 45 | { 46 | if (!_isAnimate) { 47 | _isAnimate = YES; 48 | } 49 | return _isAnimate; 50 | } 51 | - (CGFloat)timeInterval 52 | { 53 | if (!_timeInterval) { 54 | _timeInterval = 0.5; 55 | } 56 | return _timeInterval; 57 | } 58 | - (UIColor *)selectTitleColor 59 | { 60 | if (!_selectTitleColor) { 61 | _selectTitleColor = [UIColor redColor]; 62 | } 63 | return _selectTitleColor; 64 | } 65 | - (CGXPopoverManagerItemStyle)style 66 | { 67 | if (!_style) { 68 | _style = CGXPopoverManagerItemDefault; 69 | } 70 | return _style; 71 | } 72 | - (CGXPopoverManagerArrowStyle)arrowStyle 73 | { 74 | if (!_arrowStyle) { 75 | _arrowStyle = CGXPopoverManagerArrowStyleRound; 76 | } 77 | return _arrowStyle; 78 | } 79 | 80 | @end 81 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/CGXPopoverView/CGXPopoverView.h: -------------------------------------------------------------------------------- 1 | // 2 | // CGXPopoverView.h 3 | // CGXPopoverVIew 4 | // 5 | // git地址:https://github.com/974794055/CGXPopoverView-OC.git 6 | // author:QQ:974794055 7 | // 8 | // Created by CGX on 2018/6/6. 9 | // Copyright © 2018年 CGX. All rights reserved. 10 | // 11 | 12 | #import 13 | #import "CGXPopoverManager.h" 14 | #import "CGXPopoverItem.h" 15 | 16 | typedef void (^CGXPopoverViewSelectItemBlock)(CGXPopoverItem *item,NSIndexPath *indexPath); 17 | 18 | @interface CGXPopoverView : UIView 19 | 20 | 21 | - (instancetype)initWithFrame:(CGRect)frame WithManager:(CGXPopoverManager *)manager; 22 | 23 | @property (nonatomic , strong) CGXPopoverManager *manager; 24 | /** 25 | 指向指定的View来显示弹窗 26 | 27 | @param pointView 箭头指向的View 28 | */ 29 | - (void)showToView:(UIView *)pointView 30 | SelectItem:(CGXPopoverViewSelectItemBlock)selectItem; 31 | 32 | 33 | /** 34 | 指向指定的点来显示弹窗 35 | 36 | @param toPoint 箭头指向的点(这个点的坐标需按照keyWindow的坐标为参照) 37 | */ 38 | - (void)showToPoint:(CGPoint)toPoint 39 | SelectItem:(CGXPopoverViewSelectItemBlock)selectItem; 40 | 41 | 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/CGXPopoverView/CGXPopovewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // CGXPopovewCell.h 3 | // CGXPopoverVIew 4 | // 5 | // Created by CGX on 2018/6/6. 6 | // Copyright © 2018年 CGX. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "CGXPopoverItem.h" 11 | #import "CGXPopoverManager.h" 12 | UIKIT_EXTERN float const CGXPopovewCellHorizontalMargin; ///< 水平间距边距 13 | UIKIT_EXTERN float const CGXPopovewCellVerticalMargin; ///< 垂直边距 14 | UIKIT_EXTERN float const CGXPopovewCellTitleLeftEdge; ///< 标题左边边距 15 | 16 | @interface CGXPopovewCell : UITableViewCell 17 | 18 | @property (nonatomic, strong) UIButton *button; 19 | @property (nonatomic, strong) UIView *bottomLine; 20 | 21 | @property (nonatomic, assign) CGXPopoverManagerItemStyle style; 22 | 23 | /*! @brief 底部线条颜色 24 | */ 25 | + (UIColor *)bottomLineColorForStyle:(CGXPopoverManagerItemStyle)style; 26 | 27 | - (void)setAction:(CGXPopoverItem *)action; 28 | 29 | - (void)showBottomLine:(BOOL)show; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/CGXPopoverView/CGXPopovewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // CGXPopovewCell.m 3 | // CGXPopoverVIew 4 | // 5 | // Created by CGX on 2018/6/6. 6 | // Copyright © 2018年 CGX. All rights reserved. 7 | // 8 | 9 | #import "CGXPopovewCell.h" 10 | // extern 11 | float const CGXPopovewCellHorizontalMargin = 15.f; ///< 水平边距 12 | float const CGXPopovewCellVerticalMargin = 3.f; ///< 垂直边距 13 | float const CGXPopovewCellTitleLeftEdge = 8.f; ///< 标题左边边距 14 | 15 | @interface CGXPopovewCell () 16 | 17 | 18 | 19 | @end 20 | 21 | @implementation CGXPopovewCell 22 | #pragma mark - Life Cycle 23 | - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 24 | if (!(self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) return nil; 25 | self.backgroundColor = [UIColor clearColor]; 26 | self.contentView.backgroundColor = self.backgroundColor; 27 | self.selectionStyle = UITableViewCellSelectionStyleNone; 28 | return self; 29 | } 30 | 31 | - (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated { 32 | [super setHighlighted:highlighted animated:animated]; 33 | if (highlighted) { 34 | self.backgroundColor = _style == CGXPopoverManagerItemDark ? [UIColor colorWithRed:0.23 green:0.23 blue:0.23 alpha:1.00] : [UIColor colorWithRed:0.90 green:0.90 blue:0.90 alpha:1.00]; 35 | } else { 36 | [UIView animateWithDuration:0.3f animations:^{ 37 | self.backgroundColor = [UIColor clearColor]; 38 | }]; 39 | } 40 | } 41 | #pragma mark - Setter 42 | - (void)setStyle:(CGXPopoverManagerItemStyle)style { 43 | _style = style; 44 | _bottomLine.backgroundColor = [self.class bottomLineColorForStyle:style]; 45 | if (_style == CGXPopoverManagerItemDefault) { 46 | [_button setTitleColor:UIColor.blackColor forState:UIControlStateNormal]; 47 | } else { 48 | [_button setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; 49 | } 50 | } 51 | - (UIView *)bottomLine 52 | { 53 | if (!_bottomLine) { 54 | // 底部线条 55 | _bottomLine = [[UIView alloc] init]; 56 | _bottomLine.backgroundColor = [UIColor colorWithRed:0.75 green:0.75 blue:0.75 alpha:1.00]; 57 | _bottomLine.translatesAutoresizingMaskIntoConstraints = NO; 58 | [self.contentView addSubview:_bottomLine]; 59 | _bottomLine.frame = CGRectMake(0, self.contentView.frame.size.height-1, self.contentView.frame.size.width, 1); 60 | } 61 | return _bottomLine; 62 | } 63 | - (UIButton *)button 64 | { 65 | if (!_button) { 66 | // UI 67 | _button = [UIButton buttonWithType:UIButtonTypeCustom]; 68 | _button.userInteractionEnabled = NO; // has no use for UserInteraction. 69 | _button.translatesAutoresizingMaskIntoConstraints = NO; 70 | _button.titleLabel.font = [UIFont systemFontOfSize:15.f]; 71 | _button.backgroundColor = self.contentView.backgroundColor; 72 | _button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; 73 | [_button setTitleColor:UIColor.blackColor forState:UIControlStateNormal]; 74 | [self.contentView addSubview:_button]; 75 | // Constraint 76 | [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-margin-[_button]-margin-|" options:kNilOptions metrics:@{@"margin" : @(CGXPopovewCellHorizontalMargin)} views:NSDictionaryOfVariableBindings(_button)]]; 77 | [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-margin-[_button]-margin-|" options:kNilOptions metrics:@{@"margin" : @(CGXPopovewCellVerticalMargin)} views:NSDictionaryOfVariableBindings(_button)]]; 78 | } 79 | return _button; 80 | } 81 | 82 | 83 | /*! @brief 底部线条颜色 */ 84 | + (UIColor *)bottomLineColorForStyle:(CGXPopoverManagerItemStyle)style { 85 | return style == CGXPopoverManagerItemDark ? [UIColor colorWithRed:0.75 green:0.75 blue:0.75 alpha:1.00] : [UIColor colorWithRed:0.29 green:0.29 blue:0.29 alpha:1.00]; 86 | } 87 | 88 | - (void)setAction:(CGXPopoverItem *)action { 89 | [self.button setTitle:action.title forState:UIControlStateNormal]; 90 | if (action.image) { 91 | [self.button setImage:action.image forState:UIControlStateNormal]; 92 | } 93 | if (action.titleColor) { 94 | [self.button setTitleColor:action.titleColor forState:UIControlStateNormal]; 95 | } 96 | if (action.titleFont) { 97 | [self.button.titleLabel setFont:action.titleFont]; 98 | } 99 | self.button.titleEdgeInsets = action.image ? UIEdgeInsetsMake(0, CGXPopovewCellTitleLeftEdge, 0, -CGXPopovewCellTitleLeftEdge) : UIEdgeInsetsZero; 100 | } 101 | 102 | - (void)showBottomLine:(BOOL)show { 103 | _bottomLine.hidden = !show; 104 | } 105 | - (void)awakeFromNib { 106 | [super awakeFromNib]; 107 | // Initialization code 108 | } 109 | 110 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 111 | [super setSelected:selected animated:animated]; 112 | 113 | // Configure the view for the selected state 114 | } 115 | 116 | @end 117 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVIndefiniteAnimatedView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SVIndefiniteAnimatedView.h 3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD 4 | // 5 | // Copyright (c) 2014-2019 Guillaume Campagna. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | @interface SVIndefiniteAnimatedView : UIView 11 | 12 | @property (nonatomic, assign) CGFloat strokeThickness; 13 | @property (nonatomic, assign) CGFloat radius; 14 | @property (nonatomic, strong) UIColor *strokeColor; 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressAnimatedView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SVProgressAnimatedView.h 3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD 4 | // 5 | // Copyright (c) 2017-2019 Tobias Tiemerding. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | @interface SVProgressAnimatedView : UIView 11 | 12 | @property (nonatomic, assign) CGFloat radius; 13 | @property (nonatomic, assign) CGFloat strokeThickness; 14 | @property (nonatomic, strong) UIColor *strokeColor; 15 | @property (nonatomic, assign) CGFloat strokeEnd; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressAnimatedView.m: -------------------------------------------------------------------------------- 1 | // 2 | // SVProgressAnimatedView.m 3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD 4 | // 5 | // Copyright (c) 2017-2019 Tobias Tiemerding. All rights reserved. 6 | // 7 | 8 | #import "SVProgressAnimatedView.h" 9 | 10 | @interface SVProgressAnimatedView () 11 | 12 | @property (nonatomic, strong) CAShapeLayer *ringAnimatedLayer; 13 | 14 | @end 15 | 16 | @implementation SVProgressAnimatedView 17 | 18 | - (void)willMoveToSuperview:(UIView*)newSuperview { 19 | if (newSuperview) { 20 | [self layoutAnimatedLayer]; 21 | } else { 22 | [_ringAnimatedLayer removeFromSuperlayer]; 23 | _ringAnimatedLayer = nil; 24 | } 25 | } 26 | 27 | - (void)layoutAnimatedLayer { 28 | CALayer *layer = self.ringAnimatedLayer; 29 | [self.layer addSublayer:layer]; 30 | 31 | CGFloat widthDiff = CGRectGetWidth(self.bounds) - CGRectGetWidth(layer.bounds); 32 | CGFloat heightDiff = CGRectGetHeight(self.bounds) - CGRectGetHeight(layer.bounds); 33 | layer.position = CGPointMake(CGRectGetWidth(self.bounds) - CGRectGetWidth(layer.bounds) / 2 - widthDiff / 2, CGRectGetHeight(self.bounds) - CGRectGetHeight(layer.bounds) / 2 - heightDiff / 2); 34 | } 35 | 36 | - (CAShapeLayer*)ringAnimatedLayer { 37 | if(!_ringAnimatedLayer) { 38 | CGPoint arcCenter = CGPointMake(self.radius+self.strokeThickness/2+5, self.radius+self.strokeThickness/2+5); 39 | UIBezierPath* smoothedPath = [UIBezierPath bezierPathWithArcCenter:arcCenter radius:self.radius startAngle:(CGFloat)-M_PI_2 endAngle:(CGFloat) (M_PI + M_PI_2) clockwise:YES]; 40 | 41 | _ringAnimatedLayer = [CAShapeLayer layer]; 42 | _ringAnimatedLayer.contentsScale = [[UIScreen mainScreen] scale]; 43 | _ringAnimatedLayer.frame = CGRectMake(0.0f, 0.0f, arcCenter.x*2, arcCenter.y*2); 44 | _ringAnimatedLayer.fillColor = [UIColor clearColor].CGColor; 45 | _ringAnimatedLayer.strokeColor = self.strokeColor.CGColor; 46 | _ringAnimatedLayer.lineWidth = self.strokeThickness; 47 | _ringAnimatedLayer.lineCap = kCALineCapRound; 48 | _ringAnimatedLayer.lineJoin = kCALineJoinBevel; 49 | _ringAnimatedLayer.path = smoothedPath.CGPath; 50 | } 51 | return _ringAnimatedLayer; 52 | } 53 | 54 | - (void)setFrame:(CGRect)frame { 55 | if(!CGRectEqualToRect(frame, super.frame)) { 56 | [super setFrame:frame]; 57 | 58 | if(self.superview) { 59 | [self layoutAnimatedLayer]; 60 | } 61 | } 62 | } 63 | 64 | - (void)setRadius:(CGFloat)radius { 65 | if(radius != _radius) { 66 | _radius = radius; 67 | 68 | [_ringAnimatedLayer removeFromSuperlayer]; 69 | _ringAnimatedLayer = nil; 70 | 71 | if(self.superview) { 72 | [self layoutAnimatedLayer]; 73 | } 74 | } 75 | } 76 | 77 | - (void)setStrokeColor:(UIColor*)strokeColor { 78 | _strokeColor = strokeColor; 79 | _ringAnimatedLayer.strokeColor = strokeColor.CGColor; 80 | } 81 | 82 | - (void)setStrokeThickness:(CGFloat)strokeThickness { 83 | _strokeThickness = strokeThickness; 84 | _ringAnimatedLayer.lineWidth = _strokeThickness; 85 | } 86 | 87 | - (void)setStrokeEnd:(CGFloat)strokeEnd { 88 | _strokeEnd = strokeEnd; 89 | _ringAnimatedLayer.strokeEnd = _strokeEnd; 90 | } 91 | 92 | - (CGSize)sizeThatFits:(CGSize)size { 93 | return CGSizeMake((self.radius+self.strokeThickness/2+5)*2, (self.radius+self.strokeThickness/2+5)*2); 94 | } 95 | 96 | @end 97 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'SVProgressHUD' target in the 'SVProgressHUD' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/error.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/error@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/error@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/error@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/error@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/info.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/info@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/info@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/info@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/info@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/success.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/success@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/success@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/success@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVProgressHUD.bundle/success@3x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVRadialGradientLayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // SVRadialGradientLayer.h 3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD 4 | // 5 | // Copyright (c) 2014-2019 Tobias Tiemerding. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | @interface SVRadialGradientLayer : CALayer 11 | 12 | @property (nonatomic) CGPoint gradientCenter; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/SVProgressHUD/SVRadialGradientLayer.m: -------------------------------------------------------------------------------- 1 | // 2 | // SVRadialGradientLayer.m 3 | // SVProgressHUD, https://github.com/SVProgressHUD/SVProgressHUD 4 | // 5 | // Copyright (c) 2014-2019 Tobias Tiemerding. All rights reserved. 6 | // 7 | 8 | #import "SVRadialGradientLayer.h" 9 | 10 | @implementation SVRadialGradientLayer 11 | 12 | - (void)drawInContext:(CGContextRef)context { 13 | size_t locationsCount = 2; 14 | CGFloat locations[2] = {0.0f, 1.0f}; 15 | CGFloat colors[8] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.75f}; 16 | CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 17 | CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, colors, locations, locationsCount); 18 | CGColorSpaceRelease(colorSpace); 19 | 20 | float radius = MIN(self.bounds.size.width , self.bounds.size.height); 21 | CGContextDrawRadialGradient (context, gradient, self.gradientCenter, 0, self.gradientCenter, radius, kCGGradientDrawsAfterEndLocation); 22 | CGGradientRelease(gradient); 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/NSBundle+TZImagePicker.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSBundle+TZImagePicker.h 3 | // TZImagePickerController 4 | // 5 | // Created by 谭真 on 16/08/18. 6 | // Copyright © 2016年 谭真. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSBundle (TZImagePicker) 12 | 13 | + (NSBundle *)tz_imagePickerBundle; 14 | 15 | + (NSString *)tz_localizedStringForKey:(NSString *)key value:(NSString *)value; 16 | + (NSString *)tz_localizedStringForKey:(NSString *)key; 17 | 18 | @end 19 | 20 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/NSBundle+TZImagePicker.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSBundle+TZImagePicker.m 3 | // TZImagePickerController 4 | // 5 | // Created by 谭真 on 16/08/18. 6 | // Copyright © 2016年 谭真. All rights reserved. 7 | // 8 | 9 | #import "NSBundle+TZImagePicker.h" 10 | #import "TZImagePickerController.h" 11 | 12 | @implementation NSBundle (TZImagePicker) 13 | 14 | + (NSBundle *)tz_imagePickerBundle { 15 | #ifdef SWIFT_PACKAGE 16 | NSBundle *bundle = SWIFTPM_MODULE_BUNDLE; 17 | #else 18 | NSBundle *bundle = [NSBundle bundleForClass:[TZImagePickerController class]]; 19 | #endif 20 | NSURL *url = [bundle URLForResource:@"TZImagePickerController" withExtension:@"bundle"]; 21 | bundle = [NSBundle bundleWithURL:url]; 22 | return bundle; 23 | } 24 | 25 | + (NSString *)tz_localizedStringForKey:(NSString *)key { 26 | return [self tz_localizedStringForKey:key value:@""]; 27 | } 28 | 29 | + (NSString *)tz_localizedStringForKey:(NSString *)key value:(NSString *)value { 30 | NSBundle *bundle = [TZImagePickerConfig sharedInstance].languageBundle; 31 | NSString *value1 = [bundle localizedStringForKey:key value:value table:nil]; 32 | return value1; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZAssetCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TZAssetCell.h 3 | // TZImagePickerController 4 | // 5 | // Created by 谭真 on 15/12/24. 6 | // Copyright © 2015年 谭真. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | typedef enum : NSUInteger { 13 | TZAssetCellTypePhoto = 0, 14 | TZAssetCellTypeLivePhoto, 15 | TZAssetCellTypePhotoGif, 16 | TZAssetCellTypeVideo, 17 | TZAssetCellTypeAudio, 18 | } TZAssetCellType; 19 | 20 | @class TZAssetModel; 21 | @interface TZAssetCell : UICollectionViewCell 22 | @property (weak, nonatomic) UIButton *selectPhotoButton; 23 | @property (weak, nonatomic) UIButton *cannotSelectLayerButton; 24 | @property (nonatomic, strong) TZAssetModel *model; 25 | @property (assign, nonatomic) NSInteger index; 26 | @property (nonatomic, copy) void (^didSelectPhotoBlock)(BOOL); 27 | @property (nonatomic, assign) TZAssetCellType type; 28 | @property (nonatomic, assign) BOOL allowPickingGif; 29 | @property (nonatomic, assign) BOOL allowPickingMultipleVideo; 30 | @property (nonatomic, copy) NSString *representedAssetIdentifier; 31 | @property (nonatomic, assign) int32_t imageRequestID; 32 | 33 | @property (nonatomic, strong) UIImage *photoSelImage; 34 | @property (nonatomic, strong) UIImage *photoDefImage; 35 | 36 | @property (nonatomic, assign) BOOL showSelectBtn; 37 | @property (assign, nonatomic) BOOL allowPreview; 38 | 39 | @property (nonatomic, copy) void (^assetCellDidSetModelBlock)(TZAssetCell *cell, UIImageView *imageView, UIImageView *selectImageView, UILabel *indexLabel, UIView *bottomView, UILabel *timeLength, UIImageView *videoImgView); 40 | @property (nonatomic, copy) void (^assetCellDidLayoutSubviewsBlock)(TZAssetCell *cell, UIImageView *imageView, UIImageView *selectImageView, UILabel *indexLabel, UIView *bottomView, UILabel *timeLength, UIImageView *videoImgView); 41 | 42 | - (void)selectPhotoButtonClick:(UIButton *)sender; 43 | @end 44 | 45 | 46 | @class TZAlbumModel; 47 | @interface TZAlbumCell : UITableViewCell 48 | @property (nonatomic, strong) TZAlbumModel *model; 49 | @property (weak, nonatomic) UIButton *selectedCountButton; 50 | 51 | @property (nonatomic, copy) void (^albumCellDidSetModelBlock)(TZAlbumCell *cell, UIImageView *posterImageView, UILabel *titleLabel); 52 | @property (nonatomic, copy) void (^albumCellDidLayoutSubviewsBlock)(TZAlbumCell *cell, UIImageView *posterImageView, UILabel *titleLabel); 53 | @end 54 | 55 | 56 | @interface TZAssetCameraCell : UICollectionViewCell 57 | @property (nonatomic, strong) UIImageView *imageView; 58 | @end 59 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZAssetModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // TZAssetModel.h 3 | // TZImagePickerController 4 | // 5 | // Created by 谭真 on 15/12/24. 6 | // Copyright © 2015年 谭真. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import 12 | 13 | typedef enum : NSUInteger { 14 | TZAssetModelMediaTypePhoto = 0, 15 | TZAssetModelMediaTypeLivePhoto, 16 | TZAssetModelMediaTypePhotoGif, 17 | TZAssetModelMediaTypeVideo, 18 | TZAssetModelMediaTypeAudio 19 | } TZAssetModelMediaType; 20 | 21 | @class PHAsset; 22 | @interface TZAssetModel : NSObject 23 | 24 | @property (nonatomic, strong) PHAsset *asset; 25 | @property (nonatomic, assign) BOOL isSelected; ///< The select status of a photo, default is No 26 | @property (nonatomic, assign) TZAssetModelMediaType type; 27 | @property (nonatomic, copy) NSString *timeLength; 28 | @property (nonatomic, assign) BOOL iCloudFailed; 29 | 30 | /// Init a photo dataModel With a PHAsset 31 | /// 用一个PHAsset实例,初始化一个照片模型 32 | + (instancetype)modelWithAsset:(PHAsset *)asset type:(TZAssetModelMediaType)type; 33 | + (instancetype)modelWithAsset:(PHAsset *)asset type:(TZAssetModelMediaType)type timeLength:(NSString *)timeLength; 34 | 35 | @end 36 | 37 | 38 | @class PHFetchResult; 39 | @interface TZAlbumModel : NSObject 40 | 41 | @property (nonatomic, strong) NSString *name; ///< The album name 42 | @property (nonatomic, assign) NSInteger count; ///< Count of photos the album contain 43 | @property (nonatomic, strong) PHFetchResult *result; 44 | @property (nonatomic, strong) PHAssetCollection *collection; 45 | @property (nonatomic, strong) PHFetchOptions *options; 46 | 47 | @property (nonatomic, strong) NSArray *models; 48 | @property (nonatomic, strong) NSArray *selectedModels; 49 | @property (nonatomic, assign) NSUInteger selectedCount; 50 | 51 | @property (nonatomic, assign) BOOL isCameraRoll; 52 | 53 | - (void)setResult:(PHFetchResult *)result needFetchAssets:(BOOL)needFetchAssets; 54 | - (void)refreshFetchResult; 55 | 56 | @end 57 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZAssetModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // TZAssetModel.m 3 | // TZImagePickerController 4 | // 5 | // Created by 谭真 on 15/12/24. 6 | // Copyright © 2015年 谭真. All rights reserved. 7 | // 8 | 9 | #import "TZAssetModel.h" 10 | #import "TZImageManager.h" 11 | 12 | @implementation TZAssetModel 13 | 14 | + (instancetype)modelWithAsset:(PHAsset *)asset type:(TZAssetModelMediaType)type{ 15 | TZAssetModel *model = [[TZAssetModel alloc] init]; 16 | model.asset = asset; 17 | model.isSelected = NO; 18 | model.type = type; 19 | return model; 20 | } 21 | 22 | + (instancetype)modelWithAsset:(PHAsset *)asset type:(TZAssetModelMediaType)type timeLength:(NSString *)timeLength { 23 | TZAssetModel *model = [self modelWithAsset:asset type:type]; 24 | model.timeLength = timeLength; 25 | return model; 26 | } 27 | 28 | @end 29 | 30 | 31 | 32 | @implementation TZAlbumModel 33 | 34 | - (void)setResult:(PHFetchResult *)result needFetchAssets:(BOOL)needFetchAssets { 35 | _result = result; 36 | if (needFetchAssets) { 37 | [[TZImageManager manager] getAssetsFromFetchResult:result completion:^(NSArray *models) { 38 | self->_models = models; 39 | if (self->_selectedModels) { 40 | [self checkSelectedModels]; 41 | } 42 | }]; 43 | } 44 | } 45 | 46 | - (void)refreshFetchResult { 47 | PHFetchResult *fetchResult = [PHAsset fetchAssetsInAssetCollection:self.collection options:self.options]; 48 | self.count = fetchResult.count; 49 | [self setResult:fetchResult]; 50 | } 51 | 52 | - (void)setSelectedModels:(NSArray *)selectedModels { 53 | _selectedModels = selectedModels; 54 | if (_models) { 55 | // [self checkSelectedModels]; 56 | } 57 | } 58 | 59 | - (void)checkSelectedModels { 60 | self.selectedCount = 0; 61 | NSMutableSet *selectedAssets = [NSMutableSet setWithCapacity:_selectedModels.count]; 62 | for (TZAssetModel *model in _selectedModels) { 63 | [selectedAssets addObject:model.asset]; 64 | } 65 | for (TZAssetModel *model in _models) { 66 | if ([selectedAssets containsObject:model.asset]) { 67 | self.selectedCount ++; 68 | } 69 | } 70 | } 71 | 72 | - (NSString *)name { 73 | if (_name) { 74 | return _name; 75 | } 76 | return @""; 77 | } 78 | 79 | @end 80 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZGifPhotoPreviewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TZGifPhotoPreviewController.h 3 | // TZImagePickerController 4 | // 5 | // Created by ttouch on 2016/12/13. 6 | // Copyright © 2016年 谭真. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class TZAssetModel; 12 | @interface TZGifPhotoPreviewController : UIViewController 13 | 14 | @property (nonatomic, strong) TZAssetModel *model; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImageCropManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // TZImageCropManager.h 3 | // TZImagePickerController 4 | // 5 | // Created by 谭真 on 2016/12/5. 6 | // Copyright © 2016年 谭真. All rights reserved. 7 | // 图片裁剪管理类 8 | 9 | #import 10 | #import 11 | 12 | @interface TZImageCropManager : NSObject 13 | 14 | /// 裁剪框背景的处理 15 | + (void)overlayClippingWithView:(UIView *)view cropRect:(CGRect)cropRect containerView:(UIView *)containerView needCircleCrop:(BOOL)needCircleCrop; 16 | 17 | /* 18 | 1.7.2 为了解决多位同学对于图片裁剪的需求,我这两天有空便在研究图片裁剪 19 | 幸好有tuyou的PhotoTweaks库做参考,裁剪的功能实现起来简单许多 20 | 该方法和其内部引用的方法基本来自于tuyou的PhotoTweaks库,我做了稍许删减和修改 21 | 感谢tuyou同学在github开源了优秀的裁剪库PhotoTweaks,表示感谢 22 | PhotoTweaks库的github链接:https://github.com/itouch2/PhotoTweaks 23 | */ 24 | /// 获得裁剪后的图片 25 | + (UIImage *)cropImageView:(UIImageView *)imageView toRect:(CGRect)rect zoomScale:(double)zoomScale containerView:(UIView *)containerView; 26 | 27 | /// 获取圆形图片 28 | + (UIImage *)circularClipImage:(UIImage *)image; 29 | 30 | @end 31 | 32 | 33 | /// 该分类的代码来自SDWebImage:https://github.com/rs/SDWebImage 34 | /// 为了防止冲突,我将分类名字和方法名字做了修改 35 | @interface UIImage (TZGif) 36 | 37 | + (UIImage *)sd_tz_animatedGIFWithData:(NSData *)data; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/MMVideoPreviewPlay@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/MMVideoPreviewPlay@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/MMVideoPreviewPlayHL@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/MMVideoPreviewPlayHL@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/VideoSendIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/VideoSendIcon@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/ar.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "阿拉伯语"; 2 | "OK" = "حسنا"; 3 | "Back" = "الى الخلف"; 4 | "Done" = "فعله"; 5 | "Edit" = "تعديل"; 6 | "Sorry" = "آسف"; 7 | "Cancel" = "إلغاء"; 8 | "Setting" = "ضبط"; 9 | "Photos" = "الصور"; 10 | "Videos" = "أشرطة فيديو"; 11 | "Preview" = "معاينة"; 12 | "Full image" = "الصورة كاملة"; 13 | "Processing..." = "معالجة..."; 14 | "No Photos or Videos" = "لا توجد صور أو مقاطع فيديو"; 15 | "Synchronizing photos from iCloud" = "مزامنة الصور من iCloud"; 16 | "iCloud sync failed" = "iCloud فشلت المزامنة"; 17 | "Can not use camera" = "لا يمكن استخدام الكاميرا"; 18 | "Can not choose both video and photo" = "لا يمكن اختيار كل من الفيديو والصور"; 19 | "Can not choose both photo and GIF" = "لا يمكن اختيار كل من الصور و GIF"; 20 | "Select the video when in multi state, we will handle the video as a photo" = "حدد مقطع الفيديو عندما يكون في حالة متعددة، وسنعمل على معالجة مقطع الفيديو كصورة"; 21 | "Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "إذا تعذّر الانتقال إلى صفحة "إعدادات الخصوصية"، فيرجى الانتقال إلى صفحة "الإعدادات" بنفسك، شكرًا لك"; 22 | "Select a maximum of %zd photos" = "حدد فقط ما يصل إلى %zd صورة"; 23 | "Select a minimum of %zd photos" = "الرجاء تحديد %zd صورة على الأقل"; 24 | "Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "السماح لـ %@ بالوصول إلى الألبوم في \"الإعدادات > الخصوصية > الصور\""; 25 | "Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "الرجاء السماح لـ %@ بالوصول إلى الكاميرا في \"الإعدادات > الخصوصية > الكاميرا\""; 26 | "Selected for %ld seconds" = "محدد لمدة %ld ثانية"; 27 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/bg.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "保加利亚语"; 2 | "OK" = "Добре"; 3 | "Back" = "обратно"; 4 | "Done" = "Свършен"; 5 | "Edit" = "редактиране"; 6 | "Sorry" = "съжалявам"; 7 | "Cancel" = "Отказ"; 8 | "Setting" = "обстановка"; 9 | "Photos" = "Снимки"; 10 | "Videos" = "Видео"; 11 | "Preview" = "предварителен преглед"; 12 | "Full image" = "Пълно изображение"; 13 | "Processing..." = "Обработка ..."; 14 | "No Photos or Videos" = "Няма снимки или видеоклипове"; 15 | "Synchronizing photos from iCloud" = "Синхронизиране на снимки от iCloud"; 16 | "iCloud sync failed" = "iCloud синхронизирането не бе успешно"; 17 | "Can not use camera" = "Не може да се използва камера"; 18 | "Can not choose both video and photo" = "Не можете да изберете видео и снимка"; 19 | "Can not choose both photo and GIF" = "Не може да се избере снимка и GIF"; 20 | "Selected for %ld seconds" = "Избрано за %ld секунди"; 21 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/cs-CZ.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "捷克语"; 2 | "OK" = "OK"; 3 | "Back" = "Zadní"; 4 | "Done" = "Hotovo"; 5 | "Edit" = "Upravit"; 6 | "Sorry" = "Promiňte"; 7 | "Cancel" = "zrušení"; 8 | "Setting" = "Nastavení"; 9 | "Photos" = "Fotky"; 10 | "Videos" = "Videa"; 11 | "Preview" = "Náhled"; 12 | "Full image" = "Celý obrázek"; 13 | "Processing..." = "Zpracovává se..."; 14 | "No Photos or Videos" = "Žádné fotky nebo videa"; 15 | "Synchronizing photos from iCloud" = "Synchronizace fotografií z iCloud"; 16 | "iCloud sync failed" = "iCloud synchronizace selhala"; 17 | "Can not use camera" = "Nelze použít fotoaparát"; 18 | "Can not choose both video and photo" = "Nelze vybrat video ani fotografii"; 19 | "Can not choose both photo and GIF" = "Nelze vybrat fotografie a GIF"; 20 | "Selected for %ld seconds" = "Vybráno na %ld sekund"; 21 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/de.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "德语"; 2 | "OK" = "OK"; 3 | "Back" = "Zurück"; 4 | "Done" = "Erledigt"; 5 | "Edit" = "Bearbeiten"; 6 | "Sorry" = "Es tut uns leid"; 7 | "Cancel" = "Stornieren"; 8 | "Setting" = "Rahmen"; 9 | "Photos" = "Fotos"; 10 | "Videos" = "Videos"; 11 | "Preview" = "Vorschau"; 12 | "Full image" = "Vollbild"; 13 | "Processing..." = "Wird bearbeitet..."; 14 | "No Photos or Videos" = "Keine Fotos oder Videos"; 15 | "Synchronizing photos from iCloud" = "Fotos aus iCloud synchronisieren"; 16 | "iCloud sync failed" = "iCloud Synchronisierung fehlgeschlagen"; 17 | "Can not use camera" = "Kann die Kamera nicht benutzen"; 18 | "Can not choose both video and photo" = "Video und Foto können nicht ausgewählt werden"; 19 | "Can not choose both photo and GIF" = "Foto und GIF können nicht ausgewählt werden"; 20 | "Select the video when in multi state, we will handle the video as a photo" = "Wenn Sie das Video im Multi-Status auswählen, wird es als Foto behandelt"; 21 | "Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "Sie können nicht zur Seite mit den Datenschutz-Einstellungen springen; bitte navigieren Sie selbst zur Einstellungsseite. Vielen Dank."; 22 | "Select a maximum of %zd photos" = "Wählen Sie maximal %zd Bilder aus"; 23 | "Select a minimum of %zd photos" = "Bitte wählen Sie mindestens %zd Fotos aus"; 24 | "Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "Erlauben Sie %@ den Zugriff auf Ihr Album unter: „Einstellungen > Datenschutz > Fotos“"; 25 | "Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "Erlauben Sie %@ den Zugriff auf Ihre Kamera unter: „Einstellungen > Datenschutz > Kamera“"; 26 | "Selected for %ld seconds" = "Ausgewählt für %ld Sekunden"; 27 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/el.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "希腊语"; 2 | "OK" = "Εντάξει"; 3 | "Back" = "Πίσω"; 4 | "Done" = "Εγινε"; 5 | "Edit" = "επεξεργασία"; 6 | "Sorry" = "Συγνώμη"; 7 | "Cancel" = "Ματαίωση"; 8 | "Setting" = "Σύνθεση"; 9 | "Photos" = "Φωτογραφίες"; 10 | "Videos" = "Βίντεο"; 11 | "Preview" = "Προεπισκόπηση"; 12 | "Full image" = "Πλήρης εικόνα"; 13 | "Processing..." = "Επεξεργασία..."; 14 | "No Photos or Videos" = "Δεν υπάρχουν φωτογραφίες ή βίντεο"; 15 | "Synchronizing photos from iCloud" = "Συγχρονισμός φωτογραφιών από το iCloud"; 16 | "iCloud sync failed" = "iCloud Ο συγχρονισμός απέτυχε"; 17 | "Can not use camera" = "Δεν είναι δυνατή η χρήση της κάμερας"; 18 | "Can not choose both video and photo" = "Δεν είναι δυνατή η επιλογή του βίντεο και της φωτογραφίας"; 19 | "Can not choose both photo and GIF" = "Δεν είναι δυνατή η επιλογή φωτογραφίας και GIF"; 20 | "Selected for %ld seconds" = "Selected for %ld seconds"; 21 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/es.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "西班牙语"; 2 | "OK" = "DE ACUERDO"; 3 | "Back" = "Espalda"; 4 | "Done" = "Hecho"; 5 | "Edit" = "επεξεργασία"; 6 | "Sorry" = "Lo siento"; 7 | "Cancel" = "Cancelar"; 8 | "Setting" = "Ajuste"; 9 | "Photos" = "Las fotos"; 10 | "Videos" = "Videos"; 11 | "Preview" = "Avance"; 12 | "Full image" = "Imagen completa"; 13 | "Processing..." = "Tratamiento..."; 14 | "No Photos or Videos" = "No hay fotos o videos"; 15 | "Synchronizing photos from iCloud" = "Sincronizando fotos desde iCloud"; 16 | "iCloud sync failed" = "la sincronización falló"; 17 | "Can not use camera" = "No puedo usar la camara"; 18 | "Can not choose both video and photo" = "No se puede elegir tanto el video como la foto."; 19 | "Can not choose both photo and GIF" = "No se puede elegir tanto foto como GIF"; 20 | "Select the video when in multi state, we will handle the video as a photo" = "Seleccione el vídeo en estado múltiple, trataremos el vídeo como una fotografía"; 21 | "Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "No se puede saltar a la página de ajustes de privacidad, vaya a la página de ajustes manualmente, muchas gracias"; 22 | "Select a maximum of %zd photos" = "Seleccione solamente hasta %zd imágenes"; 23 | "Select a minimum of %zd photos" = "Seleccione al menos %zd fotografías"; 24 | "Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "Permita que %@ acceda a su galería en \"Ajustes > Privacidad > Fotografías\""; 25 | "Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "Permita que %@ acceda a su cámara en \"Ajustes > Privacidad > Cámara\""; 26 | "Selected for %ld seconds" = "Seleccionado para %ld segundos"; 27 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/fr.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "法语"; 2 | "OK" = "D'accord"; 3 | "Back" = "Retour"; 4 | "Done" = "Terminé"; 5 | "Edit" = "Éditer"; 6 | "Sorry" = "Pardon"; 7 | "Cancel" = "Annuler"; 8 | "Setting" = "Réglage"; 9 | "Photos" = "Photos"; 10 | "Videos" = "Vidéos"; 11 | "Preview" = "Aperçu"; 12 | "Full image" = "Image complète"; 13 | "Processing..." = "En traitement..."; 14 | "No Photos or Videos" = "Aucune photo ou vidéo"; 15 | "Synchronizing photos from iCloud" = "Synchroniser des photos depuis iCloud"; 16 | "iCloud sync failed" = "iCloud échec de la synchronisation"; 17 | "Can not use camera" = "Impossible d'utiliser la caméra"; 18 | "Can not choose both video and photo" = "Impossible de choisir à la fois la vidéo et la photo"; 19 | "Can not choose both photo and GIF" = "Impossible de choisir à la fois photo et GIF"; 20 | "Select the video when in multi state, we will handle the video as a photo" = "Sélectionnez la vidéo lorsqu’elle est en état multiple, nous la traiterons comme une photo"; 21 | "Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "Impossible d'ouvrir la page des paramètres de confidentialité, veuillez accéder vous-même à la page des paramètres, merci"; 22 | "Select a maximum of %zd photos" = "Vous pouvez uniquement sélectionner un maximum de %zd images"; 23 | "Select a minimum of %zd photos" = "Veuillez sélectionner un minimum de %zd photos"; 24 | "Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "Autorisez %@ à accéder à votre album dans « Paramètres > Confidentialité > Photos »"; 25 | "Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "Autorisez %@ à accéder à votre appareil photo dans « Paramètres > Confidentialité > Appareil photo »"; 26 | "Selected for %ld seconds" = "Sélectionné pendant %ld secondes"; 27 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/he.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "希伯来语"; 2 | "OK" = "בסדר"; 3 | "Back" = "חזור"; 4 | "Done" = "בוצע"; 5 | "Edit" = "לַעֲרוֹך" 6 | "Sorry" = "מצטער"; 7 | "Cancel" = "בטל"; 8 | "Setting" = "הגדרה"; 9 | "Photos" = "תמונות"; 10 | "Videos" = "סרטונים"; 11 | "Preview" = "תצוגה מקדימה"; 12 | "Full image" = "תמונה מלאה"; 13 | "Processing..." = "מעבד..."; 14 | "No Photos or Videos" = "אין תמונות או סרטונים"; 15 | "Synchronizing photos from iCloud" = "סנכרון תמונות מ - iCloud"; 16 | "iCloud sync failed" = "iCloud הסנכרון נכשל"; 17 | "Can not use camera" = "לא ניתן להשתמש במצלמה"; 18 | "Can not choose both video and photo" = "לא ניתן לבחור הן בסרטון והן בתמונה"; 19 | "Can not choose both photo and GIF" = "לא ניתן לבחור גם תמונה וגם קובץ GIF"; 20 | "Selected for %ld seconds" = "נבחר למשך %ld שניות"; 21 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/iCloudError@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/iCloudError@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/it.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "意大利语"; 2 | "OK" = "ok"; 3 | "Back" = "Indietro"; 4 | "Done" = "Fatto"; 5 | "Edit" = "modificare"; 6 | "Sorry" = "scusate"; 7 | "Cancel" = "Annulla"; 8 | "Setting" = "Ambientazione"; 9 | "Photos" = "Fotografie"; 10 | "Videos" = "video"; 11 | "Preview" = "Anteprima"; 12 | "Full image" = "Immagine completa"; 13 | "Processing..." = "In lavorazione..."; 14 | "No Photos or Videos" = "Nessuna foto o video"; 15 | "Synchronizing photos from iCloud" = "Sincronizzazione delle foto da iCloud"; 16 | "iCloud sync failed" = "iCloud sincronizzazione non riuscita"; 17 | "Can not use camera" = "Non è possibile utilizzare la fotocamera"; 18 | "Can not choose both video and photo" = "Non è possibile scegliere sia video che foto"; 19 | "Can not choose both photo and GIF" = "Non è possibile scegliere sia foto che GIF"; 20 | "Selected for %ld seconds" = "Selezionato per %ld secondi"; 21 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/ja.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "日语"; 2 | "OK" = "OK"; 3 | "Back" = "バック"; 4 | "Done" = "完了"; 5 | "Edit" = "編集する"; 6 | "Sorry" = "ごめんなさい"; 7 | "Cancel" = "キャンセル"; 8 | "Setting" = "設定"; 9 | "Photos" = "写真"; 10 | "Videos" = "動画"; 11 | "Preview" = "プレビュー"; 12 | "Full image" = "フルイメージ"; 13 | "Processing..." = "処理..."; 14 | "No Photos or Videos" = "写真やビデオはありません"; 15 | "Synchronizing photos from iCloud" = "iCloudから写真を同期する"; 16 | "iCloud sync failed" = "iCloud同期に失敗しました"; 17 | "Can not use camera" = "カメラが使えない"; 18 | "Can not choose both video and photo" = "ビデオと写真の両方を選択することはできません"; 19 | "Can not choose both photo and GIF" = "写真とGIFの両方を選択することはできません"; 20 | "Select the video when in multi state, we will handle the video as a photo" = "多肢選択の状態で、ビデオを選択すると、ビデオをデフォルトに画像として送信します。"; 21 | "Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "プライバシー設定画面にジャンプできません。手動で設定画面を表示してください。"; 22 | "Select a maximum of %zd photos" = "写真は多くとも%zd 枚選択できます。"; 23 | "Select a minimum of %zd photos" = "少なくとも %zd 枚の写真を選択してください。"; 24 | "Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "iPhoneの「設定-プライバシー-写真」のオプションで、r%@の携帯電話のアルバムへのアクセス権限を許可してください。"; 25 | "Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "iPhoneの「設定-プライバシー-カメラ」で、%@のカメラへのアクセス権限を許可してください。"; 26 | "Selected for %ld seconds" = "%ld 秒間選択されました"; 27 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/ko-KP.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "朝鲜语"; 2 | "OK" = "그래"; 3 | "Back" = "뒤로"; 4 | "Done" = "완료"; 5 | "Edit" = "편집하다"; 6 | "Sorry" = "미안해요"; 7 | "Cancel" = "취소"; 8 | "Setting" = "설정"; 9 | "Photos" = "사진"; 10 | "Videos" = "동영상"; 11 | "Preview" = "미리 보기"; 12 | "Full image" = "전체 이미지"; 13 | "Processing..." = "처리..."; 14 | "No Photos or Videos" = "아무 사진이 나 동영상"; 15 | "Synchronizing photos from iCloud" = "ICloud에서 사진을 동기화"; 16 | "iCloud sync failed" = "iCloud동기화 실패"; 17 | "Can not use camera" = "카메라를 사용할 수 없습니다."; 18 | "Can not choose both video and photo" = "비디오와 사진 둘 다를 선택할 수 없습니다."; 19 | "Can not choose both photo and GIF" = "사진 및 GIF를 선택할 수 없습니다."; 20 | "Select the video when in multi state, we will handle the video as a photo" = "다중 선택 모드에서 비디오를 선택하면 비디오를 사진으로 처리합니다."; 21 | "Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "개인 정보 보호 설정 페이지로 바로 이동할 수 없습니다. 설정 페이지로 직접 이동해 주세요. 감사합니다."; 22 | "Select a maximum of %zd photos" = "최대 %zd장의 이미지만 선택할 수 있습니다."; 23 | "Select a minimum of %zd photos" = "최소 %zd장의 사진을 선택해 주세요."; 24 | "Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "\"설정 > 개인 정보 보호 > 사진\"에서 %@이(가) 앨범에 접근할 수 있도록 허용하세요."; 25 | "Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "\"설정 > 개인 정보 보호 > 카메라\"에서 %@이(가) 카메라에 접근할 수 있도록 허용하세요."; 26 | "Selected for %ld seconds" = "%ld 초 동안 선택됨"; 27 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/ko.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "韩语"; 2 | "OK" = "승인"; 3 | "Back" = "뒤로"; 4 | "Done" = "끝난"; 5 | "Edit" = "편집하다"; 6 | "Sorry" = "죄송합니다"; 7 | "Cancel" = "취소"; 8 | "Setting" = "환경"; 9 | "Photos" = "사진들"; 10 | "Videos" = "비디오"; 11 | "Preview" = "시사"; 12 | "Full image" = "전체 이미지"; 13 | "Processing..." = "처리 중 ..."; 14 | "No Photos or Videos" = "사진이나 동영상 없음"; 15 | "Synchronizing photos from iCloud" = "iCloud에서 사진 동기화"; 16 | "iCloud sync failed" = "iCloud동기화 실패"; 17 | "Can not use camera" = "카메라를 사용할 수 없습니다."; 18 | "Can not choose both video and photo" = "동영상과 사진을 모두 선택할 수 없습니다."; 19 | "Can not choose both photo and GIF" = "사진과 GIF를 모두 선택할 수 없습니다."; 20 | "Selected for %ld seconds" = "%ld 초 동안 선택됨"; 21 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/navi_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/navi_back@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/nl.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "荷兰语"; 2 | "OK" = "OK"; 3 | "Back" = "Terug"; 4 | "Done" = "Gedaan"; 5 | "Edit" = "Bewerk"; 6 | "Sorry" = "Sorry"; 7 | "Cancel" = "annuleren"; 8 | "Setting" = "omgeving"; 9 | "Photos" = "foto's"; 10 | "Videos" = "Videos"; 11 | "Preview" = "Voorbeeld"; 12 | "Full image" = "Volledig beeld"; 13 | "Processing..." = "Verwerken..."; 14 | "No Photos or Videos" = "Geen foto's of video's"; 15 | "Synchronizing photos from iCloud" = "Foto's synchroniseren vanuit iCloud"; 16 | "iCloud sync failed" = "iCloud synchronisatie is mislukt"; 17 | "Can not use camera" = "Kan de camera niet gebruiken"; 18 | "Can not choose both video and photo" = "Kan niet zowel video als foto kiezen"; 19 | "Can not choose both photo and GIF" = "Kan niet zowel foto als GIF kiezen"; 20 | "Selected for %ld seconds" = "Geselecteerd voor %ld seconden"; 21 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/photo_def_photoPickerVc@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/photo_def_photoPickerVc@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/photo_def_previewVc@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/photo_def_previewVc@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/photo_number_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/photo_number_icon@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/photo_original_def@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/photo_original_def@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/photo_original_sel@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/photo_original_sel@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/photo_sel_photoPickerVc@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/photo_sel_photoPickerVc@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/photo_sel_previewVc@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/photo_sel_previewVc@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/pl.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "波兰语"; 2 | "OK" = "dobrze"; 3 | "Back" = "Z powrotem"; 4 | "Done" = "Gotowe"; 5 | "Edit" = "edytować"; 6 | "Sorry" = "Przepraszam"; 7 | "Cancel" = "Anuluj"; 8 | "Setting" = "Oprawa"; 9 | "Photos" = "Zdjęcia"; 10 | "Videos" = "Filmy"; 11 | "Preview" = "Zapowiedź"; 12 | "Full image" = "Pełny obraz"; 13 | "Processing..." = "Przetwarzanie..."; 14 | "No Photos or Videos" = "Brak zdjęć lub filmów"; 15 | "Synchronizing photos from iCloud" = "Synchronizowanie zdjęć z iCloud"; 16 | "iCloud sync failed" = "iCloud synchronizacja nie powiodła się"; 17 | "Can not use camera" = "Nie można używać aparatu"; 18 | "Can not choose both video and photo" = "Nie można wybrać zarówno wideo,jak i zdjęcia"; 19 | "Can not choose both photo and GIF" = "Nie można wybrać zarówno zdjęcia,jak i GIF"; 20 | "Selected for %ld seconds" = "Wybrany przez %ld sekund"; 21 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/preview_number_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/preview_number_icon@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/preview_original_def@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/preview_original_def@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/pt.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "葡萄牙语"; 2 | "OK" = "Está bem"; 3 | "Back" = "De volta"; 4 | "Done" = "Feito"; 5 | "Edit" = "editar"; 6 | "Sorry" = "Desculpa"; 7 | "Cancel" = "Cancelar"; 8 | "Setting" = "Configuração"; 9 | "Photos" = "Fotos"; 10 | "Videos" = "Vídeos"; 11 | "Preview" = "Visualizar"; 12 | "Full image" = "Imagem Completa"; 13 | "Processing..." = "Em processamento..."; 14 | "No Photos or Videos" = "Sem fotos ou vídeos"; 15 | "Synchronizing photos from iCloud" = "Sincronizando fotos do iCloud"; 16 | "iCloud sync failed" = "iCloud falha na sincronização"; 17 | "Can not use camera" = "Não pode usar a câmera"; 18 | "Can not choose both video and photo" = "Não é possível escolher vídeo e foto"; 19 | "Can not choose both photo and GIF" = "Não é possível escolher foto e GIF"; 20 | "Select the video when in multi state, we will handle the video as a photo" = "Se estiver em estado múltiplo, selecione a opção vídeo; iremos utilizar o vídeo como uma foto"; 21 | "Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "Não é possível avançar para a página de definições de privacidade, aceda à página de definições você mesmo, obrigado"; 22 | "Select a maximum of %zd photos" = "Selecione apenas %zd imagens,no máximo"; 23 | "Select a minimum of %zd photos" = "Selecione %zd fotos,no mínimo"; 24 | "Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "Permita a %@ aceder ao seu álbum em “Definições > Privacidade > Fotos”"; 25 | "Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "Permita a %@ aceder à sua câmara em “Definições > Privacidade > Câmara”"; 26 | "Selected for %ld seconds" = "Selecionado por %ld segundos"; 27 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/ro.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "罗马尼亚语"; 2 | "OK" = "O.K"; 3 | "Back" = "Înapoi"; 4 | "Done" = "Terminat"; 5 | "Edit" = "Editați | ×"; 6 | "Sorry" = "scuze"; 7 | "Cancel" = "Anulare"; 8 | "Setting" = "reglaj"; 9 | "Photos" = "Fotografii"; 10 | "Videos" = "Videoclipuri"; 11 | "Preview" = "previzualizare"; 12 | "Full image" = "Imagine completă"; 13 | "Processing..." = "Prelucrare..."; 14 | "No Photos or Videos" = "Nu există fotografii sau videoclipuri"; 15 | "Synchronizing photos from iCloud" = "Sincronizarea fotografiilor cu iCloud"; 16 | "iCloud sync failed" = "iCloud sincronizarea a eșuat"; 17 | "Can not use camera" = "Nu pot folosi camera"; 18 | "Can not choose both video and photo" = "Nu puteți alege atât videoclipul,cât și fotografia"; 19 | "Can not choose both photo and GIF" = "Nu puteți alege atât fotografia,cât și GIF"; 20 | "Selected for %ld seconds" = "Selectat pentru %ld secunde"; 21 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/ru.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "俄语"; 2 | "OK" = "Хорошо"; 3 | "Back" = "назад"; 4 | "Done" = "Готово"; 5 | "Edit" = "редактировать"; 6 | "Sorry" = "сожалею"; 7 | "Cancel" = "отменить"; 8 | "Setting" = "настройка"; 9 | "Photos" = "Фото"; 10 | "Videos" = "Видео"; 11 | "Preview" = "предварительный просмотр"; 12 | "Full image" = "Полное изображение"; 13 | "Processing..." = "Обработка ..."; 14 | "No Photos or Videos" = "Нет фото или видео"; 15 | "Synchronizing photos from iCloud" = "Синхронизация фотографий из iCloud"; 16 | "iCloud sync failed" = "iCloud сбой синхронизации"; 17 | "Can not use camera" = "Не могу использовать камеру"; 18 | "Can not choose both video and photo" = "Не могу выбрать как видео,так и фото"; 19 | "Can not choose both photo and GIF" = "Не могу выбрать фото и GIF"; 20 | "Select the video when in multi state, we will handle the video as a photo" = "В случае выбора видео при нахождении в мультирежиме видео будет обработано как фотография"; 21 | "Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "Не удается перейти на страницу настроек конфиденциальности. Перейдите на эту страницу самостоятельно"; 22 | "Select a maximum of %zd photos" = "Вы можете выбрать до %zd изображений"; 23 | "Select a minimum of %zd photos" = "Вы можете выбрать не менее %zd изображений"; 24 | "Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "Разрешите доступ %@ к вашему альбому,перейдя в Настройки > Конфиденциальность > Фото"; 25 | "Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "Разрешите доступ %@ к камере вашего устройства,перейдя в Настройки > Конфиденциальность > Камера"; 26 | "Selected for %ld seconds" = "Выбрано для %ld секунд"; 27 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/sk.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "斯洛伐克语"; 2 | "OK" = "OK"; 3 | "Back" = "späť"; 4 | "Done" = "hotový"; 5 | "Edit" = "upraviť"; 6 | "Sorry" = "Prepáč"; 7 | "Cancel" = "Zrušiť"; 8 | "Setting" = "nastavenie"; 9 | "Photos" = "fotografie"; 10 | "Videos" = "videá"; 11 | "Preview" = "Náhľad"; 12 | "Full image" = "Celý obrázok"; 13 | "Processing..." = "Spracovanie ..."; 14 | "No Photos or Videos" = "Žiadne fotografie alebo videá"; 15 | "Synchronizing photos from iCloud" = "Synchronizácia fotografií z iCloud"; 16 | "iCloud sync failed" = "iCloud synchronizácia zlyhala"; 17 | "Can not use camera" = "Fotoaparát nie je možné používať"; 18 | "Can not choose both video and photo" = "Nie je možné vybrať video aj fotografiu"; 19 | "Can not choose both photo and GIF" = "Nie je možné vybrať fotografie a obrázky GIF"; 20 | "Selected for %ld seconds" = "Vybraté na %ld sekundy"; 21 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/sv.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "瑞典语"; 2 | "OK" = "ok"; 3 | "Back" = "Tillbaka"; 4 | "Done" = "Gjort"; 5 | "Edit" = "redigera"; 6 | "Sorry" = "Förlåt"; 7 | "Cancel" = "Annullera"; 8 | "Setting" = "Miljö"; 9 | "Photos" = "foton"; 10 | "Videos" = "videoklipp"; 11 | "Preview" = "Förhandsvisning"; 12 | "Full image" = "Fullbild"; 13 | "Processing..." = "Bearbetning ..."; 14 | "No Photos or Videos" = "Inga foton eller videor"; 15 | "Synchronizing photos from iCloud" = "Synkronisera foton från iCloud"; 16 | "iCloud sync failed" = "iCloud synkroniseringen misslyckades"; 17 | "Can not use camera" = "Kan inte använda kamera"; 18 | "Can not choose both video and photo" = "Kan inte välja både video och foto"; 19 | "Can not choose both photo and GIF" = "Kan inte välja både foto och GIF"; 20 | "Selected for %ld seconds" = "Vald för %ld sekunder"; 21 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/takePicture80@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/takePicture80@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/takePicture@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/takePicture@2x.png -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/th.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "泰语"; 2 | "OK" = "ตกลง"; 3 | "Back" = "กลับ"; 4 | "Done" = "เสร็จสิ้น"; 5 | "Edit" = "แก้ไข"; 6 | "Sorry" = "ขอโทษ"; 7 | "Cancel" = "ยกเลิก"; 8 | "Setting" = "การตั้งค่า"; 9 | "Photos" = "ภาพถ่าย"; 10 | "Videos" = "วิดีโอ"; 11 | "Preview" = "ดูตัวอย่าง"; 12 | "Full image" = "ภาพเต็ม"; 13 | "Processing..." = "กำลังประมวลผล ..."; 14 | "No Photos or Videos" = "ไม่มีรูปภาพหรือวิดีโอ"; 15 | "Synchronizing photos from iCloud" = "การซิงโครไนซ์ภาพถ่ายจาก iCloud"; 16 | "iCloud sync failed" = "iCloud การซิงค์ล้มเหลว"; 17 | "Can not use camera" = "ไม่สามารถใช้กล้องถ่ายรูป"; 18 | "Can not choose both video and photo" = "ไม่สามารถเลือกได้ทั้งวิดีโอและภาพถ่าย"; 19 | "Can not choose both photo and GIF" = "ไม่สามารถเลือกได้ทั้งภาพถ่ายและ GIF"; 20 | "Selected for %ld seconds" = "เลือกไว้เป็นเวลา %ld วินาที"; 21 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/tr.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "土耳其语"; 2 | "OK" = "tamam"; 3 | "Back" = "Geri"; 4 | "Done" = "tamam"; 5 | "Edit" = "Düzenle"; 6 | "Sorry" = "Afedersiniz"; 7 | "Cancel" = "İptal etmek"; 8 | "Setting" = "Ayar"; 9 | "Photos" = "Fotoğraflar"; 10 | "Videos" = "Videolar"; 11 | "Preview" = "Ön izleme"; 12 | "Full image" = "Tam görüntü"; 13 | "Processing..." = "İşleme..."; 14 | "No Photos or Videos" = "Fotoğraf veya Video Yok"; 15 | "Synchronizing photos from iCloud" = "Fotoğrafları iCloud'dan senkronize etme"; 16 | "iCloud sync failed" = "iCloud senkronizasyon başarısız oldu"; 17 | "Can not use camera" = "Kamera kullanılamaz"; 18 | "Can not choose both video and photo" = "Hem video hem de fotoğraf seçilemiyor"; 19 | "Can not choose both photo and GIF" = "Hem fotoğraf hem de GIF seçilemiyor"; 20 | "Selected for %ld seconds" = "%ld saniye için seçildi"; 21 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/uk.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "乌克兰语"; 2 | "OK" = "в порядку"; 3 | "Back" = "Назад"; 4 | "Done" = "Виконано"; 5 | "Edit" = "редагувати"; 6 | "Sorry" = "Вибачте"; 7 | "Cancel" = "Скасувати"; 8 | "Setting" = "Налаштування"; 9 | "Photos" = "Фотографії"; 10 | "Videos" = "Відео"; 11 | "Preview" = "Попередній перегляд"; 12 | "Full image" = "Повне зображення"; 13 | "Processing..." = "Обробка ..."; 14 | "No Photos or Videos" = "Немає фотографій або відео"; 15 | "Synchronizing photos from iCloud" = "Синхронізація фотографій з iCloud"; 16 | "iCloud sync failed" = "iCloud помилка синхронізації"; 17 | "Can not use camera" = "Не можна використовувати камеру"; 18 | "Can not choose both video and photo" = "Неможливо вибрати як відео,так і фото"; 19 | "Can not choose both photo and GIF" = "Неможливо вибрати як фото,так і GIF"; 20 | "Selected for %ld seconds" = "Đã chọn cho %ld giây"; 21 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/vi.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "KEY" = "越南语"; 2 | "OK" = "Xác nhận"; 3 | "Back" = "Quay lại"; 4 | "Done" = "Hoàn thành"; 5 | "Edit" = "biên tập"; 6 | "Sorry" = "Xin lỗi"; 7 | "Cancel" = "Hủy"; 8 | "Setting" = "Cài đặt"; 9 | "Photos" = "Hình"; 10 | "Videos" = "Clip"; 11 | "Preview" = "Xem trước"; 12 | "Full image" = "Hình gốc"; 13 | "Processing..." = "Đang xử lý..."; 14 | "No Photos or Videos" = "Không có ảnh hoặc video"; 15 | "Can not use camera" = "Máy chụp hình không khả dụng"; 16 | "Synchronizing photos from iCloud" = "Đang đồng bộ hình ảnh từ ICloud"; 17 | "iCloud sync failed" = "iCloud đồng bộ hóa không thành công"; 18 | "Can not choose both video and photo" = "Trong lúc chọn hình ảnh không cùng lúc chọn video"; 19 | "Can not choose both photo and GIF" = "Trong lúc chọn hình ảnh không cùng lúc chọn hình GIF"; 20 | "Select the video when in multi state, we will handle the video as a photo" = "Chọn hình ảnh cùng video, video sẽ bị mặc nhận thành hình ảnh và gửi đi."; 21 | "Can not jump to the privacy settings page, please go to the settings page by self, thank you" = "Không thể chuyển tự động qua trang cài đặt riêng tư, bạn hãy thoát ra cà điều chỉnh lại, cám ơn bạn."; 22 | 23 | "Select a maximum of %zd photos" = "Bạn chỉ được chọn nhiều nhất %zd tấm hình"; 24 | "Select a minimum of %zd photos" = "Chọn ít nhất %zd tấm hình"; 25 | "Allow %@ to access your album in \"Settings -> Privacy -> Photos\"" = "Vui lòng tại mục iPhone \" Cài đặt – quyền riêng tư - Ảnh\" mở quyền cho phép %@ truy cập ảnh."; 26 | "Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\"" = "Vui lòng tại mục iPhone \" Cài đặt – quyền riêng tư - Ảnh\" mở quyền cho phép %@ truy cập máy ảnh"; 27 | "Selected for %ld seconds" = "Đã chọn cho %ld giây"; 28 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/zh-Hans.lproj/Localizable.strings -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/zh-Hant.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImagePickerController.bundle/zh-Hant.lproj/Localizable.strings -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImageRequestOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // TZImageRequestOperation.h 3 | // TZImagePickerControllerFramework 4 | // 5 | // Created by 谭真 on 2018/12/20. 6 | // Copyright © 2018 谭真. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface TZImageRequestOperation : NSOperation 15 | 16 | typedef void(^TZImageRequestCompletedBlock)(UIImage *photo, NSDictionary *info, BOOL isDegraded); 17 | typedef void(^TZImageRequestProgressBlock)(double progress, NSError *error, BOOL *stop, NSDictionary *info); 18 | 19 | @property (nonatomic, copy, nullable) TZImageRequestCompletedBlock completedBlock; 20 | @property (nonatomic, copy, nullable) TZImageRequestProgressBlock progressBlock; 21 | @property (nonatomic, strong, nullable) PHAsset *asset; 22 | 23 | @property (assign, nonatomic, getter = isExecuting) BOOL executing; 24 | @property (assign, nonatomic, getter = isFinished) BOOL finished; 25 | 26 | - (instancetype)initWithAsset:(PHAsset *)asset completion:(TZImageRequestCompletedBlock)completionBlock progressHandler:(TZImageRequestProgressBlock)progressHandler; 27 | - (void)done; 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZImageRequestOperation.m: -------------------------------------------------------------------------------- 1 | // 2 | // TZImageRequestOperation.m 3 | // TZImagePickerControllerFramework 4 | // 5 | // Created by 谭真 on 2018/12/20. 6 | // Copyright © 2018 谭真. All rights reserved. 7 | // 8 | 9 | #import "TZImageRequestOperation.h" 10 | #import "TZImageManager.h" 11 | 12 | @implementation TZImageRequestOperation 13 | 14 | @synthesize executing = _executing; 15 | @synthesize finished = _finished; 16 | 17 | - (instancetype)initWithAsset:(PHAsset *)asset completion:(TZImageRequestCompletedBlock)completionBlock progressHandler:(TZImageRequestProgressBlock)progressHandler { 18 | self = [super init]; 19 | self.asset = asset; 20 | self.completedBlock = completionBlock; 21 | self.progressBlock = progressHandler; 22 | _executing = NO; 23 | _finished = NO; 24 | return self; 25 | } 26 | 27 | - (void)start { 28 | self.executing = YES; 29 | [[TZImageManager manager] getPhotoWithAsset:self.asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) { 30 | dispatch_async(dispatch_get_main_queue(), ^{ 31 | if (!isDegraded) { 32 | if (self.completedBlock) { 33 | self.completedBlock(photo, info, isDegraded); 34 | } 35 | dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 36 | [self done]; 37 | }); 38 | } 39 | }); 40 | } progressHandler:^(double progress, NSError *error, BOOL *stop, NSDictionary *info) { 41 | dispatch_async(dispatch_get_main_queue(), ^{ 42 | if (self.progressBlock) { 43 | self.progressBlock(progress, error, stop, info); 44 | } 45 | }); 46 | } networkAccessAllowed:YES]; 47 | } 48 | 49 | - (void)done { 50 | self.finished = YES; 51 | self.executing = NO; 52 | [self reset]; 53 | } 54 | 55 | - (void)reset { 56 | self.asset = nil; 57 | self.completedBlock = nil; 58 | self.progressBlock = nil; 59 | } 60 | 61 | - (void)setFinished:(BOOL)finished { 62 | [self willChangeValueForKey:@"isFinished"]; 63 | _finished = finished; 64 | [self didChangeValueForKey:@"isFinished"]; 65 | } 66 | 67 | - (void)setExecuting:(BOOL)executing { 68 | [self willChangeValueForKey:@"isExecuting"]; 69 | _executing = executing; 70 | [self didChangeValueForKey:@"isExecuting"]; 71 | } 72 | 73 | - (BOOL)isAsynchronous { 74 | return YES; 75 | } 76 | 77 | @end 78 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZLocationManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // TZLocationManager.h 3 | // TZImagePickerController 4 | // 5 | // Created by 谭真 on 2017/06/03. 6 | // Copyright © 2017年 谭真. All rights reserved. 7 | // 定位管理类 8 | 9 | 10 | #import 11 | #import 12 | 13 | @interface TZLocationManager : NSObject 14 | 15 | + (instancetype)manager NS_SWIFT_NAME(default()); 16 | 17 | /// 开始定位 18 | - (void)startLocation; 19 | - (void)startLocationWithSuccessBlock:(void (^)(NSArray *))successBlock failureBlock:(void (^)(NSError *error))failureBlock; 20 | - (void)startLocationWithGeocoderBlock:(void (^)(NSArray *geocoderArray))geocoderBlock; 21 | - (void)startLocationWithSuccessBlock:(void (^)(NSArray *))successBlock failureBlock:(void (^)(NSError *error))failureBlock geocoderBlock:(void (^)(NSArray *geocoderArray))geocoderBlock; 22 | 23 | /// 结束定位 24 | - (void)stopUpdatingLocation; 25 | 26 | @end 27 | 28 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZLocationManager.m: -------------------------------------------------------------------------------- 1 | // 2 | // TZLocationManager.m 3 | // TZImagePickerController 4 | // 5 | // Created by 谭真 on 2017/06/03. 6 | // Copyright © 2017年 谭真. All rights reserved. 7 | // 定位管理类 8 | 9 | #import "TZLocationManager.h" 10 | #import "TZImagePickerController.h" 11 | 12 | @interface TZLocationManager () 13 | @property (nonatomic, strong) CLLocationManager *locationManager; 14 | /// 定位成功的回调block 15 | @property (nonatomic, copy) void (^successBlock)(NSArray *); 16 | /// 编码成功的回调block 17 | @property (nonatomic, copy) void (^geocodeBlock)(NSArray *geocodeArray); 18 | /// 定位失败的回调block 19 | @property (nonatomic, copy) void (^failureBlock)(NSError *error); 20 | @end 21 | 22 | @implementation TZLocationManager 23 | 24 | + (instancetype)manager { 25 | static TZLocationManager *manager; 26 | static dispatch_once_t onceToken; 27 | dispatch_once(&onceToken, ^{ 28 | manager = [[self alloc] init]; 29 | manager.locationManager = [[CLLocationManager alloc] init]; 30 | manager.locationManager.delegate = manager; 31 | [manager.locationManager requestWhenInUseAuthorization]; 32 | }); 33 | return manager; 34 | } 35 | 36 | - (void)startLocation { 37 | [self startLocationWithSuccessBlock:nil failureBlock:nil geocoderBlock:nil]; 38 | } 39 | 40 | - (void)startLocationWithSuccessBlock:(void (^)(NSArray *))successBlock failureBlock:(void (^)(NSError *error))failureBlock { 41 | [self startLocationWithSuccessBlock:successBlock failureBlock:failureBlock geocoderBlock:nil]; 42 | } 43 | 44 | - (void)startLocationWithGeocoderBlock:(void (^)(NSArray *geocoderArray))geocoderBlock { 45 | [self startLocationWithSuccessBlock:nil failureBlock:nil geocoderBlock:geocoderBlock]; 46 | } 47 | 48 | - (void)startLocationWithSuccessBlock:(void (^)(NSArray *))successBlock failureBlock:(void (^)(NSError *error))failureBlock geocoderBlock:(void (^)(NSArray *geocoderArray))geocoderBlock { 49 | [self.locationManager startUpdatingLocation]; 50 | _successBlock = successBlock; 51 | _geocodeBlock = geocoderBlock; 52 | _failureBlock = failureBlock; 53 | } 54 | 55 | - (void)stopUpdatingLocation { 56 | [self.locationManager stopUpdatingLocation]; 57 | } 58 | 59 | #pragma mark - CLLocationManagerDelegate 60 | 61 | /// 地理位置发生改变时触发 62 | - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { 63 | [manager stopUpdatingLocation]; 64 | 65 | if (_successBlock) { 66 | _successBlock(locations); 67 | } 68 | 69 | if (_geocodeBlock && locations.count) { 70 | CLGeocoder *geocoder = [[CLGeocoder alloc] init]; 71 | [geocoder reverseGeocodeLocation:[locations firstObject] completionHandler:^(NSArray *array, NSError *error) { 72 | self->_geocodeBlock(array); 73 | }]; 74 | } 75 | } 76 | 77 | /// 定位失败回调方法 78 | - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { 79 | NSLog(@"定位失败, 错误: %@",error); 80 | switch([error code]) { 81 | case kCLErrorDenied: { // 用户禁止了定位权限 82 | 83 | } break; 84 | default: break; 85 | } 86 | if (_failureBlock) { 87 | _failureBlock(error); 88 | } 89 | } 90 | 91 | @end 92 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZPhotoPickerController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TZPhotoPickerController.h 3 | // TZImagePickerController 4 | // 5 | // Created by 谭真 on 15/12/24. 6 | // Copyright © 2015年 谭真. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class TZAlbumModel; 12 | @interface TZPhotoPickerController : UIViewController 13 | 14 | @property (nonatomic, assign) BOOL isFirstAppear; 15 | @property (nonatomic, assign) NSInteger columnNumber; 16 | @property (nonatomic, strong) TZAlbumModel *model; 17 | @end 18 | 19 | 20 | @interface TZCollectionView : UICollectionView 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZPhotoPreviewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TZPhotoPreviewCell.h 3 | // TZImagePickerController 4 | // 5 | // Created by 谭真 on 15/12/24. 6 | // Copyright © 2015年 谭真. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class TZAssetModel; 12 | @interface TZAssetPreviewCell : UICollectionViewCell 13 | @property (nonatomic, strong) TZAssetModel *model; 14 | @property (nonatomic, copy) void (^singleTapGestureBlock)(void); 15 | - (void)configSubviews; 16 | - (void)photoPreviewCollectionViewDidScroll; 17 | @end 18 | 19 | 20 | @class TZAssetModel,TZProgressView,TZPhotoPreviewView; 21 | @interface TZPhotoPreviewCell : TZAssetPreviewCell 22 | 23 | @property (nonatomic, copy) void (^imageProgressUpdateBlock)(double progress); 24 | 25 | @property (nonatomic, strong) TZPhotoPreviewView *previewView; 26 | 27 | @property (nonatomic, assign) BOOL allowCrop; 28 | @property (nonatomic, assign) CGRect cropRect; 29 | @property (nonatomic, assign) BOOL scaleAspectFillCrop; 30 | 31 | - (void)recoverSubviews; 32 | 33 | @end 34 | 35 | 36 | @interface TZPhotoPreviewView : UIView 37 | @property (nonatomic, strong) UIImageView *imageView; 38 | @property (nonatomic, strong) UIScrollView *scrollView; 39 | @property (nonatomic, strong) UIView *imageContainerView; 40 | @property (nonatomic, strong) TZProgressView *progressView; 41 | @property (nonatomic, strong) UIImageView *iCloudErrorIcon; 42 | @property (nonatomic, strong) UILabel *iCloudErrorLabel; 43 | @property (nonatomic, copy) void (^iCloudSyncFailedHandle)(id asset, BOOL isSyncFailed); 44 | 45 | 46 | @property (nonatomic, assign) BOOL allowCrop; 47 | @property (nonatomic, assign) CGRect cropRect; 48 | @property (nonatomic, assign) BOOL scaleAspectFillCrop; 49 | @property (nonatomic, strong) TZAssetModel *model; 50 | @property (nonatomic, strong) id asset; 51 | @property (nonatomic, copy) void (^singleTapGestureBlock)(void); 52 | @property (nonatomic, copy) void (^imageProgressUpdateBlock)(double progress); 53 | 54 | @property (nonatomic, assign) int32_t imageRequestID; 55 | 56 | - (void)recoverSubviews; 57 | @end 58 | 59 | 60 | @class AVPlayer, AVPlayerLayer; 61 | @interface TZVideoPreviewCell : TZAssetPreviewCell 62 | @property (strong, nonatomic) AVPlayer *player; 63 | @property (strong, nonatomic) AVPlayerLayer *playerLayer; 64 | @property (strong, nonatomic) UIButton *playButton; 65 | @property (strong, nonatomic) UIImage *cover; 66 | @property (nonatomic, strong) NSURL *videoURL; 67 | @property (nonatomic, strong) UIImageView *iCloudErrorIcon; 68 | @property (nonatomic, strong) UILabel *iCloudErrorLabel; 69 | @property (nonatomic, copy) void (^iCloudSyncFailedHandle)(id asset, BOOL isSyncFailed); 70 | - (void)pausePlayerAndShowNaviBar; 71 | @end 72 | 73 | 74 | @interface TZGifPreviewCell : TZAssetPreviewCell 75 | @property (strong, nonatomic) TZPhotoPreviewView *previewView; 76 | @end 77 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZPhotoPreviewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TZPhotoPreviewController.h 3 | // TZImagePickerController 4 | // 5 | // Created by 谭真 on 15/12/24. 6 | // Copyright © 2015年 谭真. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TZPhotoPreviewController : UIViewController 12 | 13 | @property (nonatomic, strong) NSMutableArray *models; ///< All photo models / 所有图片模型数组 14 | @property (nonatomic, strong) NSMutableArray *photos; ///< All photos / 所有图片数组 15 | @property (nonatomic, assign) NSInteger currentIndex; ///< Index of the photo user click / 用户点击的图片的索引 16 | @property (nonatomic, assign) BOOL isSelectOriginalPhoto; ///< If YES,return original photo / 是否返回原图 17 | @property (nonatomic, assign) BOOL isCropImage; 18 | 19 | /// Return the new selected photos / 返回最新的选中图片数组 20 | @property (nonatomic, copy) void (^backButtonClickBlock)(BOOL isSelectOriginalPhoto); 21 | @property (nonatomic, copy) void (^doneButtonClickBlock)(BOOL isSelectOriginalPhoto); 22 | @property (nonatomic, copy) void (^doneButtonClickBlockCropMode)(UIImage *cropedImage,id asset); 23 | @property (nonatomic, copy) void (^doneButtonClickBlockWithPreviewType)(NSArray *photos,NSArray *assets,BOOL isSelectOriginalPhoto); 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZProgressView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TZProgressView.h 3 | // TZImagePickerController 4 | // 5 | // Created by ttouch on 2016/12/6. 6 | // Copyright © 2016年 谭真. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TZProgressView : UIView 12 | 13 | @property (nonatomic, assign) double progress; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZProgressView.m: -------------------------------------------------------------------------------- 1 | // 2 | // TZProgressView.m 3 | // TZImagePickerController 4 | // 5 | // Created by ttouch on 2016/12/6. 6 | // Copyright © 2016年 谭真. All rights reserved. 7 | // 8 | 9 | #import "TZProgressView.h" 10 | 11 | @interface TZProgressView () 12 | @property (nonatomic, strong) CAShapeLayer *progressLayer; 13 | @end 14 | 15 | @implementation TZProgressView 16 | 17 | - (instancetype)init { 18 | self = [super init]; 19 | if (self) { 20 | self.backgroundColor = [UIColor clearColor]; 21 | 22 | _progressLayer = [CAShapeLayer layer]; 23 | _progressLayer.fillColor = [[UIColor clearColor] CGColor]; 24 | _progressLayer.strokeColor = [[UIColor whiteColor] CGColor]; 25 | _progressLayer.opacity = 1; 26 | _progressLayer.lineCap = kCALineCapRound; 27 | _progressLayer.lineWidth = 5; 28 | 29 | [_progressLayer setShadowColor:[UIColor blackColor].CGColor]; 30 | [_progressLayer setShadowOffset:CGSizeMake(1, 1)]; 31 | [_progressLayer setShadowOpacity:0.5]; 32 | [_progressLayer setShadowRadius:2]; 33 | } 34 | return self; 35 | } 36 | 37 | - (void)drawRect:(CGRect)rect { 38 | CGPoint center = CGPointMake(rect.size.width / 2, rect.size.height / 2); 39 | CGFloat radius = rect.size.width / 2; 40 | CGFloat startA = - M_PI_2; 41 | CGFloat endA = - M_PI_2 + M_PI * 2 * _progress; 42 | _progressLayer.frame = self.bounds; 43 | UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:startA endAngle:endA clockwise:YES]; 44 | _progressLayer.path =[path CGPath]; 45 | 46 | [_progressLayer removeFromSuperlayer]; 47 | [self.layer addSublayer:_progressLayer]; 48 | } 49 | 50 | - (void)setProgress:(double)progress { 51 | _progress = progress; 52 | [self setNeedsDisplay]; 53 | } 54 | 55 | @end 56 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZVideoCropController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TZVideoCropController.h 3 | // TZImagePickerController 4 | // 5 | // Created by 肖兰月 on 2021/5/27. 6 | // Copyright © 2021 谭真. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @class TZAssetModel,TZImagePickerController; 14 | 15 | @interface TZVideoCropController : UIViewController 16 | @property (nonatomic, strong) TZAssetModel *model; 17 | @property (nonatomic, weak) TZImagePickerController *imagePickerVc; 18 | @end 19 | 20 | @protocol TZVideoEditViewDelegate 21 | - (void)editViewCropRectBeginChange; 22 | - (void)editViewCropRectEndChange; 23 | @end 24 | 25 | @interface TZVideoEditView : UIView 26 | @property (strong, nonatomic) UIImageView *beginImgView; 27 | @property (strong, nonatomic) UIImageView *endImgView; 28 | @property (strong, nonatomic) UIView *indicatorLine; 29 | @property (assign, nonatomic) CGFloat videoDuration; 30 | @property (assign, nonatomic) NSInteger maxCropVideoDuration; 31 | @property (assign, nonatomic) CGRect cropRect; 32 | @property (assign, nonatomic) CGFloat allImgWidth; 33 | @property (assign, nonatomic) CGFloat minCropRectWidth; 34 | 35 | @property (nonatomic, weak) id delegate; 36 | 37 | - (void)resetIndicatorLine; 38 | - (void)indicatorLineAnimateWithDuration:(NSTimeInterval)duration cropRect:(CGRect)cropRect; 39 | @end 40 | 41 | 42 | 43 | @interface TZVideoPictureCell : UICollectionViewCell 44 | @property (strong, nonatomic) UIImageView *imgView; 45 | @end 46 | 47 | NS_ASSUME_NONNULL_END 48 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZVideoEditedPreviewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TZVideoEditedPreviewController.h 3 | // TZImagePickerController 4 | // 5 | // Created by 肖兰月 on 2021/5/29. 6 | // Copyright © 2021 谭真. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface TZVideoEditedPreviewController : UIViewController 14 | @property (nonatomic, copy) NSURL *videoURL; 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/TZVideoPlayerController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TZVideoPlayerController.h 3 | // TZImagePickerController 4 | // 5 | // Created by 谭真 on 16/1/5. 6 | // Copyright © 2016年 谭真. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class TZAssetModel; 12 | @interface TZVideoPlayerController : UIViewController 13 | 14 | @property (nonatomic, strong) TZAssetModel *model; 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/UIView+TZLayout.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+TZLayout.h 3 | // TZImagePickerController 4 | // 5 | // Created by 谭真 on 15/2/24. 6 | // Copyright © 2015年 谭真. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef enum : NSUInteger { 12 | TZOscillatoryAnimationToBigger, 13 | TZOscillatoryAnimationToSmaller, 14 | } TZOscillatoryAnimationType; 15 | 16 | @interface UIView (TZLayout) 17 | 18 | @property (nonatomic) CGFloat tz_left; ///< Shortcut for frame.origin.x. 19 | @property (nonatomic) CGFloat tz_top; ///< Shortcut for frame.origin.y 20 | @property (nonatomic) CGFloat tz_right; ///< Shortcut for frame.origin.x + frame.size.width 21 | @property (nonatomic) CGFloat tz_bottom; ///< Shortcut for frame.origin.y + frame.size.height 22 | @property (nonatomic) CGFloat tz_width; ///< Shortcut for frame.size.width. 23 | @property (nonatomic) CGFloat tz_height; ///< Shortcut for frame.size.height. 24 | @property (nonatomic) CGFloat tz_centerX; ///< Shortcut for center.x 25 | @property (nonatomic) CGFloat tz_centerY; ///< Shortcut for center.y 26 | @property (nonatomic) CGPoint tz_origin; ///< Shortcut for frame.origin. 27 | @property (nonatomic) CGSize tz_size; ///< Shortcut for frame.size. 28 | 29 | + (void)showOscillatoryAnimationWithLayer:(CALayer *)layer type:(TZOscillatoryAnimationType)type; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Lib/TZImagePickerController/UIView+TZLayout.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+TZLayout.m 3 | // TZImagePickerController 4 | // 5 | // Created by 谭真 on 15/2/24. 6 | // Copyright © 2015年 谭真. All rights reserved. 7 | // 8 | 9 | #import "UIView+TZLayout.h" 10 | 11 | @implementation UIView (TZLayout) 12 | 13 | - (CGFloat)tz_left { 14 | return self.frame.origin.x; 15 | } 16 | 17 | - (void)setTz_left:(CGFloat)x { 18 | CGRect frame = self.frame; 19 | frame.origin.x = x; 20 | self.frame = frame; 21 | } 22 | 23 | - (CGFloat)tz_top { 24 | return self.frame.origin.y; 25 | } 26 | 27 | - (void)setTz_top:(CGFloat)y { 28 | CGRect frame = self.frame; 29 | frame.origin.y = y; 30 | self.frame = frame; 31 | } 32 | 33 | - (CGFloat)tz_right { 34 | return self.frame.origin.x + self.frame.size.width; 35 | } 36 | 37 | - (void)setTz_right:(CGFloat)right { 38 | CGRect frame = self.frame; 39 | frame.origin.x = right - frame.size.width; 40 | self.frame = frame; 41 | } 42 | 43 | - (CGFloat)tz_bottom { 44 | return self.frame.origin.y + self.frame.size.height; 45 | } 46 | 47 | - (void)setTz_bottom:(CGFloat)bottom { 48 | CGRect frame = self.frame; 49 | frame.origin.y = bottom - frame.size.height; 50 | self.frame = frame; 51 | } 52 | 53 | - (CGFloat)tz_width { 54 | return self.frame.size.width; 55 | } 56 | 57 | - (void)setTz_width:(CGFloat)width { 58 | CGRect frame = self.frame; 59 | frame.size.width = width; 60 | self.frame = frame; 61 | } 62 | 63 | - (CGFloat)tz_height { 64 | return self.frame.size.height; 65 | } 66 | 67 | - (void)setTz_height:(CGFloat)height { 68 | CGRect frame = self.frame; 69 | frame.size.height = height; 70 | self.frame = frame; 71 | } 72 | 73 | - (CGFloat)tz_centerX { 74 | return self.center.x; 75 | } 76 | 77 | - (void)setTz_centerX:(CGFloat)centerX { 78 | self.center = CGPointMake(centerX, self.center.y); 79 | } 80 | 81 | - (CGFloat)tz_centerY { 82 | return self.center.y; 83 | } 84 | 85 | - (void)setTz_centerY:(CGFloat)centerY { 86 | self.center = CGPointMake(self.center.x, centerY); 87 | } 88 | 89 | - (CGPoint)tz_origin { 90 | return self.frame.origin; 91 | } 92 | 93 | - (void)setTz_origin:(CGPoint)origin { 94 | CGRect frame = self.frame; 95 | frame.origin = origin; 96 | self.frame = frame; 97 | } 98 | 99 | - (CGSize)tz_size { 100 | return self.frame.size; 101 | } 102 | 103 | - (void)setTz_size:(CGSize)size { 104 | CGRect frame = self.frame; 105 | frame.size = size; 106 | self.frame = frame; 107 | } 108 | 109 | + (void)showOscillatoryAnimationWithLayer:(CALayer *)layer type:(TZOscillatoryAnimationType)type{ 110 | NSNumber *animationScale1 = type == TZOscillatoryAnimationToBigger ? @(1.15) : @(0.5); 111 | NSNumber *animationScale2 = type == TZOscillatoryAnimationToBigger ? @(0.92) : @(1.15); 112 | 113 | [UIView animateWithDuration:0.15 delay:0 options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut animations:^{ 114 | [layer setValue:animationScale1 forKeyPath:@"transform.scale"]; 115 | } completion:^(BOOL finished) { 116 | [UIView animateWithDuration:0.15 delay:0 options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut animations:^{ 117 | [layer setValue:animationScale2 forKeyPath:@"transform.scale"]; 118 | } completion:^(BOOL finished) { 119 | [UIView animateWithDuration:0.1 delay:0 options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut animations:^{ 120 | [layer setValue:@(1.0) forKeyPath:@"transform.scale"]; 121 | } completion:nil]; 122 | }]; 123 | }]; 124 | } 125 | 126 | @end 127 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Modeling3dDemoFilesListVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // Modeling3dFilesListVC.h 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/9/6. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface Modeling3dDemoFilesListVC : UIViewController 13 | 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Modeling3dDemoFilesListVC.m: -------------------------------------------------------------------------------- 1 | // 2 | // Modeling3dFilesListVC.m 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/9/6. 6 | // 7 | 8 | #import "Modeling3dDemoFilesListVC.h" 9 | #import "UIViewController+CustomAlert.h" 10 | 11 | @interface Modeling3dDemoFilesListVC () 12 | @property (weak, nonatomic) IBOutlet UITableView *tableView; 13 | @property (nonatomic, strong) NSMutableArray *datas; 14 | @end 15 | 16 | @implementation Modeling3dDemoFilesListVC 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | // Do any additional setup after loading the view. 21 | [self commonConfig]; 22 | 23 | self.tableView.estimatedRowHeight = 44.f; 24 | self.tableView.rowHeight = UITableViewAutomaticDimension; 25 | self.tableView.tableFooterView = [UIView new]; 26 | 27 | self.datas = [NSMutableArray array]; 28 | NSString *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject; 29 | NSString *dataTaskPath = [cachePath stringByAppendingPathComponent:@"dataTask"]; 30 | NSArray *subPaths = [[NSFileManager defaultManager] subpathsAtPath:dataTaskPath]; 31 | for (NSString *subPath in subPaths) { 32 | NSString *downloadPath = [NSString stringWithFormat:@"%@/%@/downloadModel/model.zip", dataTaskPath, subPath]; 33 | if ([[NSFileManager defaultManager] fileExistsAtPath:downloadPath]) { 34 | [self.datas addObject:[NSURL fileURLWithPath:downloadPath]]; 35 | } 36 | } 37 | [self.tableView reloadData]; 38 | } 39 | 40 | 41 | #pragma mark - tableView 42 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 43 | return self.datas.count; 44 | } 45 | 46 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 47 | 48 | UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"]; 49 | if (!cell) { 50 | cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"UITableViewCell"]; 51 | } 52 | 53 | cell.backgroundColor = [UIColor clearColor]; 54 | NSURL *url = [self.datas objectAtIndex:indexPath.row]; 55 | cell.textLabel.text = url.lastPathComponent; 56 | cell.textLabel.textColor = [UIColor whiteColor]; 57 | cell.detailTextLabel.text = [NSString stringWithFormat:@"%@: %@", NSLocalizedString(@"local_path", nil), url.relativePath]; 58 | cell.detailTextLabel.numberOfLines = 0; 59 | cell.detailTextLabel.textColor = [UIColor whiteColor]; 60 | 61 | return cell; 62 | } 63 | 64 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 65 | 66 | } 67 | 68 | - (IBAction)backClick:(UIButton *)sender { 69 | [self.navigationController popViewControllerAnimated:YES]; 70 | } 71 | 72 | @end 73 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Modeling3dDemoHomeVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // Modeling3dDemoHomeVC.h 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/9/13. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface Modeling3dDemoHomeVC : UIViewController 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Modeling3dDemoHomeVC.m: -------------------------------------------------------------------------------- 1 | // 2 | // Modeling3dDemoHomeVC.m 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/9/13. 6 | // 7 | 8 | #import "Modeling3dDemoHomeVC.h" 9 | #import "UIViewController+CustomAlert.h" 10 | #import 11 | #import "Modeling3dProgressAlertView.h" 12 | #import "TZImagePickerController.h" 13 | #import "TZAssetCell.h" 14 | 15 | @interface Modeling3dDemoHomeVC () 16 | 17 | @end 18 | 19 | @implementation Modeling3dDemoHomeVC 20 | 21 | - (void)viewDidLoad { 22 | [super viewDidLoad]; 23 | // Do any additional setup after loading the view. 24 | [self commonConfig]; 25 | 26 | } 27 | 28 | 29 | - (IBAction)uploadClick:(UIButton *)sender { 30 | 31 | [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status){ 32 | dispatch_async(dispatch_get_main_queue(), ^{ 33 | if (status == PHAuthorizationStatusDenied) { 34 | [self showSystemAlertWithTitle:NSLocalizedString(@"tips", nil) message:NSLocalizedString(@"permission_msg", nil) handler:^(UIAlertAction *action) { 35 | [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; 36 | }]; 37 | return; 38 | } 39 | 40 | [self presentViewController:[self getImagePicker] animated:YES completion:nil]; 41 | }); 42 | }]; 43 | } 44 | - (IBAction)howToUploadClick:(UIButton *)sender { 45 | NSLog(@"%@", sender.currentTitle); 46 | 47 | } 48 | 49 | 50 | #pragma mark - TZImagePickerControllerDelegate 51 | // 选择图片后上传 52 | - (void)imagePickerController:(TZImagePickerController *)picker 53 | didFinishPickingPhotos:(NSArray *)photos 54 | sourceAssets:(NSArray *)assets 55 | isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto { 56 | 57 | NSMutableArray *images = [NSMutableArray arrayWithCapacity:assets.count]; 58 | dispatch_group_t group = dispatch_group_create(); 59 | for (PHAsset *asset in assets) { 60 | dispatch_group_enter(group); 61 | // 导出原图 内存消耗小 62 | [[TZImageManager manager] getOriginalPhotoWithAsset:asset completion:^(UIImage *photo, NSDictionary *info) { 63 | if (![[info objectForKey:PHImageResultIsDegradedKey] boolValue]) { 64 | [images addObject:photo]; 65 | dispatch_group_leave(group); 66 | } 67 | }]; 68 | } 69 | 70 | dispatch_group_notify(group, dispatch_get_main_queue(), ^{ 71 | [[Modeling3dReconstructTask sharedManager] initTaskWithTaskConfig:InitTaskConfigPictureModel successHandler:^(Modeling3dReconstructTaskModel * _Nonnull taskModel) { 72 | [[Modeling3dReconstructTask sharedManager] createLocationUrlWithTaskModel:taskModel]; 73 | 74 | [[Modeling3dReconstructTask sharedManager] queryRestrictionWithTaskId:taskModel.taskId successHandler:^(TaskRestrictStatus restrictFlag) { 75 | if (!restrictFlag) { 76 | Modeling3dProgressAlertView *alert = [self showCustomAlert:YES taskId:taskModel.taskId]; 77 | 78 | [[Modeling3dReconstructTask sharedManager] uploadTaskWithTaskModel:taskModel 79 | imageAssets:images 80 | fileHandleProgress:^(UploadProgress progress){ 81 | alert.statusLabel.text = [self getUploadStatusStringFromStatusCode:progress]; 82 | } successHandler:^{ 83 | [self showSuccessWithStatus:@"Upload Success"]; 84 | taskModel.taskStatus = 1; 85 | [taskModel save]; 86 | } progressHandler:^(float progressValue) { 87 | NSLog(@"upload: %f", progressValue); 88 | alert.progressView.progress = progressValue; 89 | } failureHandler:^(NSInteger retCode, NSString * _Nonnull retMsg) { 90 | [alert removeFromSuperview]; 91 | [self showErrorWithStatus:retMsg]; 92 | }]; 93 | } else { 94 | [self showErrorWithStatus:@"The task is restricted, operate before cancel restrict please"]; 95 | } 96 | } failureHandler:^(NSInteger retCode, NSString * _Nonnull retMsg) { 97 | [self showErrorWithStatus:retMsg]; 98 | }]; 99 | } failureHandler:^(NSInteger retCode, NSString * _Nonnull retMsg) { 100 | [self showErrorWithStatus:retMsg]; 101 | }]; 102 | }); 103 | 104 | } 105 | 106 | - (UIStatusBarStyle)preferredStatusBarStyle { 107 | return UIStatusBarStyleLightContent; 108 | } 109 | 110 | @end 111 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/Modeling3dDemoMineVC.h: -------------------------------------------------------------------------------- 1 | // 2 | // Modeling3dDemoMineVC.h 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/9/13. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface Modeling3dDemoMineVC : UIViewController 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/UIViewController+CustomAlert.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+CustomAlert.h 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/9/6. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @class Modeling3dProgressAlertView,TZImagePickerController; 13 | @interface UIViewController (CustomAlert) 14 | 15 | - (void)showSystemAlertWithTitle:(NSString *)title 16 | message:(NSString *)message 17 | handler:(void (^)(UIAlertAction *action))handler; 18 | - (void)showMessageAlert:(NSString *)message; 19 | 20 | - (void)showErrorWithStatus:(NSString *)retMsg; 21 | - (void)showSuccessWithStatus:(NSString *)retMsg; 22 | - (void)show; 23 | - (void)dismiss; 24 | 25 | - (Modeling3dProgressAlertView *)showCustomAlert:(BOOL)isUpload taskId:(NSString *)taskId; 26 | - (void)commonConfig; 27 | - (TZImagePickerController *)getImagePicker; 28 | 29 | - (NSString *)getTaskStatusStringFromTaskStatusCode:(NSInteger)statusCode; 30 | - (NSString *)getUploadStatusStringFromStatusCode:(NSInteger)statusCode; 31 | @end 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/View/Modeling3dMainListCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // Modeling3dMainListCell.h 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/8/11. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | typedef NS_ENUM(NSUInteger, OperateType) { 13 | OperateTypePreview, 14 | OperateTypeUpload, 15 | OperateTypeDownload, 16 | OperateTypeDownloadFilesList, 17 | OperateTypeDelete, 18 | OperateTypeQuery, 19 | OperateTypeLimit 20 | }; 21 | 22 | @protocol Modeling3dMainListCellDelegate 23 | 24 | - (void)operateOnCellWithType:(OperateType)type indexPath:(NSIndexPath *)indexPath; 25 | 26 | @end 27 | 28 | @class Modeling3dReconstructTaskModel; 29 | @interface Modeling3dMainListCell : UITableViewCell 30 | 31 | @property (nonatomic, weak) id delegate; 32 | @property (nonatomic, strong) Modeling3dReconstructTaskModel *taskModel; 33 | @property (weak, nonatomic) IBOutlet UIButton *moreBtn; 34 | @property (nonatomic, strong) NSIndexPath *indexPath; 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/View/Modeling3dProgressAlertView.h: -------------------------------------------------------------------------------- 1 | // 2 | // Modeling3dProgressAlertView.h 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/8/19. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface Modeling3dProgressAlertView : UIView 13 | @property (weak, nonatomic) IBOutlet UILabel *titleLab; 14 | @property (weak, nonatomic) IBOutlet UIButton *cancelBtn; 15 | @property (weak, nonatomic) IBOutlet UILabel *statusLabel; 16 | @property (weak, nonatomic) IBOutlet UIProgressView *progressView; 17 | @property (weak, nonatomic) IBOutlet UILabel *progressValueLabel; 18 | @property (nonatomic, copy) void(^cancelHandler)(NSString *title); 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/UI/View/Modeling3dProgressAlertView.m: -------------------------------------------------------------------------------- 1 | // 2 | // Modeling3dProgressAlertView.m 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/8/19. 6 | // 7 | 8 | #import "Modeling3dProgressAlertView.h" 9 | 10 | @implementation Modeling3dProgressAlertView 11 | 12 | - (instancetype)initWithFrame:(CGRect)frame { 13 | self = [super initWithFrame:frame]; 14 | if (self) { 15 | 16 | self = [[NSBundle mainBundle] loadNibNamed:@"Modeling3dProgressAlertView" owner:self options:nil].firstObject; 17 | 18 | [self.progressView addObserver:self forKeyPath:@"progress" options:NSKeyValueObservingOptionNew context:nil]; 19 | self.progressView.progress = 0.f; 20 | self.statusLabel.text = @""; 21 | 22 | self.frame = frame; 23 | } 24 | return self; 25 | } 26 | 27 | - (IBAction)cancel:(UIButton *)sender { 28 | 29 | if (self.cancelHandler && [sender.currentTitle isEqualToString:NSLocalizedString(@"cancel", nil)]) { 30 | self.cancelHandler(self.titleLab.text); 31 | } 32 | 33 | [self removeFromSuperview]; 34 | } 35 | 36 | 37 | - (void)observeValueForKeyPath:(NSString *)keyPath 38 | ofObject:(id)object 39 | change:(NSDictionary *)change 40 | context:(void *)context { 41 | if ([keyPath isEqualToString:@"progress"]) { 42 | float progress = [change[@"new"] floatValue]; 43 | self.progressValueLabel.text = [NSString stringWithFormat:@"%@: %.2f%%", NSLocalizedString(@"completed", nil), progress*100]; 44 | if (progress == 1) { 45 | [self removeFromSuperview]; 46 | } 47 | } 48 | } 49 | 50 | - (void)dealloc { 51 | [self.progressView removeObserver:self forKeyPath:@"progress"]; 52 | } 53 | @end 54 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/agconnect-services.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/Modeling3dDemo/agconnect-services.plist -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Languages.strings 3 | Modeling3dDemo 4 | 5 | Created by zy on 2021/10/11. 6 | 7 | */ 8 | 9 | "local_path" = "Local path"; 10 | "tips" = "Tips"; 11 | "permission_msg" = "Please go to settings - > Photos - > allow access to photos and agree to obtain photo album permission"; 12 | "cancel" = "Cancel"; 13 | "ok" = "OK"; 14 | "u_pgs" = "upload progress"; 15 | "d_pgs" = "download progress"; 16 | "upload" = "Upload"; 17 | "completed" = "completed"; 18 | "delete" = "Delete"; 19 | "download" = "Download"; 20 | "query" = "Query"; 21 | "a_res" = "Add restrictions"; 22 | "r_res" = "Remove restrictions"; 23 | "u_status_0" = "Unknown"; 24 | "u_status_1" = "Initialize upload"; 25 | "u_status_2" = "Compress"; 26 | "u_status_3" = "Split"; 27 | "u_status_4" = "Uploading"; 28 | "u_status_5" = "Notify cloud upload complete"; 29 | "task_status_0" = "Waiting for upload"; 30 | "task_status_1" = "Upload finished"; 31 | "task_status_2" = "Reconstructing"; 32 | "task_status_3" = "Reconstruction complete"; 33 | "task_status_4" = "Rebuild failed"; 34 | "task_status_5" = "Unkown"; 35 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/en.lproj/Main.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "3D魔方"; ObjectID = "DGC-Wd-tOP"; */ 3 | "DGC-Wd-tOP.text" = "3D Magic"; 4 | 5 | /* Class = "UILabel"; text = "历史记录"; ObjectID = "DLJ-ew-6Pm"; */ 6 | "DLJ-ew-6Pm.text" = "History"; 7 | 8 | /* Class = "UIButton"; normalTitle = "本地文件"; ObjectID = "DrI-id-oMH"; */ 9 | "DrI-id-oMH.normalTitle" = "Local File"; 10 | 11 | /* Class = "UILabel"; text = "打开相册,选择想要建模的一组照片,上传数量20~200张"; ObjectID = "SZd-VH-uqa"; */ 12 | "SZd-VH-uqa.text" = "Open the album, select a group of photos you want to model, and upload 20 ~ 200 photos"; 13 | 14 | /* Class = "UITabBarItem"; title = "首页"; ObjectID = "XMu-YP-Hxv"; */ 15 | "XMu-YP-Hxv.title" = "Home"; 16 | 17 | /* Class = "UIButton"; normalTitle = "如何上传?"; ObjectID = "Y3e-tr-aez"; */ 18 | "Y3e-tr-aez.normalTitle" = "How to upload ?"; 19 | 20 | /* Class = "UILabel"; text = "本地文件"; ObjectID = "ZSx-hn-GOC"; */ 21 | "ZSx-hn-GOC.text" = "Local File"; 22 | 23 | /* Class = "UITabBarItem"; title = "我的"; ObjectID = "iYc-CG-Qtt"; */ 24 | "iYc-CG-Qtt.title" = "Me"; 25 | 26 | /* Class = "UIButton"; normalTitle = "上传"; ObjectID = "tE8-kh-52p"; */ 27 | "tE8-kh-52p.normalTitle" = "Upload"; 28 | 29 | /* Class = "UILabel"; text = "上传照片开始建模"; ObjectID = "xpH-gm-YZ5"; */ 30 | "xpH-gm-YZ5.text" = "Upload photos to start modeling"; 31 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // 3DMagicObjReconstructDemo 4 | // 5 | // Created by zy on 2021/8/10. 6 | // 7 | 8 | #import 9 | #import "AppDelegate.h" 10 | 11 | int main(int argc, char * argv[]) { 12 | NSString * appDelegateClassName; 13 | @autoreleasepool { 14 | // Setup code that might create autoreleased objects goes here. 15 | appDelegateClassName = NSStringFromClass([AppDelegate class]); 16 | } 17 | return UIApplicationMain(argc, argv, nil, appDelegateClassName); 18 | } 19 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Languages.strings 3 | Modeling3dDemo 4 | 5 | Created by zy on 2021/10/11. 6 | 7 | */ 8 | 9 | 10 | "local_path" = "本地路径"; 11 | "tips" = "提示"; 12 | "permission_msg" = "请前往设置->照片->允许访问照片同意获取相册权限"; 13 | "cancel" = "取消"; 14 | "ok" = "确定"; 15 | "u_pgs" = "上传进度"; 16 | "d_pgs" = "下载进度"; 17 | "upload" = "上传"; 18 | "completed" = "已完成"; 19 | "delete" = "删除"; 20 | "download" = "下载"; 21 | "query" = "查询状态"; 22 | "a_res" = "添加限制"; 23 | "r_res" = "取消限制"; 24 | "u_status_0" = "未知状态"; 25 | "u_status_1" = "初始化上传"; 26 | "u_status_2" = "压缩"; 27 | "u_status_3" = "分片"; 28 | "u_status_4" = "上传"; 29 | "u_status_5" = "通知云端上传完成"; 30 | "task_status_0" = "待上传"; 31 | "task_status_1" = "上传完成"; 32 | "task_status_2" = "建模中"; 33 | "task_status_3" = "建模完成"; 34 | "task_status_4" = "建模失败"; 35 | "task_status_5" = "未知状态"; 36 | -------------------------------------------------------------------------------- /3DModeling-objective-c/Modeling3dDemo/zh-Hans.lproj/Main.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "3D魔方"; ObjectID = "DGC-Wd-tOP"; */ 3 | "DGC-Wd-tOP.text" = "3D魔方"; 4 | 5 | /* Class = "UILabel"; text = "历史记录"; ObjectID = "DLJ-ew-6Pm"; */ 6 | "DLJ-ew-6Pm.text" = "历史记录"; 7 | 8 | /* Class = "UIButton"; normalTitle = "本地文件"; ObjectID = "DrI-id-oMH"; */ 9 | "DrI-id-oMH.normalTitle" = "本地文件"; 10 | 11 | /* Class = "UILabel"; text = "打开相册,选择想要建模的一组照片,上传数量20~200张"; ObjectID = "SZd-VH-uqa"; */ 12 | "SZd-VH-uqa.text" = "打开相册,选择想要建模的一组照片,上传数量20~200张"; 13 | 14 | /* Class = "UITabBarItem"; title = "首页"; ObjectID = "XMu-YP-Hxv"; */ 15 | "XMu-YP-Hxv.title" = "首页"; 16 | 17 | /* Class = "UIButton"; normalTitle = "如何上传?"; ObjectID = "Y3e-tr-aez"; */ 18 | "Y3e-tr-aez.normalTitle" = "如何上传?"; 19 | 20 | /* Class = "UILabel"; text = "本地文件"; ObjectID = "ZSx-hn-GOC"; */ 21 | "ZSx-hn-GOC.text" = "本地文件"; 22 | 23 | /* Class = "UITabBarItem"; title = "我的"; ObjectID = "iYc-CG-Qtt"; */ 24 | "iYc-CG-Qtt.title" = "我的"; 25 | 26 | /* Class = "UIButton"; normalTitle = "上传"; ObjectID = "tE8-kh-52p"; */ 27 | "tE8-kh-52p.normalTitle" = "上传"; 28 | 29 | /* Class = "UILabel"; text = "上传照片开始建模"; ObjectID = "xpH-gm-YZ5"; */ 30 | "xpH-gm-YZ5.text" = "上传照片开始建模"; 31 | -------------------------------------------------------------------------------- /3DModeling-objective-c/README.md: -------------------------------------------------------------------------------- 1 | # 3DModeling-Sample 2 | English | [中文](https://github.com/HMS-Core/hms-3d-modeling-demo-ios/blob/main/3DModeling-objective-c/README_ZH.md) 3 | 4 | ## Table of Contents 5 | 6 | * [Introduction](#introduction) 7 | * [Project directory structure](#Project-directory-structure) 8 | * [More Scenarios](#more-scenarios) 9 | * [Getting Started](#getting-started) 10 | * [Supported Environment](#supported-environment) 11 | * [License](#license) 12 | 13 | 14 | ## Introduction 15 | This sample code describes how to use the 3D Modeling Kit SDK, including the following modules: 16 | 17 | ### 3D Object Reconstruction 18 | It includes image uploading, model previewing and model downloadling. 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | For details about the HMS Core 3D Modeling SDK, please refer to [HUAWEI 3D Modeling Kit](https://developer.huawei.com/consumer/en/doc/development/graphics-Guides/introduction-0000001143077297) 30 | 31 | ## Project directory structure 32 | 33 | 3DModeling-objective-c 34 | 35 | |-- Modeling3dDemo 36 | |-- Assets.xcassets 37 | |-- Modeling3dKit.framework 38 | |-- Headers 39 | |-- Modeling3dKit.h //3DModelingKit.h. 40 | |-- Modeling3dReconstructConstants.h // Modeling3dReconstructConstant defined in 3DModelingKit. 41 | |-- Modeling3dReconstructErrorCode.h // Modeling3dErrorCode defined in 3DModelingKit. 42 | |-- Modeling3dReconstructTask.h // Task processing class, such as uploading, querying, and downloading. 43 | |-- UI 44 | |-- agconnect-services.plist 45 | |-- Modeling3dDemo.xcodeproj 46 | 47 | 48 | ## More Scenarios 49 | HUAWEI 3D Modeling Kit allows your apps to easily leverage Huawei's long-term proven expertise in 3D Modeling Kit to support diverse 3D Modeling applications throughout a wide range of industries. 50 | For more application scenarios, see: [Huawei 3D Modeling Service Integration Cases.](https://developer.huawei.com/consumer/en/doc/development/graphics-Guides/case-one-0000001148975606) 51 | 52 | ## Getting Started 53 | - Clone the code library to the local computer. 54 | 55 | git clone https://github.com/HMS-Core/hms-3d-modeling-demo-ios.git 56 | 57 | - If you have not registered as a developer, [register and create an app in AppGallery Connect](https://developer.huawei.com/consumer/en/service/josp/agc/index.html). 58 | - Obtain the agconnect-services.plist file from [Huawei Developers](https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/config-agc-0000001050990353). 59 | - Replace the agconnect-services.plist file in the project. 60 | - Compile and run on an IOS device or simulator. 61 | 62 | Attention: 63 | 64 | You should create an iOS app in AppGallery Connect, and obtain the agconnect-services.plist file and add it to the project. You should also generate a signing certificate fingerprint and add the certificate file to the project. More to Development Process 65 | 66 | ## FAQ 67 | 68 | If CopyPlistFile agconnect-services.plist is encountered during compilation, refer to the following issues: 69 | 70 | [CopyPlistFile agconnect-services.plist Error](https://github.com/HMS-Core/hms-3d-modeling-demo-ios/issues/1) 71 | 72 | 73 | ## Supported Environments 74 | Devices with IOS version 9.0 or later are recommended. 75 | 76 | 77 | ## License 78 | The 3DModeling Sample have obtained the [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0). 79 | -------------------------------------------------------------------------------- /3DModeling-objective-c/README_ZH.md: -------------------------------------------------------------------------------- 1 | # 3DModeling-Sample 2 | [![License](https://img.shields.io/badge/Docs-hmsguides-brightgreen)](https://developer.huawei.com/consumer/cn/doc/development/HMS-Guides/ml-introduction-4) 3 | 4 | 中文 | [English](https://github.com/HMS-Core/hms-3d-modeling-demo-ios/blob/main/3DModeling-objective-c/README.md) 5 | ## 目录 6 | 7 | * [介绍](#介绍) 8 | * [工程目录结构](#工程目录结构) 9 | * [更多场景](#更多场景) 10 | * [运行步骤](#运行步骤) 11 | * [支持的环境](#支持的环境) 12 | * [许可证](#许可证) 13 | 14 | 15 | ## 介绍 16 | 本示例代码目的是为了介绍3D Modeling Kit SDK的使用,其中包含以下两个能力: 17 | 18 | ### 3D物体建模 19 | 其中包括:上传采集图片、查询建模进度、下载模型。 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 详细介绍请参考[华为3D建模服务SDK](https://developer.huawei.com/consumer/cn/doc/development/graphics-Guides/introduction-0000001143077297)。 29 | 30 | ## 工程目录结构 31 | 3DModeling-objective-c 32 | 33 | |-- Modeling3dDemo 34 | |-- Assets.xcassets 35 | |-- Modeling3dKit.framework 36 | |-- Headers 37 | |-- Modeling3dKit.h //3DModelingKit.h。 38 | |-- Modeling3dReconstructConstants.h // 3DModelingKit 中定义的相关常量。、 39 | |-- Modeling3dReconstructErrorCode.h // 3DModelingKit 中定义的业务相关的错误码。 40 | |-- Modeling3dReconstructTask.h // 3D建模任务处理类,包含上传、下载、查询等操作。 41 | |-- UI UI相关代码 42 | |-- agconnect-services.plist 开发者相关的配置文件 43 | |-- Modeling3dDemo.xcodeproj 44 | 45 | ## 更多场景 46 | 华为3D建模服务(HMS 3D Modeling Kit) 提供3D建模套件,为开发者应用3D建模能力开发各类应用提供优质体验。 47 | 更多应用场景,可参考:[华为3D建模服务集成案例](https://developer.huawei.com/consumer/cn/doc/development/graphics-Guides/case-one-0000001148975606)。 48 | 49 | ## 运行步骤 50 | - 将本代码库克隆到本地。 51 | 52 | git clone https://github.com/HMS-Core/hms-3d-modeling-demo-ios.git 53 | 54 | - 如果您还没有注册成为开发者,请在[AppGalleryConnect上注册并创建应用](https://developer.huawei.com/consumer/cn/service/josp/agc/index.html)。 55 | - agconnect-services.plist文件请从[华为开发者社区](https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/config-agc-0000001050990353)网站申请获取。 56 | - 替换工程中的agconnect-services.plist文件。 57 | - 编译并且在IOS设备或模拟器上运行。 58 | 59 | 注意: 60 | 61 | 您应该在AppGallery Connect中创建一个iOS应用程序,并获取agconnect-services.plist文件并将其添加到项目中。您还应生成签名证书指纹,并将证书文件添加到项目中。更多关于开发过程的信息 62 | 63 | ## FAQ 64 | 65 | 如果编译时遇到CopyPlistFile agconnect-services.plist,可以参考如下Issues: 66 | 67 | [CopyPlistFile agconnect-services.plist Error](https://github.com/HMS-Core/hms-3d-modeling-demo-ios/issues/1) 68 | 69 | ## 支持的环境 70 | 推荐使用IOS版本 9.0及以上版本的设备。 71 | 72 | ## 许可证 73 | 此示例代码已获得[Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0)。 74 | -------------------------------------------------------------------------------- /3DModeling-objective-c/resources/ModelDownload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/resources/ModelDownload.png -------------------------------------------------------------------------------- /3DModeling-objective-c/resources/ModelDownload_ZH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/resources/ModelDownload_ZH.png -------------------------------------------------------------------------------- /3DModeling-objective-c/resources/ModelPreview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/resources/ModelPreview.png -------------------------------------------------------------------------------- /3DModeling-objective-c/resources/ModelUpload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/resources/ModelUpload.png -------------------------------------------------------------------------------- /3DModeling-objective-c/resources/ModelUpload_ZH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HMS-Core/hms-3d-modeling-demo-ios/0dadaccf80554df4821fee32679eed0037645d85/3DModeling-objective-c/resources/ModelUpload_ZH.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # HUAWEI 3D Modeling Kit Sample 2 | 3 | [![License](https://img.shields.io/badge/Docs-hmsguides-brightgreen)](https://developer.huawei.com/consumer/en/doc/development/graphics-Guides/introduction-0000001143077297) 4 | 5 | English | [中文](README_ZH.md) 6 | 7 | ## Introduction 8 | 9 | This project includes apps developed based on HUAWEI 3D Modeling Kit. The project directory is as follows: 10 | 11 | |-- 3DModeling-objective-c // 3D Modeling Kit objective-c sample code. 12 | 13 | 14 | ## Precautions 15 | 16 | The hms-3d-modeling-demo-ios project contains a sample app. After downloading and running the code, you can experience full 3D Modeling Kit capabilities. 17 | 18 | ## Technical Support 19 | 20 | If you are still evaluating HMS Core, obtain the latest information about HMS Core and share your insights with other developers at [Reddit](https://www.reddit.com/r/HuaweiDevelopers/.). 21 | 22 | - To resolve development issues, please go to [Stack Overflow](https://stackoverflow.com/questions/tagged/huawei-mobile-services). You can ask questions below the huawei-mobile-services tag, and Huawei R&D experts can solve your problem online on a one-to-one basis. 23 | - To join the developer discussion, please visit [Huawei Developer Forum](https://forums.developer.huawei.com/forumPortal/en/forum/hms-core). 24 | 25 | If you have problems using the sample code, submit [issues](https://github.com/HMS-Core/hms-3d-modeling-demo/issues) and [pull requests](https://github.com/HMS-Core/hms-3d-modeling-demo/pulls) to the repository. 26 | -------------------------------------------------------------------------------- /README_ZH.md: -------------------------------------------------------------------------------- 1 | # 华为3D建模服务示例代码 2 | 3 | [![License](https://img.shields.io/badge/Docs-hmsguides-brightgreen)](https://developer.huawei.com/consumer/cn/doc/development/graphics-Guides/introduction-0000001143077297) 4 | 5 | [English](README.md) | 中文 6 | 7 | ## 简介 8 | 9 | 本项目包含基于华为3D建模服务(3D Modeling Kit)开发的APP。工程目录如下: 10 | 11 | |-- 3DModeling-objective-c // 3D Modeling Kit objective-c 示例代码。 12 | 13 | ## 注意事项 14 | 15 | hms-3d-modeling-demo-ios工程包含一个示例Demo。下载并运行代码后,您体验到完整的3D建模服务。 16 | 17 | ## 技术支持 18 | 如果您对HMS Core还处于评估阶段,可在[Reddit社区](https://www.reddit.com/r/HuaweiDevelopers/)获取关于HMS Core的最新讯息,并与其他开发者交流见解。 19 | 20 | 如果您对使用HMS示例代码有疑问,请尝试: 21 | - 开发过程遇到问题上[Stack Overflow](https://stackoverflow.com/questions/tagged/huawei-mobile-services),在`huawei-mobile-services`标签下提问,有华为研发专家在线一对一解决您的问题。 22 | - 到[华为开发者论坛](https://developer.huawei.com/consumer/cn/forum/blockdisplay?fid=18) HMS Core板块与其他开发者进行交流。 23 | 24 | 如果您在尝试示例代码中遇到问题,请向仓库提交[issue](https://github.com/HMS-Core/hms-3d-modeling-demo/issues),也欢迎您提交[Pull Request](https://github.com/HMS-Core/hms-3d-modeling-demo/pulls)。 25 | --------------------------------------------------------------------------------