@inweb/client 25.3.9 → 25.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.js +703 -681
- package/dist/client.js.map +1 -1
- package/dist/client.min.js +1 -1
- package/dist/client.module.js +618 -579
- package/dist/client.module.js.map +1 -1
- package/lib/Api/Client.d.ts +5 -8
- package/lib/Viewer/Viewer.d.ts +0 -6
- package/package.json +1 -1
- package/src/Api/Client.ts +44 -12
- package/src/Viewer/Viewer.ts +1 -14
package/dist/client.module.js
CHANGED
|
@@ -856,416 +856,127 @@ class HttpClient {
|
|
|
856
856
|
}
|
|
857
857
|
}
|
|
858
858
|
|
|
859
|
-
class
|
|
860
|
-
constructor(
|
|
861
|
-
this.
|
|
862
|
-
this.
|
|
863
|
-
this.
|
|
859
|
+
class Permission {
|
|
860
|
+
constructor(data, fileId, httpClient) {
|
|
861
|
+
this.httpClient = httpClient;
|
|
862
|
+
this.fileId = fileId;
|
|
863
|
+
this.data = data;
|
|
864
864
|
}
|
|
865
|
-
|
|
866
|
-
return {
|
|
867
|
-
showWCS: true,
|
|
868
|
-
cameraAnimation: true,
|
|
869
|
-
antialiasing: true,
|
|
870
|
-
groundShadow: false,
|
|
871
|
-
shadows: false,
|
|
872
|
-
cameraAxisXSpeed: 4,
|
|
873
|
-
cameraAxisYSpeed: 1,
|
|
874
|
-
ambientOcclusion: false,
|
|
875
|
-
enableStreamingMode: true,
|
|
876
|
-
enablePartialMode: false,
|
|
877
|
-
memoryLimit: 3294967296,
|
|
878
|
-
cuttingPlaneFillColor: {
|
|
879
|
-
red: 255,
|
|
880
|
-
green: 152,
|
|
881
|
-
blue: 0
|
|
882
|
-
},
|
|
883
|
-
edgesColor: {
|
|
884
|
-
r: 255,
|
|
885
|
-
g: 152,
|
|
886
|
-
b: 0
|
|
887
|
-
},
|
|
888
|
-
facesColor: {
|
|
889
|
-
r: 255,
|
|
890
|
-
g: 152,
|
|
891
|
-
b: 0
|
|
892
|
-
},
|
|
893
|
-
edgesVisibility: true,
|
|
894
|
-
edgesOverlap: true,
|
|
895
|
-
facesOverlap: false,
|
|
896
|
-
facesTransparancy: 200,
|
|
897
|
-
enableCustomHighlight: true,
|
|
898
|
-
sceneGraph: false,
|
|
899
|
-
edgeModel: true,
|
|
900
|
-
reverseZoomWheel: false,
|
|
901
|
-
enableZoomWheel: true,
|
|
902
|
-
enableGestures: true,
|
|
903
|
-
geometryType: "vsfx"
|
|
904
|
-
};
|
|
865
|
+
internalGet() {
|
|
866
|
+
return this.httpClient.get(`/files/${this.fileId}/permissions/${this.id}`);
|
|
905
867
|
}
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
this.saveToStorage();
|
|
909
|
-
this._emitter.emit({
|
|
910
|
-
type: "optionschange",
|
|
911
|
-
data: this
|
|
912
|
-
});
|
|
913
|
-
}
|
|
868
|
+
internalPut(body) {
|
|
869
|
+
return this.httpClient.put(`/files/${this.fileId}/permissions/${this.id}`, body);
|
|
914
870
|
}
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
localStorage.setItem("od-client-settings", JSON.stringify(this.data));
|
|
918
|
-
} catch (error) {
|
|
919
|
-
console.error("Cannot save client settings.", error);
|
|
920
|
-
}
|
|
871
|
+
internalDelete() {
|
|
872
|
+
return this.httpClient.delete(`/files/${this.fileId}/permissions/${this.id}`);
|
|
921
873
|
}
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
const item = localStorage.getItem("od-client-settings");
|
|
925
|
-
if (item) {
|
|
926
|
-
const data = JSON.parse(item);
|
|
927
|
-
this.data = {
|
|
928
|
-
...data
|
|
929
|
-
};
|
|
930
|
-
}
|
|
931
|
-
} catch (error) {
|
|
932
|
-
console.error("Cannot load client settings.", error);
|
|
933
|
-
}
|
|
874
|
+
get actions() {
|
|
875
|
+
return this.data.actions;
|
|
934
876
|
}
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
const defaults = Options.defaults();
|
|
938
|
-
const resetData = fields.reduce(((acc, field) => {
|
|
939
|
-
acc[field] = defaults[field];
|
|
940
|
-
return acc;
|
|
941
|
-
}), {});
|
|
942
|
-
this.data = {
|
|
943
|
-
...this.data,
|
|
944
|
-
...resetData
|
|
945
|
-
};
|
|
946
|
-
} else {
|
|
947
|
-
this.data = {
|
|
948
|
-
...this.data,
|
|
949
|
-
...Options.defaults()
|
|
950
|
-
};
|
|
951
|
-
}
|
|
877
|
+
set actions(value) {
|
|
878
|
+
this._data.actions = value;
|
|
952
879
|
}
|
|
953
880
|
get data() {
|
|
954
881
|
return this._data;
|
|
955
882
|
}
|
|
956
883
|
set data(value) {
|
|
957
|
-
|
|
958
|
-
this._data = {
|
|
959
|
-
...Options.defaults(),
|
|
960
|
-
...this._data,
|
|
961
|
-
...value,
|
|
962
|
-
sceneGraph: sceneGraph
|
|
963
|
-
};
|
|
964
|
-
this.notifierChangeEvent();
|
|
884
|
+
this._data = value;
|
|
965
885
|
}
|
|
966
|
-
get
|
|
967
|
-
return this.
|
|
886
|
+
get id() {
|
|
887
|
+
return this.data.id;
|
|
968
888
|
}
|
|
969
|
-
|
|
970
|
-
this.
|
|
971
|
-
this.notifierChangeEvent();
|
|
889
|
+
get grantedTo() {
|
|
890
|
+
return this.data.grantedTo;
|
|
972
891
|
}
|
|
973
|
-
|
|
974
|
-
|
|
892
|
+
set grantedTo(value) {
|
|
893
|
+
this.data.grantedTo = value;
|
|
975
894
|
}
|
|
976
|
-
|
|
977
|
-
this.
|
|
978
|
-
this.notifierChangeEvent();
|
|
895
|
+
get public() {
|
|
896
|
+
return this.data.public;
|
|
979
897
|
}
|
|
980
|
-
|
|
981
|
-
|
|
898
|
+
set public(value) {
|
|
899
|
+
this.data.public = value;
|
|
982
900
|
}
|
|
983
|
-
|
|
984
|
-
this.
|
|
985
|
-
this
|
|
901
|
+
async checkout() {
|
|
902
|
+
this.data = await json(this.internalGet());
|
|
903
|
+
return this;
|
|
986
904
|
}
|
|
987
|
-
|
|
988
|
-
|
|
905
|
+
async update(data) {
|
|
906
|
+
this.data = await json(this.internalPut(data));
|
|
907
|
+
return this;
|
|
989
908
|
}
|
|
990
|
-
|
|
991
|
-
this.
|
|
992
|
-
this.notifierChangeEvent();
|
|
909
|
+
delete() {
|
|
910
|
+
return json(this.internalDelete());
|
|
993
911
|
}
|
|
994
|
-
|
|
995
|
-
return this.
|
|
912
|
+
save() {
|
|
913
|
+
return this.update(this.data);
|
|
996
914
|
}
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
class Job {
|
|
918
|
+
constructor(data, httpClient) {
|
|
919
|
+
this.httpClient = httpClient;
|
|
920
|
+
this.data = data;
|
|
1000
921
|
}
|
|
1001
|
-
|
|
1002
|
-
return this.
|
|
922
|
+
internalGet() {
|
|
923
|
+
return this.httpClient.get(`/jobs/${this.data.id}`);
|
|
1003
924
|
}
|
|
1004
|
-
|
|
1005
|
-
this.
|
|
1006
|
-
this.notifierChangeEvent();
|
|
925
|
+
internalPut(body) {
|
|
926
|
+
return this.httpClient.put(`/jobs/${this.data.id}`, body);
|
|
1007
927
|
}
|
|
1008
|
-
|
|
1009
|
-
return this.
|
|
928
|
+
internalDelete() {
|
|
929
|
+
return this.httpClient.delete(`/jobs/${this.data.id}`);
|
|
1010
930
|
}
|
|
1011
|
-
|
|
1012
|
-
this.
|
|
1013
|
-
this.notifierChangeEvent();
|
|
931
|
+
get assemblyId() {
|
|
932
|
+
return this.data.assemblyId;
|
|
1014
933
|
}
|
|
1015
|
-
get
|
|
1016
|
-
return this.
|
|
934
|
+
get authorId() {
|
|
935
|
+
return this.data.authorId;
|
|
1017
936
|
}
|
|
1018
|
-
|
|
1019
|
-
this.
|
|
1020
|
-
this.notifierChangeEvent();
|
|
937
|
+
get createdAt() {
|
|
938
|
+
return this.data.createdAt;
|
|
1021
939
|
}
|
|
1022
|
-
get
|
|
1023
|
-
return this._data
|
|
940
|
+
get data() {
|
|
941
|
+
return this._data;
|
|
1024
942
|
}
|
|
1025
|
-
set
|
|
1026
|
-
this._data
|
|
1027
|
-
if (this._data.enableStreamingMode) {
|
|
1028
|
-
this._data.enablePartialMode = false;
|
|
1029
|
-
}
|
|
1030
|
-
this.notifierChangeEvent();
|
|
943
|
+
set data(value) {
|
|
944
|
+
this._data = value;
|
|
1031
945
|
}
|
|
1032
|
-
get
|
|
1033
|
-
return this.
|
|
946
|
+
get done() {
|
|
947
|
+
return this.data.status === "done" || this.data.status === "failed";
|
|
1034
948
|
}
|
|
1035
|
-
|
|
1036
|
-
this.
|
|
1037
|
-
if (value) this._data.sceneGraph = false;
|
|
1038
|
-
this.notifierChangeEvent();
|
|
949
|
+
get fileId() {
|
|
950
|
+
return this.data.fileId;
|
|
1039
951
|
}
|
|
1040
|
-
get
|
|
1041
|
-
return this.
|
|
952
|
+
get id() {
|
|
953
|
+
return this.data.id;
|
|
1042
954
|
}
|
|
1043
|
-
|
|
1044
|
-
this.
|
|
1045
|
-
this.notifierChangeEvent();
|
|
955
|
+
get lastUpdate() {
|
|
956
|
+
return this.data.lastUpdate;
|
|
1046
957
|
}
|
|
1047
|
-
get
|
|
1048
|
-
return this.
|
|
958
|
+
get outputFormat() {
|
|
959
|
+
return this.data.outputFormat;
|
|
1049
960
|
}
|
|
1050
|
-
|
|
1051
|
-
this.
|
|
1052
|
-
this.notifierChangeEvent();
|
|
961
|
+
get parameters() {
|
|
962
|
+
return this.data.parameters;
|
|
1053
963
|
}
|
|
1054
|
-
get
|
|
1055
|
-
return this.
|
|
964
|
+
get status() {
|
|
965
|
+
return this.data.status;
|
|
1056
966
|
}
|
|
1057
|
-
|
|
1058
|
-
this.
|
|
1059
|
-
this.notifierChangeEvent();
|
|
967
|
+
get statusMessage() {
|
|
968
|
+
return this.data.statusMessage;
|
|
1060
969
|
}
|
|
1061
|
-
get
|
|
1062
|
-
return this.
|
|
970
|
+
get startedAt() {
|
|
971
|
+
return this.data.startedAt;
|
|
1063
972
|
}
|
|
1064
|
-
|
|
1065
|
-
this.
|
|
1066
|
-
this
|
|
973
|
+
async checkout() {
|
|
974
|
+
this.data = await json(this.internalGet());
|
|
975
|
+
return this;
|
|
1067
976
|
}
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
set edgesVisibility(value) {
|
|
1072
|
-
this._data.edgesVisibility = value;
|
|
1073
|
-
this.notifierChangeEvent();
|
|
1074
|
-
}
|
|
1075
|
-
get edgesOverlap() {
|
|
1076
|
-
return this._data.edgesOverlap;
|
|
1077
|
-
}
|
|
1078
|
-
set edgesOverlap(value) {
|
|
1079
|
-
this._data.edgesOverlap = value;
|
|
1080
|
-
this.notifierChangeEvent();
|
|
1081
|
-
}
|
|
1082
|
-
get facesOverlap() {
|
|
1083
|
-
return this._data.facesOverlap;
|
|
1084
|
-
}
|
|
1085
|
-
set facesOverlap(value) {
|
|
1086
|
-
this._data.facesOverlap = value;
|
|
1087
|
-
this.notifierChangeEvent();
|
|
1088
|
-
}
|
|
1089
|
-
get facesTransparancy() {
|
|
1090
|
-
return this._data.facesTransparancy;
|
|
1091
|
-
}
|
|
1092
|
-
set facesTransparancy(value) {
|
|
1093
|
-
this._data.facesTransparancy = value;
|
|
1094
|
-
this.notifierChangeEvent();
|
|
1095
|
-
}
|
|
1096
|
-
get enableCustomHighlight() {
|
|
1097
|
-
return this._data.enableCustomHighlight;
|
|
1098
|
-
}
|
|
1099
|
-
set enableCustomHighlight(value) {
|
|
1100
|
-
this._data.enableCustomHighlight = value;
|
|
1101
|
-
this.notifierChangeEvent();
|
|
1102
|
-
}
|
|
1103
|
-
get sceneGraph() {
|
|
1104
|
-
return this._data.sceneGraph;
|
|
1105
|
-
}
|
|
1106
|
-
set sceneGraph(value) {
|
|
1107
|
-
this._data.sceneGraph = value;
|
|
1108
|
-
if (value) this._data.enablePartialMode = false;
|
|
1109
|
-
this.notifierChangeEvent();
|
|
1110
|
-
}
|
|
1111
|
-
get edgeModel() {
|
|
1112
|
-
return Boolean(this._data.edgeModel);
|
|
1113
|
-
}
|
|
1114
|
-
set edgeModel(value) {
|
|
1115
|
-
this._data.edgeModel = Boolean(value);
|
|
1116
|
-
this.notifierChangeEvent();
|
|
1117
|
-
}
|
|
1118
|
-
get reverseZoomWheel() {
|
|
1119
|
-
return this._data.reverseZoomWheel;
|
|
1120
|
-
}
|
|
1121
|
-
set reverseZoomWheel(value) {
|
|
1122
|
-
this._data.reverseZoomWheel = !!value;
|
|
1123
|
-
this.notifierChangeEvent();
|
|
1124
|
-
}
|
|
1125
|
-
get enableZoomWheel() {
|
|
1126
|
-
return this._data.enableZoomWheel;
|
|
1127
|
-
}
|
|
1128
|
-
set enableZoomWheel(value) {
|
|
1129
|
-
this._data.enableZoomWheel = !!value;
|
|
1130
|
-
this.notifierChangeEvent();
|
|
1131
|
-
}
|
|
1132
|
-
get enableGestures() {
|
|
1133
|
-
return this._data.enableGestures;
|
|
1134
|
-
}
|
|
1135
|
-
set enableGestures(value) {
|
|
1136
|
-
this._data.enableGestures = !!value;
|
|
1137
|
-
this.notifierChangeEvent();
|
|
1138
|
-
}
|
|
1139
|
-
get geometryType() {
|
|
1140
|
-
return this._data.geometryType;
|
|
1141
|
-
}
|
|
1142
|
-
set geometryType(value) {
|
|
1143
|
-
this._data.geometryType = value;
|
|
1144
|
-
this.notifierChangeEvent();
|
|
1145
|
-
}
|
|
1146
|
-
}
|
|
1147
|
-
|
|
1148
|
-
class Permission {
|
|
1149
|
-
constructor(data, fileId, httpClient) {
|
|
1150
|
-
this.httpClient = httpClient;
|
|
1151
|
-
this.fileId = fileId;
|
|
1152
|
-
this.data = data;
|
|
1153
|
-
}
|
|
1154
|
-
internalGet() {
|
|
1155
|
-
return this.httpClient.get(`/files/${this.fileId}/permissions/${this.id}`);
|
|
1156
|
-
}
|
|
1157
|
-
internalPut(body) {
|
|
1158
|
-
return this.httpClient.put(`/files/${this.fileId}/permissions/${this.id}`, body);
|
|
1159
|
-
}
|
|
1160
|
-
internalDelete() {
|
|
1161
|
-
return this.httpClient.delete(`/files/${this.fileId}/permissions/${this.id}`);
|
|
1162
|
-
}
|
|
1163
|
-
get actions() {
|
|
1164
|
-
return this.data.actions;
|
|
1165
|
-
}
|
|
1166
|
-
set actions(value) {
|
|
1167
|
-
this._data.actions = value;
|
|
1168
|
-
}
|
|
1169
|
-
get data() {
|
|
1170
|
-
return this._data;
|
|
1171
|
-
}
|
|
1172
|
-
set data(value) {
|
|
1173
|
-
this._data = value;
|
|
1174
|
-
}
|
|
1175
|
-
get id() {
|
|
1176
|
-
return this.data.id;
|
|
1177
|
-
}
|
|
1178
|
-
get grantedTo() {
|
|
1179
|
-
return this.data.grantedTo;
|
|
1180
|
-
}
|
|
1181
|
-
set grantedTo(value) {
|
|
1182
|
-
this.data.grantedTo = value;
|
|
1183
|
-
}
|
|
1184
|
-
get public() {
|
|
1185
|
-
return this.data.public;
|
|
1186
|
-
}
|
|
1187
|
-
set public(value) {
|
|
1188
|
-
this.data.public = value;
|
|
1189
|
-
}
|
|
1190
|
-
async checkout() {
|
|
1191
|
-
this.data = await json(this.internalGet());
|
|
1192
|
-
return this;
|
|
1193
|
-
}
|
|
1194
|
-
async update(data) {
|
|
1195
|
-
this.data = await json(this.internalPut(data));
|
|
1196
|
-
return this;
|
|
1197
|
-
}
|
|
1198
|
-
delete() {
|
|
1199
|
-
return json(this.internalDelete());
|
|
1200
|
-
}
|
|
1201
|
-
save() {
|
|
1202
|
-
return this.update(this.data);
|
|
1203
|
-
}
|
|
1204
|
-
}
|
|
1205
|
-
|
|
1206
|
-
class Job {
|
|
1207
|
-
constructor(data, httpClient) {
|
|
1208
|
-
this.httpClient = httpClient;
|
|
1209
|
-
this.data = data;
|
|
1210
|
-
}
|
|
1211
|
-
internalGet() {
|
|
1212
|
-
return this.httpClient.get(`/jobs/${this.data.id}`);
|
|
1213
|
-
}
|
|
1214
|
-
internalPut(body) {
|
|
1215
|
-
return this.httpClient.put(`/jobs/${this.data.id}`, body);
|
|
1216
|
-
}
|
|
1217
|
-
internalDelete() {
|
|
1218
|
-
return this.httpClient.delete(`/jobs/${this.data.id}`);
|
|
1219
|
-
}
|
|
1220
|
-
get assemblyId() {
|
|
1221
|
-
return this.data.assemblyId;
|
|
1222
|
-
}
|
|
1223
|
-
get authorId() {
|
|
1224
|
-
return this.data.authorId;
|
|
1225
|
-
}
|
|
1226
|
-
get createdAt() {
|
|
1227
|
-
return this.data.createdAt;
|
|
1228
|
-
}
|
|
1229
|
-
get data() {
|
|
1230
|
-
return this._data;
|
|
1231
|
-
}
|
|
1232
|
-
set data(value) {
|
|
1233
|
-
this._data = value;
|
|
1234
|
-
}
|
|
1235
|
-
get done() {
|
|
1236
|
-
return this.data.status === "done" || this.data.status === "failed";
|
|
1237
|
-
}
|
|
1238
|
-
get fileId() {
|
|
1239
|
-
return this.data.fileId;
|
|
1240
|
-
}
|
|
1241
|
-
get id() {
|
|
1242
|
-
return this.data.id;
|
|
1243
|
-
}
|
|
1244
|
-
get lastUpdate() {
|
|
1245
|
-
return this.data.lastUpdate;
|
|
1246
|
-
}
|
|
1247
|
-
get outputFormat() {
|
|
1248
|
-
return this.data.outputFormat;
|
|
1249
|
-
}
|
|
1250
|
-
get parameters() {
|
|
1251
|
-
return this.data.parameters;
|
|
1252
|
-
}
|
|
1253
|
-
get status() {
|
|
1254
|
-
return this.data.status;
|
|
1255
|
-
}
|
|
1256
|
-
get statusMessage() {
|
|
1257
|
-
return this.data.statusMessage;
|
|
1258
|
-
}
|
|
1259
|
-
get startedAt() {
|
|
1260
|
-
return this.data.startedAt;
|
|
1261
|
-
}
|
|
1262
|
-
async checkout() {
|
|
1263
|
-
this.data = await json(this.internalGet());
|
|
1264
|
-
return this;
|
|
1265
|
-
}
|
|
1266
|
-
async update(data) {
|
|
1267
|
-
this.data = await json(this.internalPut(data));
|
|
1268
|
-
return this;
|
|
977
|
+
async update(data) {
|
|
978
|
+
this.data = await json(this.internalPut(data));
|
|
979
|
+
return this;
|
|
1269
980
|
}
|
|
1270
981
|
delete() {
|
|
1271
982
|
return json(this.internalDelete());
|
|
@@ -2061,14 +1772,59 @@ class Client extends EventEmitter2 {
|
|
|
2061
1772
|
super();
|
|
2062
1773
|
this.configure(params);
|
|
2063
1774
|
this.eventEmitter = this;
|
|
2064
|
-
this._options = new Options(this);
|
|
2065
1775
|
this._user = null;
|
|
2066
1776
|
}
|
|
2067
1777
|
get serverUrl() {
|
|
2068
1778
|
return this._serverUrl;
|
|
2069
1779
|
}
|
|
2070
1780
|
get options() {
|
|
2071
|
-
|
|
1781
|
+
console.warn("Client.options has been deprecated since 25.3 and will be removed in a future release, use Viewer.options instead.");
|
|
1782
|
+
const data = {
|
|
1783
|
+
showWCS: true,
|
|
1784
|
+
cameraAnimation: true,
|
|
1785
|
+
antialiasing: true,
|
|
1786
|
+
groundShadow: false,
|
|
1787
|
+
shadows: false,
|
|
1788
|
+
cameraAxisXSpeed: 4,
|
|
1789
|
+
cameraAxisYSpeed: 1,
|
|
1790
|
+
ambientOcclusion: false,
|
|
1791
|
+
enableStreamingMode: true,
|
|
1792
|
+
enablePartialMode: false,
|
|
1793
|
+
memoryLimit: 3294967296,
|
|
1794
|
+
cuttingPlaneFillColor: {
|
|
1795
|
+
red: 255,
|
|
1796
|
+
green: 152,
|
|
1797
|
+
blue: 0
|
|
1798
|
+
},
|
|
1799
|
+
edgesColor: {
|
|
1800
|
+
r: 255,
|
|
1801
|
+
g: 152,
|
|
1802
|
+
b: 0
|
|
1803
|
+
},
|
|
1804
|
+
facesColor: {
|
|
1805
|
+
r: 255,
|
|
1806
|
+
g: 152,
|
|
1807
|
+
b: 0
|
|
1808
|
+
},
|
|
1809
|
+
edgesVisibility: true,
|
|
1810
|
+
edgesOverlap: true,
|
|
1811
|
+
facesOverlap: false,
|
|
1812
|
+
facesTransparancy: 200,
|
|
1813
|
+
enableCustomHighlight: true,
|
|
1814
|
+
sceneGraph: false,
|
|
1815
|
+
edgeModel: true,
|
|
1816
|
+
reverseZoomWheel: false,
|
|
1817
|
+
enableZoomWheel: true,
|
|
1818
|
+
enableGestures: true
|
|
1819
|
+
};
|
|
1820
|
+
return {
|
|
1821
|
+
...data,
|
|
1822
|
+
data: data,
|
|
1823
|
+
defaults: () => data,
|
|
1824
|
+
resetToDefaults: () => {},
|
|
1825
|
+
saveToStorage: () => {},
|
|
1826
|
+
loadFromStorage: () => {}
|
|
1827
|
+
};
|
|
2072
1828
|
}
|
|
2073
1829
|
configure(params) {
|
|
2074
1830
|
this._serverUrl = (params.serverUrl || "").replace(/\/+$/, "");
|
|
@@ -2080,7 +1836,7 @@ class Client extends EventEmitter2 {
|
|
|
2080
1836
|
return this._httpClient.get("/version").then((response => response.json())).then((data => ({
|
|
2081
1837
|
...data,
|
|
2082
1838
|
server: data.version,
|
|
2083
|
-
client: "25.3.
|
|
1839
|
+
client: "25.3.10"
|
|
2084
1840
|
})));
|
|
2085
1841
|
}
|
|
2086
1842
|
registerUser(email, password, userName) {
|
|
@@ -2213,7 +1969,7 @@ class Client extends EventEmitter2 {
|
|
|
2213
1969
|
});
|
|
2214
1970
|
(_a = params.onProgress) === null || _a === void 0 ? void 0 : _a.call(params, progress, file);
|
|
2215
1971
|
})).then((xhr => JSON.parse(xhr.responseText))).then((data => new File$1(data, this._httpClient)));
|
|
2216
|
-
const geometryType = typeof params.geometry === "string" ? params.geometry :
|
|
1972
|
+
const geometryType = typeof params.geometry === "string" ? params.geometry : "vsfx";
|
|
2217
1973
|
const jobs = [];
|
|
2218
1974
|
if (params.geometry) jobs.push((await result.extractGeometry(geometryType)).outputFormat);
|
|
2219
1975
|
if (params.properties) jobs.push((await result.extractProperties()).outputFormat);
|
|
@@ -2462,226 +2218,515 @@ class OdaGeAction {
|
|
|
2462
2218
|
toGeVector(v) {
|
|
2463
2219
|
return [ v.x, v.y, v.z ];
|
|
2464
2220
|
}
|
|
2465
|
-
toGePoint(point) {
|
|
2466
|
-
return [ point.x, point.y, point.z ];
|
|
2221
|
+
toGePoint(point) {
|
|
2222
|
+
return [ point.x, point.y, point.z ];
|
|
2223
|
+
}
|
|
2224
|
+
toPoint(gePoint) {
|
|
2225
|
+
return this.m_module.Point3d.createFromArray(gePoint);
|
|
2226
|
+
}
|
|
2227
|
+
screenToWorld(x, y) {
|
|
2228
|
+
return this.toPoint(this.m_module.getViewer().screenToWorld(x, y));
|
|
2229
|
+
}
|
|
2230
|
+
toDoubleArray(points) {
|
|
2231
|
+
const p = [];
|
|
2232
|
+
for (let i = 0; i < points.length; i++) {
|
|
2233
|
+
p.push(points[i].x);
|
|
2234
|
+
p.push(points[i].y);
|
|
2235
|
+
p.push(points[i].z);
|
|
2236
|
+
}
|
|
2237
|
+
return p;
|
|
2238
|
+
}
|
|
2239
|
+
correctCameraTarget() {
|
|
2240
|
+
const params = this.getViewParams();
|
|
2241
|
+
const ext = this.m_module.getViewer().getActiveExtents();
|
|
2242
|
+
const {min: min, max: max} = ext;
|
|
2243
|
+
const target = this.toPoint(params.target);
|
|
2244
|
+
const contains = target.x >= min.x && target.y >= min.y && target.z >= min.z && target.x <= max.x && target.y <= max.y && target.z <= max.z;
|
|
2245
|
+
if (!contains) {
|
|
2246
|
+
params.target = ext.center();
|
|
2247
|
+
this.setViewParams(params);
|
|
2248
|
+
}
|
|
2249
|
+
}
|
|
2250
|
+
}
|
|
2251
|
+
|
|
2252
|
+
const CLICK_DELTA = 5;
|
|
2253
|
+
|
|
2254
|
+
const INTERACTIVITY_FPS = 24;
|
|
2255
|
+
|
|
2256
|
+
class OdBaseDragger extends OdaGeAction {
|
|
2257
|
+
constructor(subject) {
|
|
2258
|
+
super(subject.visualizeJs);
|
|
2259
|
+
this.beginInteractivity = () => {
|
|
2260
|
+
const viewer = this.getViewer();
|
|
2261
|
+
const view = viewer.activeView;
|
|
2262
|
+
if (view["beginInteractivity"]) {
|
|
2263
|
+
view.beginInteractivity(INTERACTIVITY_FPS);
|
|
2264
|
+
this.subject.update();
|
|
2265
|
+
}
|
|
2266
|
+
view.delete();
|
|
2267
|
+
};
|
|
2268
|
+
this.endInteractivity = () => {
|
|
2269
|
+
const viewer = this.getViewer();
|
|
2270
|
+
const view = viewer.activeView;
|
|
2271
|
+
if (view["endInteractivity"]) {
|
|
2272
|
+
view.endInteractivity();
|
|
2273
|
+
const device = this.getViewer().getActiveDevice();
|
|
2274
|
+
const canvas = this.m_module.canvas;
|
|
2275
|
+
device.invalidate([ 0, 0, canvas.width, canvas.height ]);
|
|
2276
|
+
device.delete();
|
|
2277
|
+
this.subject.update();
|
|
2278
|
+
}
|
|
2279
|
+
view.delete();
|
|
2280
|
+
};
|
|
2281
|
+
this.subject = subject;
|
|
2282
|
+
this.needInputText = false;
|
|
2283
|
+
this.mouseDownPosition = {
|
|
2284
|
+
x: 0,
|
|
2285
|
+
y: 0
|
|
2286
|
+
};
|
|
2287
|
+
this.autoSelect = false;
|
|
2288
|
+
this.onmessage = event => this.subject.emitEvent(event);
|
|
2289
|
+
this.canvasEvents = CANVAS_EVENTS;
|
|
2290
|
+
}
|
|
2291
|
+
initialize() {
|
|
2292
|
+
this.canvasEvents = this.canvasEvents.filter((x => typeof this[x] === "function"));
|
|
2293
|
+
this.canvasEvents.forEach((x => this[x] = this[x].bind(this)));
|
|
2294
|
+
this.canvasEvents.forEach((x => this.subject.on(x, this[x])));
|
|
2295
|
+
this.getViewer().setEnableAutoSelect(!!this.autoSelect);
|
|
2296
|
+
}
|
|
2297
|
+
dispose() {
|
|
2298
|
+
this.canvasEvents.forEach((x => this.subject.off(x, this[x])));
|
|
2299
|
+
}
|
|
2300
|
+
relativeCoords(event) {
|
|
2301
|
+
return {
|
|
2302
|
+
x: event.offsetX * window.devicePixelRatio,
|
|
2303
|
+
y: event.offsetY * window.devicePixelRatio
|
|
2304
|
+
};
|
|
2305
|
+
}
|
|
2306
|
+
pointerdown(ev) {
|
|
2307
|
+
if (!ev.isPrimary || OdBaseDragger.isGestureActive) {
|
|
2308
|
+
return;
|
|
2309
|
+
}
|
|
2310
|
+
ev.target.setPointerCapture(ev.pointerId);
|
|
2311
|
+
const relCoord = this.relativeCoords(ev);
|
|
2312
|
+
this.isDragging = true;
|
|
2313
|
+
this.mouseDownPosition = {
|
|
2314
|
+
x: relCoord.x,
|
|
2315
|
+
y: relCoord.y
|
|
2316
|
+
};
|
|
2317
|
+
this.start(relCoord.x, relCoord.y, ev.clientX, ev.clientY);
|
|
2318
|
+
this.subject.update();
|
|
2319
|
+
}
|
|
2320
|
+
pointerup(ev) {
|
|
2321
|
+
if (OdBaseDragger.needSkipPointerUp) {
|
|
2322
|
+
return;
|
|
2323
|
+
}
|
|
2324
|
+
if (!ev.isPrimary) {
|
|
2325
|
+
return;
|
|
2326
|
+
}
|
|
2327
|
+
ev.target.releasePointerCapture(ev.pointerId);
|
|
2328
|
+
const relCoord = this.relativeCoords(ev);
|
|
2329
|
+
this.end(relCoord.x, relCoord.y);
|
|
2330
|
+
this.isDragging = false;
|
|
2331
|
+
this.subject.update();
|
|
2332
|
+
}
|
|
2333
|
+
pointercancel(ev) {
|
|
2334
|
+
if (!ev.isPrimary) {
|
|
2335
|
+
return;
|
|
2336
|
+
}
|
|
2337
|
+
this.m_module.canvas.dispatchEvent(new PointerEvent("pointerup", ev));
|
|
2338
|
+
}
|
|
2339
|
+
pointermove(ev) {
|
|
2340
|
+
if (!ev.isPrimary || OdBaseDragger.isGestureActive) {
|
|
2341
|
+
return;
|
|
2342
|
+
}
|
|
2343
|
+
const relCoord = this.relativeCoords(ev);
|
|
2344
|
+
this.drag(relCoord.x, relCoord.y, ev.movementX, ev.movementY);
|
|
2345
|
+
if (this.isDragging) {
|
|
2346
|
+
this.subject.update();
|
|
2347
|
+
}
|
|
2348
|
+
}
|
|
2349
|
+
click(ev) {
|
|
2350
|
+
const viewer = this.getViewer();
|
|
2351
|
+
const relCoord = this.relativeCoords(ev);
|
|
2352
|
+
const x = relCoord.x;
|
|
2353
|
+
const y = relCoord.y;
|
|
2354
|
+
const isNotDragging = Math.abs(x - this.mouseDownPosition.x) < CLICK_DELTA && Math.abs(y - this.mouseDownPosition.y) < CLICK_DELTA;
|
|
2355
|
+
if (viewer && viewer.getEnableAutoSelect() && isNotDragging) {
|
|
2356
|
+
viewer.unselect();
|
|
2357
|
+
viewer.select(x, y, x, y);
|
|
2358
|
+
this.subject.update();
|
|
2359
|
+
const selectionSet = viewer.getSelected();
|
|
2360
|
+
const handles = this.subject.getSelected();
|
|
2361
|
+
this.onmessage({
|
|
2362
|
+
type: "select",
|
|
2363
|
+
data: selectionSet,
|
|
2364
|
+
handles: handles
|
|
2365
|
+
});
|
|
2366
|
+
}
|
|
2367
|
+
}
|
|
2368
|
+
dblclick(ev) {
|
|
2369
|
+
const viewer = this.getViewer();
|
|
2370
|
+
const relCoord = this.relativeCoords(ev);
|
|
2371
|
+
const x = relCoord.x;
|
|
2372
|
+
const y = relCoord.y;
|
|
2373
|
+
const device = viewer.getActiveDevice();
|
|
2374
|
+
const clickView = device.viewAt([ x, y ]);
|
|
2375
|
+
if (clickView && !clickView.active) {
|
|
2376
|
+
viewer.activeView = clickView;
|
|
2377
|
+
clickView.delete();
|
|
2378
|
+
this.subject.update();
|
|
2379
|
+
} else {
|
|
2380
|
+
if (viewer && viewer.getEnableAutoSelect()) {
|
|
2381
|
+
const pSelected = viewer.getSelected();
|
|
2382
|
+
if (!pSelected.isNull() && pSelected.numItems() !== 0) {
|
|
2383
|
+
const itr = pSelected.getIterator();
|
|
2384
|
+
const entity = itr.getEntity();
|
|
2385
|
+
viewer.zoomToEntity(entity);
|
|
2386
|
+
this.onmessage({
|
|
2387
|
+
type: "zoomtoentity",
|
|
2388
|
+
data: entity
|
|
2389
|
+
});
|
|
2390
|
+
this.subject.update();
|
|
2391
|
+
this.deleteAll([ itr, entity ]);
|
|
2392
|
+
}
|
|
2393
|
+
}
|
|
2394
|
+
}
|
|
2395
|
+
device.delete();
|
|
2396
|
+
}
|
|
2397
|
+
start(x, y, absoluteX = 0, absoluteY = 0) {}
|
|
2398
|
+
drag(x, y, absoluteX = 0, absoluteY = 0) {}
|
|
2399
|
+
end(x, y) {}
|
|
2400
|
+
getActiveMarkupEntity(entityName) {
|
|
2401
|
+
return this.subject.addMarkupEntity(entityName);
|
|
2402
|
+
}
|
|
2403
|
+
syncOverlayView() {
|
|
2404
|
+
return this.subject.syncOverlay();
|
|
2405
|
+
}
|
|
2406
|
+
deleteAll(objects) {
|
|
2407
|
+
var _a;
|
|
2408
|
+
for (const obj of objects) {
|
|
2409
|
+
(_a = obj === null || obj === void 0 ? void 0 : obj.delete) === null || _a === void 0 ? void 0 : _a.call(obj);
|
|
2410
|
+
}
|
|
2411
|
+
}
|
|
2412
|
+
updatePreview() {}
|
|
2413
|
+
static set isGestureActive(value) {
|
|
2414
|
+
if (OdBaseDragger._isGestureActive === value) {
|
|
2415
|
+
return;
|
|
2416
|
+
}
|
|
2417
|
+
OdBaseDragger._isGestureActive = value;
|
|
2418
|
+
if (OdBaseDragger._isGestureActive) {
|
|
2419
|
+
OdBaseDragger.needSkipPointerUp = true;
|
|
2420
|
+
}
|
|
2421
|
+
}
|
|
2422
|
+
static get isGestureActive() {
|
|
2423
|
+
return OdBaseDragger._isGestureActive;
|
|
2424
|
+
}
|
|
2425
|
+
static get needSkipPointerUp() {
|
|
2426
|
+
if (OdBaseDragger._needSkipPointerUp) {
|
|
2427
|
+
OdBaseDragger.needSkipPointerUp = false;
|
|
2428
|
+
return true;
|
|
2429
|
+
}
|
|
2430
|
+
return false;
|
|
2431
|
+
}
|
|
2432
|
+
static set needSkipPointerUp(value) {
|
|
2433
|
+
OdBaseDragger._needSkipPointerUp = value;
|
|
2434
|
+
}
|
|
2435
|
+
}
|
|
2436
|
+
|
|
2437
|
+
OdBaseDragger._isGestureActive = false;
|
|
2438
|
+
|
|
2439
|
+
OdBaseDragger._needSkipPointerUp = false;
|
|
2440
|
+
|
|
2441
|
+
class Options {
|
|
2442
|
+
constructor(emitter) {
|
|
2443
|
+
this._emitter = emitter;
|
|
2444
|
+
this._data = Options.defaults();
|
|
2445
|
+
this.loadFromStorage();
|
|
2446
|
+
}
|
|
2447
|
+
static defaults() {
|
|
2448
|
+
return {
|
|
2449
|
+
showWCS: true,
|
|
2450
|
+
cameraAnimation: true,
|
|
2451
|
+
antialiasing: true,
|
|
2452
|
+
groundShadow: false,
|
|
2453
|
+
shadows: false,
|
|
2454
|
+
cameraAxisXSpeed: 4,
|
|
2455
|
+
cameraAxisYSpeed: 1,
|
|
2456
|
+
ambientOcclusion: false,
|
|
2457
|
+
enableStreamingMode: true,
|
|
2458
|
+
enablePartialMode: false,
|
|
2459
|
+
memoryLimit: 3294967296,
|
|
2460
|
+
cuttingPlaneFillColor: {
|
|
2461
|
+
red: 255,
|
|
2462
|
+
green: 152,
|
|
2463
|
+
blue: 0
|
|
2464
|
+
},
|
|
2465
|
+
edgesColor: {
|
|
2466
|
+
r: 255,
|
|
2467
|
+
g: 152,
|
|
2468
|
+
b: 0
|
|
2469
|
+
},
|
|
2470
|
+
facesColor: {
|
|
2471
|
+
r: 255,
|
|
2472
|
+
g: 152,
|
|
2473
|
+
b: 0
|
|
2474
|
+
},
|
|
2475
|
+
edgesVisibility: true,
|
|
2476
|
+
edgesOverlap: true,
|
|
2477
|
+
facesOverlap: false,
|
|
2478
|
+
facesTransparancy: 200,
|
|
2479
|
+
enableCustomHighlight: true,
|
|
2480
|
+
sceneGraph: false,
|
|
2481
|
+
edgeModel: true,
|
|
2482
|
+
reverseZoomWheel: false,
|
|
2483
|
+
enableZoomWheel: true,
|
|
2484
|
+
enableGestures: true,
|
|
2485
|
+
geometryType: "vsfx"
|
|
2486
|
+
};
|
|
2487
|
+
}
|
|
2488
|
+
notifierChangeEvent() {
|
|
2489
|
+
if (this._emitter !== undefined) {
|
|
2490
|
+
this.saveToStorage();
|
|
2491
|
+
this._emitter.emit({
|
|
2492
|
+
type: "optionschange",
|
|
2493
|
+
data: this
|
|
2494
|
+
});
|
|
2495
|
+
}
|
|
2496
|
+
}
|
|
2497
|
+
saveToStorage() {
|
|
2498
|
+
if (typeof window !== "undefined") try {
|
|
2499
|
+
localStorage.setItem("od-client-settings", JSON.stringify(this.data));
|
|
2500
|
+
} catch (error) {
|
|
2501
|
+
console.error("Cannot save client settings.", error);
|
|
2502
|
+
}
|
|
2503
|
+
}
|
|
2504
|
+
loadFromStorage() {
|
|
2505
|
+
if (typeof window !== "undefined") try {
|
|
2506
|
+
const item = localStorage.getItem("od-client-settings");
|
|
2507
|
+
if (item) {
|
|
2508
|
+
const data = JSON.parse(item);
|
|
2509
|
+
this.data = {
|
|
2510
|
+
...data
|
|
2511
|
+
};
|
|
2512
|
+
}
|
|
2513
|
+
} catch (error) {
|
|
2514
|
+
console.error("Cannot load client settings.", error);
|
|
2515
|
+
}
|
|
2516
|
+
}
|
|
2517
|
+
resetToDefaults(fields) {
|
|
2518
|
+
if (fields !== undefined) {
|
|
2519
|
+
const defaults = Options.defaults();
|
|
2520
|
+
const resetData = fields.reduce(((acc, field) => {
|
|
2521
|
+
acc[field] = defaults[field];
|
|
2522
|
+
return acc;
|
|
2523
|
+
}), {});
|
|
2524
|
+
this.data = {
|
|
2525
|
+
...this.data,
|
|
2526
|
+
...resetData
|
|
2527
|
+
};
|
|
2528
|
+
} else {
|
|
2529
|
+
this.data = {
|
|
2530
|
+
...this.data,
|
|
2531
|
+
...Options.defaults()
|
|
2532
|
+
};
|
|
2533
|
+
}
|
|
2534
|
+
}
|
|
2535
|
+
get data() {
|
|
2536
|
+
return this._data;
|
|
2537
|
+
}
|
|
2538
|
+
set data(value) {
|
|
2539
|
+
const sceneGraph = value.enablePartialMode ? false : value.sceneGraph;
|
|
2540
|
+
this._data = {
|
|
2541
|
+
...Options.defaults(),
|
|
2542
|
+
...this._data,
|
|
2543
|
+
...value,
|
|
2544
|
+
sceneGraph: sceneGraph
|
|
2545
|
+
};
|
|
2546
|
+
this.notifierChangeEvent();
|
|
2547
|
+
}
|
|
2548
|
+
get showWCS() {
|
|
2549
|
+
return this._data.showWCS;
|
|
2550
|
+
}
|
|
2551
|
+
set showWCS(value) {
|
|
2552
|
+
this._data.showWCS = value;
|
|
2553
|
+
this.notifierChangeEvent();
|
|
2554
|
+
}
|
|
2555
|
+
get cameraAnimation() {
|
|
2556
|
+
return this._data.cameraAnimation;
|
|
2557
|
+
}
|
|
2558
|
+
set cameraAnimation(value) {
|
|
2559
|
+
this._data.cameraAnimation = value;
|
|
2560
|
+
this.notifierChangeEvent();
|
|
2561
|
+
}
|
|
2562
|
+
get antialiasing() {
|
|
2563
|
+
return this._data.antialiasing;
|
|
2564
|
+
}
|
|
2565
|
+
set antialiasing(value) {
|
|
2566
|
+
this._data.antialiasing = value;
|
|
2567
|
+
this.notifierChangeEvent();
|
|
2568
|
+
}
|
|
2569
|
+
get groundShadow() {
|
|
2570
|
+
return this._data.groundShadow;
|
|
2571
|
+
}
|
|
2572
|
+
set groundShadow(value) {
|
|
2573
|
+
this._data.groundShadow = value;
|
|
2574
|
+
this.notifierChangeEvent();
|
|
2575
|
+
}
|
|
2576
|
+
get shadows() {
|
|
2577
|
+
return this._data.shadows;
|
|
2578
|
+
}
|
|
2579
|
+
set shadows(value) {
|
|
2580
|
+
this._data.shadows = value;
|
|
2581
|
+
this.notifierChangeEvent();
|
|
2582
|
+
}
|
|
2583
|
+
get cameraAxisXSpeed() {
|
|
2584
|
+
return this._data.cameraAxisXSpeed;
|
|
2585
|
+
}
|
|
2586
|
+
set cameraAxisXSpeed(value) {
|
|
2587
|
+
this._data.cameraAxisXSpeed = value;
|
|
2588
|
+
this.notifierChangeEvent();
|
|
2589
|
+
}
|
|
2590
|
+
get cameraAxisYSpeed() {
|
|
2591
|
+
return this._data.cameraAxisYSpeed;
|
|
2592
|
+
}
|
|
2593
|
+
set cameraAxisYSpeed(value) {
|
|
2594
|
+
this.cameraAxisYSpeed = value;
|
|
2595
|
+
this.notifierChangeEvent();
|
|
2596
|
+
}
|
|
2597
|
+
get ambientOcclusion() {
|
|
2598
|
+
return this._data.ambientOcclusion;
|
|
2599
|
+
}
|
|
2600
|
+
set ambientOcclusion(value) {
|
|
2601
|
+
this._data.ambientOcclusion = value;
|
|
2602
|
+
this.notifierChangeEvent();
|
|
2603
|
+
}
|
|
2604
|
+
get enableStreamingMode() {
|
|
2605
|
+
return this._data.enableStreamingMode;
|
|
2606
|
+
}
|
|
2607
|
+
set enableStreamingMode(value) {
|
|
2608
|
+
this._data.enableStreamingMode = value;
|
|
2609
|
+
if (this._data.enableStreamingMode) {
|
|
2610
|
+
this._data.enablePartialMode = false;
|
|
2611
|
+
}
|
|
2612
|
+
this.notifierChangeEvent();
|
|
2613
|
+
}
|
|
2614
|
+
get enablePartialMode() {
|
|
2615
|
+
return this._data.enablePartialMode;
|
|
2616
|
+
}
|
|
2617
|
+
set enablePartialMode(value) {
|
|
2618
|
+
this._data.enablePartialMode = value;
|
|
2619
|
+
if (value) this._data.sceneGraph = false;
|
|
2620
|
+
this.notifierChangeEvent();
|
|
2621
|
+
}
|
|
2622
|
+
get memoryLimit() {
|
|
2623
|
+
return this._data.memoryLimit;
|
|
2624
|
+
}
|
|
2625
|
+
set memoryLimit(value) {
|
|
2626
|
+
this._data.memoryLimit = value;
|
|
2627
|
+
this.notifierChangeEvent();
|
|
2628
|
+
}
|
|
2629
|
+
get cuttingPlaneFillColor() {
|
|
2630
|
+
return this._data.cuttingPlaneFillColor;
|
|
2631
|
+
}
|
|
2632
|
+
set cuttingPlaneFillColor(value) {
|
|
2633
|
+
this._data.cuttingPlaneFillColor = value;
|
|
2634
|
+
this.notifierChangeEvent();
|
|
2635
|
+
}
|
|
2636
|
+
get edgesColor() {
|
|
2637
|
+
return this._data.edgesColor;
|
|
2638
|
+
}
|
|
2639
|
+
set edgesColor(value) {
|
|
2640
|
+
this._data.edgesColor = value;
|
|
2641
|
+
this.notifierChangeEvent();
|
|
2642
|
+
}
|
|
2643
|
+
get facesColor() {
|
|
2644
|
+
return this._data.facesColor;
|
|
2645
|
+
}
|
|
2646
|
+
set facesColor(value) {
|
|
2647
|
+
this._data.facesColor = value;
|
|
2648
|
+
this.notifierChangeEvent();
|
|
2649
|
+
}
|
|
2650
|
+
get edgesVisibility() {
|
|
2651
|
+
return this._data.edgesVisibility;
|
|
2467
2652
|
}
|
|
2468
|
-
|
|
2469
|
-
|
|
2653
|
+
set edgesVisibility(value) {
|
|
2654
|
+
this._data.edgesVisibility = value;
|
|
2655
|
+
this.notifierChangeEvent();
|
|
2470
2656
|
}
|
|
2471
|
-
|
|
2472
|
-
return this.
|
|
2657
|
+
get edgesOverlap() {
|
|
2658
|
+
return this._data.edgesOverlap;
|
|
2473
2659
|
}
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
p.push(points[i].x);
|
|
2478
|
-
p.push(points[i].y);
|
|
2479
|
-
p.push(points[i].z);
|
|
2480
|
-
}
|
|
2481
|
-
return p;
|
|
2660
|
+
set edgesOverlap(value) {
|
|
2661
|
+
this._data.edgesOverlap = value;
|
|
2662
|
+
this.notifierChangeEvent();
|
|
2482
2663
|
}
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
const ext = this.m_module.getViewer().getActiveExtents();
|
|
2486
|
-
const {min: min, max: max} = ext;
|
|
2487
|
-
const target = this.toPoint(params.target);
|
|
2488
|
-
const contains = target.x >= min.x && target.y >= min.y && target.z >= min.z && target.x <= max.x && target.y <= max.y && target.z <= max.z;
|
|
2489
|
-
if (!contains) {
|
|
2490
|
-
params.target = ext.center();
|
|
2491
|
-
this.setViewParams(params);
|
|
2492
|
-
}
|
|
2664
|
+
get facesOverlap() {
|
|
2665
|
+
return this._data.facesOverlap;
|
|
2493
2666
|
}
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
const INTERACTIVITY_FPS = 24;
|
|
2499
|
-
|
|
2500
|
-
class OdBaseDragger extends OdaGeAction {
|
|
2501
|
-
constructor(subject) {
|
|
2502
|
-
super(subject.visualizeJs);
|
|
2503
|
-
this.beginInteractivity = () => {
|
|
2504
|
-
const viewer = this.getViewer();
|
|
2505
|
-
const view = viewer.activeView;
|
|
2506
|
-
if (view["beginInteractivity"]) {
|
|
2507
|
-
view.beginInteractivity(INTERACTIVITY_FPS);
|
|
2508
|
-
this.subject.update();
|
|
2509
|
-
}
|
|
2510
|
-
view.delete();
|
|
2511
|
-
};
|
|
2512
|
-
this.endInteractivity = () => {
|
|
2513
|
-
const viewer = this.getViewer();
|
|
2514
|
-
const view = viewer.activeView;
|
|
2515
|
-
if (view["endInteractivity"]) {
|
|
2516
|
-
view.endInteractivity();
|
|
2517
|
-
const device = this.getViewer().getActiveDevice();
|
|
2518
|
-
const canvas = this.m_module.canvas;
|
|
2519
|
-
device.invalidate([ 0, 0, canvas.width, canvas.height ]);
|
|
2520
|
-
device.delete();
|
|
2521
|
-
this.subject.update();
|
|
2522
|
-
}
|
|
2523
|
-
view.delete();
|
|
2524
|
-
};
|
|
2525
|
-
this.subject = subject;
|
|
2526
|
-
this.needInputText = false;
|
|
2527
|
-
this.mouseDownPosition = {
|
|
2528
|
-
x: 0,
|
|
2529
|
-
y: 0
|
|
2530
|
-
};
|
|
2531
|
-
this.autoSelect = false;
|
|
2532
|
-
this.onmessage = event => this.subject.emitEvent(event);
|
|
2533
|
-
this.canvasEvents = CANVAS_EVENTS;
|
|
2667
|
+
set facesOverlap(value) {
|
|
2668
|
+
this._data.facesOverlap = value;
|
|
2669
|
+
this.notifierChangeEvent();
|
|
2534
2670
|
}
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
this.canvasEvents.forEach((x => this[x] = this[x].bind(this)));
|
|
2538
|
-
this.canvasEvents.forEach((x => this.subject.on(x, this[x])));
|
|
2539
|
-
this.getViewer().setEnableAutoSelect(!!this.autoSelect);
|
|
2671
|
+
get facesTransparancy() {
|
|
2672
|
+
return this._data.facesTransparancy;
|
|
2540
2673
|
}
|
|
2541
|
-
|
|
2542
|
-
this.
|
|
2674
|
+
set facesTransparancy(value) {
|
|
2675
|
+
this._data.facesTransparancy = value;
|
|
2676
|
+
this.notifierChangeEvent();
|
|
2543
2677
|
}
|
|
2544
|
-
|
|
2545
|
-
return
|
|
2546
|
-
x: event.offsetX * window.devicePixelRatio,
|
|
2547
|
-
y: event.offsetY * window.devicePixelRatio
|
|
2548
|
-
};
|
|
2678
|
+
get enableCustomHighlight() {
|
|
2679
|
+
return this._data.enableCustomHighlight;
|
|
2549
2680
|
}
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
|
|
2553
|
-
}
|
|
2554
|
-
ev.target.setPointerCapture(ev.pointerId);
|
|
2555
|
-
const relCoord = this.relativeCoords(ev);
|
|
2556
|
-
this.isDragging = true;
|
|
2557
|
-
this.mouseDownPosition = {
|
|
2558
|
-
x: relCoord.x,
|
|
2559
|
-
y: relCoord.y
|
|
2560
|
-
};
|
|
2561
|
-
this.start(relCoord.x, relCoord.y, ev.clientX, ev.clientY);
|
|
2562
|
-
this.subject.update();
|
|
2681
|
+
set enableCustomHighlight(value) {
|
|
2682
|
+
this._data.enableCustomHighlight = value;
|
|
2683
|
+
this.notifierChangeEvent();
|
|
2563
2684
|
}
|
|
2564
|
-
|
|
2565
|
-
|
|
2566
|
-
return;
|
|
2567
|
-
}
|
|
2568
|
-
if (!ev.isPrimary) {
|
|
2569
|
-
return;
|
|
2570
|
-
}
|
|
2571
|
-
ev.target.releasePointerCapture(ev.pointerId);
|
|
2572
|
-
const relCoord = this.relativeCoords(ev);
|
|
2573
|
-
this.end(relCoord.x, relCoord.y);
|
|
2574
|
-
this.isDragging = false;
|
|
2575
|
-
this.subject.update();
|
|
2685
|
+
get sceneGraph() {
|
|
2686
|
+
return this._data.sceneGraph;
|
|
2576
2687
|
}
|
|
2577
|
-
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
this.m_module.canvas.dispatchEvent(new PointerEvent("pointerup", ev));
|
|
2688
|
+
set sceneGraph(value) {
|
|
2689
|
+
this._data.sceneGraph = value;
|
|
2690
|
+
if (value) this._data.enablePartialMode = false;
|
|
2691
|
+
this.notifierChangeEvent();
|
|
2582
2692
|
}
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
return;
|
|
2586
|
-
}
|
|
2587
|
-
const relCoord = this.relativeCoords(ev);
|
|
2588
|
-
this.drag(relCoord.x, relCoord.y, ev.movementX, ev.movementY);
|
|
2589
|
-
if (this.isDragging) {
|
|
2590
|
-
this.subject.update();
|
|
2591
|
-
}
|
|
2693
|
+
get edgeModel() {
|
|
2694
|
+
return Boolean(this._data.edgeModel);
|
|
2592
2695
|
}
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
const x = relCoord.x;
|
|
2597
|
-
const y = relCoord.y;
|
|
2598
|
-
const isNotDragging = Math.abs(x - this.mouseDownPosition.x) < CLICK_DELTA && Math.abs(y - this.mouseDownPosition.y) < CLICK_DELTA;
|
|
2599
|
-
if (viewer && viewer.getEnableAutoSelect() && isNotDragging) {
|
|
2600
|
-
viewer.unselect();
|
|
2601
|
-
viewer.select(x, y, x, y);
|
|
2602
|
-
this.subject.update();
|
|
2603
|
-
const selectionSet = viewer.getSelected();
|
|
2604
|
-
const handles = this.subject.getSelected();
|
|
2605
|
-
this.onmessage({
|
|
2606
|
-
type: "select",
|
|
2607
|
-
data: selectionSet,
|
|
2608
|
-
handles: handles
|
|
2609
|
-
});
|
|
2610
|
-
}
|
|
2696
|
+
set edgeModel(value) {
|
|
2697
|
+
this._data.edgeModel = Boolean(value);
|
|
2698
|
+
this.notifierChangeEvent();
|
|
2611
2699
|
}
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
const relCoord = this.relativeCoords(ev);
|
|
2615
|
-
const x = relCoord.x;
|
|
2616
|
-
const y = relCoord.y;
|
|
2617
|
-
const device = viewer.getActiveDevice();
|
|
2618
|
-
const clickView = device.viewAt([ x, y ]);
|
|
2619
|
-
if (clickView && !clickView.active) {
|
|
2620
|
-
viewer.activeView = clickView;
|
|
2621
|
-
clickView.delete();
|
|
2622
|
-
this.subject.update();
|
|
2623
|
-
} else {
|
|
2624
|
-
if (viewer && viewer.getEnableAutoSelect()) {
|
|
2625
|
-
const pSelected = viewer.getSelected();
|
|
2626
|
-
if (!pSelected.isNull() && pSelected.numItems() !== 0) {
|
|
2627
|
-
const itr = pSelected.getIterator();
|
|
2628
|
-
const entity = itr.getEntity();
|
|
2629
|
-
viewer.zoomToEntity(entity);
|
|
2630
|
-
this.onmessage({
|
|
2631
|
-
type: "zoomtoentity",
|
|
2632
|
-
data: entity
|
|
2633
|
-
});
|
|
2634
|
-
this.subject.update();
|
|
2635
|
-
this.deleteAll([ itr, entity ]);
|
|
2636
|
-
}
|
|
2637
|
-
}
|
|
2638
|
-
}
|
|
2639
|
-
device.delete();
|
|
2700
|
+
get reverseZoomWheel() {
|
|
2701
|
+
return this._data.reverseZoomWheel;
|
|
2640
2702
|
}
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
getActiveMarkupEntity(entityName) {
|
|
2645
|
-
return this.subject.addMarkupEntity(entityName);
|
|
2703
|
+
set reverseZoomWheel(value) {
|
|
2704
|
+
this._data.reverseZoomWheel = !!value;
|
|
2705
|
+
this.notifierChangeEvent();
|
|
2646
2706
|
}
|
|
2647
|
-
|
|
2648
|
-
return this.
|
|
2707
|
+
get enableZoomWheel() {
|
|
2708
|
+
return this._data.enableZoomWheel;
|
|
2649
2709
|
}
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
(_a = obj === null || obj === void 0 ? void 0 : obj.delete) === null || _a === void 0 ? void 0 : _a.call(obj);
|
|
2654
|
-
}
|
|
2710
|
+
set enableZoomWheel(value) {
|
|
2711
|
+
this._data.enableZoomWheel = !!value;
|
|
2712
|
+
this.notifierChangeEvent();
|
|
2655
2713
|
}
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
if (OdBaseDragger._isGestureActive === value) {
|
|
2659
|
-
return;
|
|
2660
|
-
}
|
|
2661
|
-
OdBaseDragger._isGestureActive = value;
|
|
2662
|
-
if (OdBaseDragger._isGestureActive) {
|
|
2663
|
-
OdBaseDragger.needSkipPointerUp = true;
|
|
2664
|
-
}
|
|
2714
|
+
get enableGestures() {
|
|
2715
|
+
return this._data.enableGestures;
|
|
2665
2716
|
}
|
|
2666
|
-
|
|
2667
|
-
|
|
2717
|
+
set enableGestures(value) {
|
|
2718
|
+
this._data.enableGestures = !!value;
|
|
2719
|
+
this.notifierChangeEvent();
|
|
2668
2720
|
}
|
|
2669
|
-
|
|
2670
|
-
|
|
2671
|
-
OdBaseDragger.needSkipPointerUp = false;
|
|
2672
|
-
return true;
|
|
2673
|
-
}
|
|
2674
|
-
return false;
|
|
2721
|
+
get geometryType() {
|
|
2722
|
+
return this._data.geometryType;
|
|
2675
2723
|
}
|
|
2676
|
-
|
|
2677
|
-
|
|
2724
|
+
set geometryType(value) {
|
|
2725
|
+
this._data.geometryType = value;
|
|
2726
|
+
this.notifierChangeEvent();
|
|
2678
2727
|
}
|
|
2679
2728
|
}
|
|
2680
2729
|
|
|
2681
|
-
OdBaseDragger._isGestureActive = false;
|
|
2682
|
-
|
|
2683
|
-
OdBaseDragger._needSkipPointerUp = false;
|
|
2684
|
-
|
|
2685
2730
|
function createHtmlElementIfNeed(element, targetElement, dataTestId) {
|
|
2686
2731
|
if (!element) {
|
|
2687
2732
|
element = document.createElement("div");
|
|
@@ -6593,7 +6638,6 @@ class Viewer extends EventEmitter2 {
|
|
|
6593
6638
|
this.configure(params);
|
|
6594
6639
|
this._options = new Options(this);
|
|
6595
6640
|
this.client = client;
|
|
6596
|
-
this.clientoptionschange = event => this._options.data = event.data.data;
|
|
6597
6641
|
this._activeDragger = null;
|
|
6598
6642
|
this._renderTime = 0;
|
|
6599
6643
|
this.markup = MarkupFactory.createMarkup((_a = params.markupType) !== null && _a !== void 0 ? _a : MarkupType.Konva);
|
|
@@ -6631,10 +6675,6 @@ class Viewer extends EventEmitter2 {
|
|
|
6631
6675
|
return this;
|
|
6632
6676
|
}
|
|
6633
6677
|
async initialize(canvas, onProgress) {
|
|
6634
|
-
if (this.client) {
|
|
6635
|
-
this.client.addEventListener("optionschange", this.clientoptionschange);
|
|
6636
|
-
this.options.data = this.client.options.data;
|
|
6637
|
-
}
|
|
6638
6678
|
this.addEventListener("optionschange", (event => this.syncOptions(event.data)));
|
|
6639
6679
|
if (canvas.style.width === "" && canvas.style.height === "") {
|
|
6640
6680
|
canvas.style.width = "100%";
|
|
@@ -6676,7 +6716,7 @@ class Viewer extends EventEmitter2 {
|
|
|
6676
6716
|
return this;
|
|
6677
6717
|
}
|
|
6678
6718
|
dispose() {
|
|
6679
|
-
var _a, _b, _c, _d
|
|
6719
|
+
var _a, _b, _c, _d;
|
|
6680
6720
|
this.cancel();
|
|
6681
6721
|
this.emitEvent({
|
|
6682
6722
|
type: "dispose"
|
|
@@ -6697,7 +6737,6 @@ class Viewer extends EventEmitter2 {
|
|
|
6697
6737
|
this.canvas = undefined;
|
|
6698
6738
|
(_d = this.visualizeJs) === null || _d === void 0 ? void 0 : _d.getViewer().clear();
|
|
6699
6739
|
this.visualizeJs = undefined;
|
|
6700
|
-
(_e = this.client) === null || _e === void 0 ? void 0 : _e.removeEventListener("optionschange", this.clientoptionschange);
|
|
6701
6740
|
return this;
|
|
6702
6741
|
}
|
|
6703
6742
|
isInitialized() {
|
|
@@ -7612,7 +7651,7 @@ function zoomToSelected(viewer) {
|
|
|
7612
7651
|
|
|
7613
7652
|
commands("VisualizeJS").registerCommand("zoomToSelected", zoomToSelected);
|
|
7614
7653
|
|
|
7615
|
-
const version = "25.3.
|
|
7654
|
+
const version = "25.3.10";
|
|
7616
7655
|
|
|
7617
7656
|
export { Assembly, CANVAS_EVENTS, ClashTest, Client, EventEmitter2, File$1 as File, Job, Member, Model, OdBaseDragger, Options, Permission, Project, Role, User, Viewer, Viewer as VisualizejsViewer, commands, version };
|
|
7618
7657
|
//# sourceMappingURL=client.module.js.map
|