Skip to content

Instantly share code, notes, and snippets.

View leefsmp's full-sized avatar

Philippe Leefsma leefsmp

  • Switzerland
  • 18:20 (UTC +02:00)
View GitHub Profile
@leefsmp
leefsmp / models.java
Last active October 19, 2024 06:16
Basic RESTful API from a Java servlet
package com.autodesk.adn.viewanddata;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
import java.util.HashMap;
import java.util.UUID;
import javax.servlet.ServletException;
@leefsmp
leefsmp / production.webpack.config.js
Last active June 5, 2023 15:52
Forge React Boiler Webpack production config
///////////////////////////////////////////////////////////
// Forge React Boiler Webpack production config
// Repo at:
// https://github.com/Autodesk-Forge/forge-react-boiler.nodejs
//
// by Philippe Leefsma, 2016
// https://twitter.com/F3lipek
//
///////////////////////////////////////////////////////////
const InlineManifestWebpackPlugin = require('inline-manifest-webpack-plugin')
@leefsmp
leefsmp / Viewing.Extension.MeshSelection.js
Created December 4, 2017 05:53
Forge Viewer MeshSelectionExtension
/////////////////////////////////////////////////////////////////////
// MeshSelectionExtension, written by Philippe Leefsma - Dec 2017
//
// Illustrates how to perform double ray casting to detect selection
// of custom meshes added to the scene and handle occlusion with
// Viewer meshes from loaded model.
//
/////////////////////////////////////////////////////////////////////
class MeshSelectionExtension extends Autodesk.Viewing.Extension {
@leefsmp
leefsmp / Autodesk.ADN.Viewing.Extension.ModelStructure.js
Created March 24, 2016 15:19
View & Data Model Structure extension
///////////////////////////////////////////////////////////////////////////////
// ModelStructure viewer extension
// by Philippe Leefsma, March 2016
//
///////////////////////////////////////////////////////////////////////////////
AutodeskNamespace("Autodesk.ADN.Viewing.Extension");
Autodesk.ADN.Viewing.Extension.ModelStructure = function (viewer, options) {
Autodesk.Viewing.Extension.call(this, viewer, options);
@leefsmp
leefsmp / uploadObjectChunked.js
Last active August 16, 2022 06:47
Forge resumable upload (node.js)
/////////////////////////////////////////////////////////
// Uploads object to bucket using resumable endpoint
//
/////////////////////////////////////////////////////////
uploadObjectChunked (
getToken,
bucketKey, objectKey,
file,
opts = {}) {
@leefsmp
leefsmp / dm-version-attachment.js
Created November 27, 2016 14:58
Forge DataManagement API: creating version attachment
/////////////////////////////////////////////////////////////////
// Get Version relationship references
//
/////////////////////////////////////////////////////////////////
getVersionRelationshipsRefs (
token, projectId, versionId, opts = {}) {
this._APIAuth.accessToken = token
return this._versionsAPI.getVersionRelationshipsRefs(
@leefsmp
leefsmp / GeometryIntersectsBox3.js
Created September 25, 2017 12:37
Three.js Geometry/Box3 intersection helper
//From https://github.com/yvt/threejs-geometry-hittest
let norm = new THREE.Vector3()
let t1 = new THREE.Vector3()
let t2 = new THREE.Vector3()
let depth = 0
function checkBoxSeparation(
phase,
minX, minY, minZ,
@leefsmp
leefsmp / Autodesk.ADN.Viewing.Extension.BoundingBox.js
Last active March 17, 2022 19:54
Visual representation of components bounding boxes for the viewer
///////////////////////////////////////////////////////////////////////////////
// BoundingBox viewer extension
// by Philippe Leefsma, August 2015
//
///////////////////////////////////////////////////////////////////////////////
AutodeskNamespace("Autodesk.ADN.Viewing.Extension");
Autodesk.ADN.Viewing.Extension.BoundingBox = function (viewer, options) {
Autodesk.Viewing.Extension.call(this, viewer, options);
@leefsmp
leefsmp / TransformTool.js
Created August 14, 2015 14:47
Transform Tool Viewer Extension
///////////////////////////////////////////////////////////////////
// Transform Tool viewer extension
// by Philippe Leefsma, August 2015
//
///////////////////////////////////////////////////////////////////
AutodeskNamespace("Autodesk.ADN.Viewing.Extension");
Autodesk.ADN.Viewing.Extension.TransformTool = function (viewer, options) {
///////////////////////////////////////////////////////////////////////////
@leefsmp
leefsmp / SelectionFilterExtension.js
Last active March 22, 2021 22:23
Forge Viewer Selection Filter Extension
/////////////////////////////////////////////////////////////////
// SelectionFilter Viewer Extension
// By Philippe Leefsma, Autodesk Inc, April 2017
//
/////////////////////////////////////////////////////////////////
import MultiModelExtensionBase from 'Viewer.MultiModelExtensionBase'
import WidgetContainer from 'WidgetContainer'
import FilterTreeView from './FilterTreeView'
import EventTool from 'Viewer.EventTool'
import Toolkit from 'Viewer.Toolkit'