-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathviewer.js
executable file
·117 lines (82 loc) · 2.66 KB
/
viewer.js
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/////////////////////////////////////////////////////////
// Initialize viewer environment
//
/////////////////////////////////////////////////////////
function initialize (options) {
return new Promise(function(resolve, reject) {
Autodesk.Viewing.Initializer (options,
function () {
resolve ()
}, function(error){
reject (error)
})
})
}
/////////////////////////////////////////////////////////
// load document from URN
//
/////////////////////////////////////////////////////////
function loadDocument (urn) {
return new Promise(function(resolve, reject) {
var paramUrn = !urn.startsWith("urn:")
? "urn:" + urn
: urn
Autodesk.Viewing.Document.load(paramUrn,
function(doc) {
resolve (doc)
}, function (error) {
reject (error)
})
})
}
/////////////////////////////////////////////////////////
// Get viewable items from document
//
/////////////////////////////////////////////////////////
function getViewableItems (doc, roles) {
var rootItem = doc.getRootItem()
var items = []
var roleArray = roles
? (Array.isArray(roles) ? roles : [roles])
: []
roleArray.forEach(function(role) {
var subItems =
Autodesk.Viewing.Document.getSubItemsWithProperties(
rootItem, { type: "geometry", role: role }, true)
items = items.concat(subItems)
})
return items
}
/////////////////////////////////////////////////////////
// get query parameter
//
/////////////////////////////////////////////////////////
function getQueryParam (name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
/////////////////////////////////////////////////////////
// Initialize Environment
//
/////////////////////////////////////////////////////////
initialize({
//acccessToken: getQueryParam("acccessToken"),
env: "Local"
}).then(function() {
// loadDocument ("urn:" + getQueryParam("urn")).then(function(doc) {
// var items = getViewableItems (doc, ["3d", "2d"])
// var path = doc.getViewablePath(items[0])
// var viewerDiv = document.getElementById("viewer")
// var viewer = new Autodesk.Viewing.Private.GuiViewer3D(viewerDiv)
// viewer.start(path)
// })
var viewerDiv = document.getElementById("viewer")
var viewer = new Autodesk.Viewing.Private.GuiViewer3D(viewerDiv)
viewer.start()
viewer.loadModel('http://localhost:8080/www/models/office/Resource/3D_View/3D/office.svf')
})