├── 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 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
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 |
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 | [](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 |
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 | [](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 | [](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 |
--------------------------------------------------------------------------------