Methods
(static) Initialize(container, getAccessToken) → {Promise.<Utilities>}
Parameters:
Name | Type | Description |
---|---|---|
container |
HTMLElement |
Target container for the viewer canvas. |
getAccessToken |
AccessTokenRequest |
Function that will be called by the viewer whenever a new access token is required. |
- Source:
Examples
function getAccessToken(callback) {
fetch('/api/forge/auth/token')
.then(resp => resp.json())
.then(json => callback(json.access_token, json.expires_in));
}
Autodesk.Viewing.Utilities.Initialize(document.getElementById('viewer'), getAccessToken)
.then(utils => console.log(utils));
async function getAccessToken(callback) {
const resp = await fetch('/api/forge/auth/token');
const json = await resp.json();
callback(json.access_token, json.expires_in);
}
async function init() {
const utils = await Autodesk.Viewing.Utilities.Initialize(document.getElementById('viewer'), getAccessToken);
console.log(utils);
}
init();
addCustomMesh(mesh, overlayopt)
Inserts custom Mesh into overlay scene of given name. An overlay scene is always rendered after the main scene with the Forge Viewer model.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
mesh |
THREE.Mesh |
Custom Mesh. |
||
overlay |
string |
<optional> |
'UtilitiesOverlay' |
Name of the overlay scene. |
- Source:
Example
const geometry = new THREE.SphereGeometry(10, 8, 8);
const material = new THREE.MeshBasicMaterial({ color: 0x336699 });
const mesh = new THREE.Mesh(geometry, material);
mesh.position.x = 1.0; mesh.position.y = 2.0; mesh.position.z = 3.0;
utils.addCustomMesh(mesh, 'myOverlay');
enumerateFragments(callback, parentopt, nullable)
Enumerates fragment IDs of specific object or entire scene.
To make sure the method call is synchronous (i.e., it returns after all fragments have been enumerated), always wait until the object tree has been loaded.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
FragmentCallback |
Function called for each fragment. |
|
parent |
number |
<optional> <nullable> |
ID of the parent object whose fragments should be enumerated. If undefined, the enumeration includes all scene fragments. |
- Source:
Throws:
Exception if no Model is loaded.
Example
viewer.addEventListener(Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT, function() {
try {
utils.enumerateFragments(function(id) {
console.log('Found fragment', id);
});
} catch(err) {
console.error('Could not enumerate fragments', err);
}
});
enumerateLeafNodes(callback, parentopt, nullable)
Enumerates IDs of leaf objects in the scene.
To make sure the method call is synchronous (i.e., it returns after all objects have been enumerated), always wait until the object tree has been loaded.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
NodeCallback |
Function called for each object. |
|
parent |
number |
<optional> <nullable> |
ID of the parent object whose children should be enumerated. If undefined, the enumeration includes all leaf objects. |
- Source:
Throws:
Exception if no Model is loaded.
Example
viewer.addEventListener(Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT, function() {
try {
utils.enumerateLeafNodes(function(id) {
console.log('Found leaf node', id);
});
} catch(err) {
console.error('Could not enumerate nodes', err);
}
});
enumerateNodes(callback, parentopt, nullable)
Enumerates IDs of objects in the scene.
To make sure the method call is synchronous (i.e., it returns after all objects have been enumerated), always wait until the object tree has been loaded.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
NodeCallback |
Function called for each object. |
|
parent |
number |
<optional> <nullable> |
ID of the parent object whose children should be enumerated. If undefined, the enumeration includes all scene objects. |
- Source:
Throws:
Exception if no Model is loaded.
Example
viewer.addEventListener(Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT, function() {
try {
utils.enumerateNodes(function(id) {
console.log('Found node', id);
});
} catch(err) {
console.error('Could not enumerate nodes', err);
}
});
getFragmentBounds(fragId) → {THREE.Box3}
Gets world bounding box of scene fragment.
Parameters:
Name | Type | Description |
---|---|---|
fragId |
number |
Fragment ID. |
- Source:
Throws:
Exception when the fragments are not yet available.
Example
viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, function() {
try {
const bounds = utils.getFragmentBounds(1);
console.log('Fragment bounds', bounds);
} catch(err) {
console.error('Could not retrieve fragment bounds', err);
}
});
getFragmentTransform(fragId) → {THREE.Matrix4}
Gets transformation matrix of scene fragment.
Parameters:
Name | Type | Description |
---|---|---|
fragId |
number |
Fragment ID. |
- Source:
Throws:
Exception when the fragments are not yet available.
Example
viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, function() {
try {
const transform = utils.getFragmentTransform(1);
console.log('Fragment transform', transform);
} catch(err) {
console.error('Could not retrieve fragment transform', err);
}
});
listFragments(parentIdopt, nullable) → {Promise.<Array.<number>>}
Lists fragments IDs of specific scene object. Should be called after the object tree has been loaded.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
parentId |
number |
<optional> <nullable> |
ID of the parent object whose fragments should be listed. If undefined, the list will include all fragment IDs. |
- Source:
Example
viewer.addEventListener(Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT, async function() {
const ids = await utils.listFragments();
console.log('Fragment IDs', ids);
});
listLeafNodes(parentIdopt, nullable) → {Promise.<Array.<number>>}
Lists IDs of leaf objects in the scene.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
parentId |
number |
<optional> <nullable> |
ID of the parent object whose children should be listed. If undefined, the list will include all leaf object IDs. |
- Source:
Example
viewer.addEventListener(Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT, async function() {
const ids = await utils.listLeafNodes();
console.log('Leaf object IDs', ids);
});
listNodes(parentIdopt, nullable) → {Promise.<Array.<number>>}
Lists IDs of objects in the scene.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
parentId |
number |
<optional> <nullable> |
ID of the parent object whose children should be listed. If undefined, the list will include all scene object IDs. |
- Source:
Example
viewer.addEventListener(Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT, async function() {
const ids = await utils.listNodes();
console.log('Object IDs', ids);
});
load(documentUrn, viewableIdopt) → {Promise.<Viewable>}
Loads Viewable into the viewer.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
documentUrn |
string |
Base64-encoded identifier of the document. |
||
viewableId |
string | number |
<optional> |
0 |
Optional GUID (string) or index (number) of the viewable within the document. |
- Source:
Example
async function loadDocument(urn) {
const viewable = await utils.load(urn);
console.log('Loaded viewable', viewable.data.id);
}
rayCast(x, y) → {Array.<Intersection>}
Finds all scene objects on specific X,Y position on the canvas.
Parameters:
Name | Type | Description |
---|---|---|
x |
number |
X-coordinate, i.e., horizontal distance (in pixels) from the left border of the canvas. |
y |
number |
Y-coordinate, i.e., vertical distance (in pixels) from the top border of the canvas. |
- Source:
Example
document.getElementById('viewer').addEventListener('click', function(ev) {
const bounds = ev.target.getBoundingClientRect();
const intersections = utils.rayCast(ev.clientX - bounds.left, ev.clientY - bounds.top);
if (intersections.length > 0) {
console.log('hit', intersections[0]);
} else {
console.log('miss');
}
});
removeCustomMesh(mesh, overlayopt)
Removes custom Mesh from overlay scene of given name. An overlay scene is always rendered after the main scene with the Forge Viewer model.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
mesh |
THREE.Mesh |
Mesh to be removed. |
||
overlay |
string |
<optional> |
'UtilitiesOverlay' |
Name of the overlay scene. |
- Source: