Displaying in browser
This commit is contained in:
@@ -6,6 +6,10 @@
|
||||
"web"
|
||||
]
|
||||
},
|
||||
"scripts": {
|
||||
"comment": "Rather crude approach to move ts definitions into the public folder so the browser can grab them later in CascadeMain.js",
|
||||
"move-ts-defs": "cp ./node_modules/opencascade.js/dist/opencascade.d.ts ./web/public && cp ./node_modules/three/src/Three.d.ts ./web/public && cp ./web/src/cascade/js/StandardLibraryIntellisense.ts ./web/public"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@redwoodjs/core": "^0.19.2"
|
||||
},
|
||||
|
||||
7
web/config/webpack.config.js
Normal file
7
web/config/webpack.config.js
Normal file
@@ -0,0 +1,7 @@
|
||||
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
|
||||
|
||||
module.exports = {
|
||||
plugins: [
|
||||
new MonacoWebpackPlugin()
|
||||
]
|
||||
}
|
||||
@@ -16,8 +16,15 @@
|
||||
"@redwoodjs/forms": "^0.19.2",
|
||||
"@redwoodjs/router": "^0.19.2",
|
||||
"@redwoodjs/web": "^0.19.2",
|
||||
"controlkit": "^0.1.9",
|
||||
"golden-layout": "^1.5.9",
|
||||
"jquery": "^3.5.1",
|
||||
"monaco-editor": "^0.20.0",
|
||||
"monaco-editor-webpack-plugin": "^1.9.1",
|
||||
"opencascade.js": "^0.1.15",
|
||||
"prop-types": "^15.7.2",
|
||||
"react": "^16.13.1",
|
||||
"react-dom": "^16.13.1"
|
||||
"react-dom": "^16.13.1",
|
||||
"three": "^0.118.3"
|
||||
}
|
||||
}
|
||||
|
||||
213
web/public/StandardLibraryIntellisense.ts
Normal file
213
web/public/StandardLibraryIntellisense.ts
Normal file
@@ -0,0 +1,213 @@
|
||||
/** The list that stores all of the OpenCascade shapes for rendering.
|
||||
* Add to this when using imported files or doing custom oc. operations.
|
||||
* @example```sceneShapes.push(externalShapes['myStep.step']);``` */
|
||||
var sceneShapes: oc.TopoDS_Shape[];
|
||||
|
||||
/** The dictionary that stores all of your imported STEP and IGES files. Push to sceneShapes to render in the view!
|
||||
* @example```sceneShapes.push(externalShapes['myStep.step']);``` */
|
||||
var externalShapes: { [filename: string]: oc.TopoDS_Shape };
|
||||
|
||||
/** Starts sketching a 2D shape which can contain lines, arcs, bezier splines, and fillets.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let sketch = new Sketch([0,0]).LineTo([100,0]).Fillet(20).LineTo([100,100]).End(true).Face();```*/
|
||||
class Sketch {
|
||||
constructor(startingPoint: number[]);
|
||||
|
||||
faces : oc.TopoDS_Face[];
|
||||
wires : oc.TopoDS_Wire[];
|
||||
firstPoint : oc.gp_Pnt;
|
||||
lastPoint : oc.gp_Pnt;
|
||||
wireBuilder : oc.BRepBuilderAPI_MakeWire;
|
||||
|
||||
Start (startingPoint : number[] ) : Sketch;
|
||||
End (closed ?: boolean , reversed?:boolean) : Sketch;
|
||||
AddWire (wire : oc. TopoDS_Wire) : Sketch;
|
||||
|
||||
LineTo (nextPoint : number[] ) : Sketch;
|
||||
ArcTo (pointOnArc : number[], arcEnd : number[]) : Sketch;
|
||||
BezierTo(bezierControlPoints : number[][]): Sketch;
|
||||
BSplineTo(bsplinePoints : number[][]): Sketch;
|
||||
/** Adds a 2D Fillet of specified radius at this vertex. Only applies to Faces!
|
||||
* If a Wire is needed, use ForEachWire() to get the Wire from the resulting Face! */
|
||||
Fillet (radius : number ) : Sketch;
|
||||
Face (reversed ?:boolean) : oc.TopoDS_Face;
|
||||
Wire (reversed ?:boolean) : oc.TopoDS_Wire;
|
||||
/** Punches a circular hole in the existing face (may need to use reversed) */
|
||||
Circle (center ?:number[], radius:number, reversed?:boolean) : Sketch;
|
||||
}
|
||||
|
||||
/** Creates a solid box with dimensions x, y, and, z and adds it to `sceneShapes` for rendering.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let myBox = Box(10, 20, 30);```*/
|
||||
function Box(x: number, y: number, z: number, centered?: boolean): oc.TopoDS_Shape;
|
||||
/** Creates a solid sphere of specified radius and adds it to `sceneShapes` for rendering.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let mySphere = Sphere(40);```*/
|
||||
function Sphere(radius: number): oc.TopoDS_Shape;
|
||||
/** Creates a solid cylinder of specified radius and height and adds it to `sceneShapes` for rendering.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let myCylinder = Cylinder(30, 50);```*/
|
||||
function Cylinder(radius: number, height: number, centered?: boolean): oc.TopoDS_Shape;
|
||||
/** Creates a solid cone of specified bottom radius, top radius, and height and adds it to `sceneShapes` for rendering.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let myCone = Cone(30, 50);```*/
|
||||
function Cone(radius1: number, radius2: number, height: number): oc.TopoDS_Shape;
|
||||
/** Creates a polygon from a list of 3-component lists (points) and adds it to `sceneShapes` for rendering.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let triangle = Polygon([[0, 0, 0], [50, 0, 0], [25, 50, 0]]);```*/
|
||||
function Polygon(points: number[][], wire?: boolean): oc.TopoDS_Shape;
|
||||
/** Creates a circle from a radius and adds it to `sceneShapes` for rendering.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let circle = Circle(50);```*/
|
||||
function Circle(radius:number, wire?:boolean) : oc.TopoDS_Shape;
|
||||
/** Creates a bspline from a list of 3-component lists (points).
|
||||
* This can be converted into a face via the respective oc.BRepBuilderAPI functions.
|
||||
* Or used directly with BRepPrimAPI_MakeRevolution()
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let bspline = BSpline([[0,0,0], [40, 0, 50], [50, 0, 50]], true);```*/
|
||||
function BSpline(points:number[][], closed?:boolean) : oc.TopoDS_Shape;
|
||||
/** Creates set of glyph solids from a string and a font-file and adds it to sceneShapes.
|
||||
* Note that all the characters share a singular face.
|
||||
*
|
||||
* Defaults: size:36, height:0.15, fontName: 'Consolas'
|
||||
*
|
||||
* Try 'Roboto' or 'Papyrus' for an alternative typeface.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let myText = Text3D("Hello!");```*/
|
||||
function Text3D(text?: string = "Hi!", size?: number = "36", height?: number = 0.15, fontURL?: string = "Consolas") : oc.TopoDS_Shape;
|
||||
|
||||
|
||||
/** Joins a list of shapes into a single solid.
|
||||
* The original shapes are removed unless `keepObjects` is true.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let sharpSphere = Union([Sphere(38), Box(50, 50, 50, true)]);```*/
|
||||
function Union(objectsToJoin: oc.TopoDS_Shape[], keepObjects?: boolean, fuzzValue?:number, keepEdges?: boolean): oc.TopoDS_Shape;
|
||||
/** Subtracts a list of shapes from mainBody.
|
||||
* The original shapes are removed unless `keepObjects` is true. Returns a Compound Shape unless onlyFirstSolid is true.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let floatingCorners = Difference(Box(50, 50, 50, true), [Sphere(38)]);```*/
|
||||
function Difference(mainBody: oc.TopoDS_Shape, objectsToSubtract: oc.TopoDS_Shape[], keepObjects?: boolean, fuzzValue?:number, keepEdges?: boolean): oc.TopoDS_Shape;
|
||||
/** Takes only the intersection of a list of shapes.
|
||||
* The original shapes are removed unless `keepObjects` is true.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let roundedBox = Intersection([Box(50, 50, 50, true), Sphere(38)]);```*/
|
||||
function Intersection(objectsToIntersect: oc.TopoDS_Shape[], keepObjects?: boolean, fuzzValue?: number, keepEdges?: boolean): oc.TopoDS_Shape;
|
||||
/** Removes internal, unused edges from the insides of faces on this shape. Keeps the model clean.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let cleanPart = RemoveInternalEdges(part);```*/
|
||||
function RemoveInternalEdges(shape: oc.TopoDS_Shape, keepShape?: boolean) : oc.TopoDS_Shape;
|
||||
/** Extrudes a shape along direction, a 3-component vector. Edges form faces, Wires form shells, Faces form solids, etc.
|
||||
* The original face is removed unless `keepFace` is true.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let tallTriangle = Extrude(Polygon([[0, 0, 0], [50, 0, 0], [25, 50, 0]]), [0, 0, 50]);```*/
|
||||
function Extrude(face: oc.TopoDS_Shape, direction: number[], keepFace?: boolean) : oc.TopoDS_Shape;
|
||||
/** Extrudes and twists a flat *wire* upwards along the z-axis (see the optional argument for Polygon).
|
||||
* The original wire is removed unless `keepWire` is true.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let twistyTriangle = RotatedExtrude(Polygon([[-25, -15, 0], [25, -15, 0], [0, 35, 0]], true), 50, 90);```*/
|
||||
function RotatedExtrude(wire: oc.TopoDS_Shape, height: number, rotation: number, keepWire?: boolean) : oc.TopoDS_Shape;
|
||||
/** Lofts a solid through the sections defined by an array of 2 or more closed wires.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js) */
|
||||
function Loft(wireSections: oc.TopoDS_Shape[], keepWires?: boolean): oc.TopoDS_Shape;
|
||||
/** Revolves this shape "degrees" about "axis" (a 3-component array). Edges form faces, Wires form shells, Faces form solids, etc.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let cone = Revolve(Polygon([[0, 0, 0], [0, 0, 50], [50, 0, 0]]));```*/
|
||||
function Revolve(shape: oc.TopoDS_Shape, degrees?: number, axis?: number[], keepShape?: boolean, copy?: boolean): oc.TopoDS_Shape;
|
||||
/** Sweeps this shape along a path wire.
|
||||
* The original shapes are removed unless `keepObjects` is true.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let pipe = Pipe(Circle(20), BSpline([[0,0,0],[0,0,50],[20,0,100]], false, true));```*/
|
||||
function Pipe(shape: oc.TopoDS_Shape, wirePath: oc.TopoDS_Shape, keepInputs?: boolean): oc.TopoDS_Shape;
|
||||
/** Offsets the faces of a shape by offsetDistance
|
||||
* The original shape is removed unless `keepShape` is true.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let roundedCube = Offset(Box(10,10,10), 10);```*/
|
||||
function Offset(shape: oc.TopoDS_Shape, offsetDistance: number, tolerance?: number, keepShape?: boolean) : oc.TopoDS_Shape;
|
||||
|
||||
/** Creates a labeled slider with specified defaults, mins, and max ranges.
|
||||
* @example```let currentSliderValue = Slider("Radius", 30 , 20 , 40);```
|
||||
* `name` needs to be unique!
|
||||
*
|
||||
* `callback` triggers whenever the mouse is let go, and `realTime` will cause the slider to update every frame that there is movement (but it's buggy!)*/
|
||||
function Slider(name: string, defaultValue: number, min: number, max: number, realTime?: boolean): number;
|
||||
/** Creates a button that will trigger `callback` when clicked.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```Button("Yell", ()=>{ console.log("Help! I've been clicked!"); });```*/
|
||||
function Button(name: string) : void;
|
||||
/** Creates a checkbox that returns true or false.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let currentCheckboxValue = Checkbox("Check?", true);```
|
||||
*
|
||||
* `callback` triggers when the button is clicked.*/
|
||||
function Checkbox(name: string, defaultValue: boolean): boolean;
|
||||
|
||||
/** BETA: Transform a shape using an in-view transformation gizmo.
|
||||
*
|
||||
* Shortcuts: `T` - Translate, `R` - Rotate, `S` - Scale, `W`/`L` - Toggle World/Local Space
|
||||
*
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let transformedSphere = Transform(Sphere(50));```*/
|
||||
function Transform(shape: oc.TopoDS_Shape): oc.TopoDS_Shape;
|
||||
/** BETA: Transform a shape using an in-view transformation gizmo.
|
||||
*
|
||||
* Shortcuts: `T` - Translate, `R` - Rotate, `S` - Scale, `W`/`L` - Toggle World/Local
|
||||
*
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let transformedSphere = Transform(Sphere(50));```*/
|
||||
function Transform(translation: number[], rotation: (number|number[])[], scale: number, shape: oc.TopoDS_Shape, keepOriginal?: boolean): oc.TopoDS_Shape;
|
||||
|
||||
/** Translate a shape along the x, y, and z axes (using an array of 3 numbers).
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let upwardSphere = Translate([0, 0, 50], Sphere(50));```*/
|
||||
function Translate(offset: number[], shape: oc.TopoDS_Shape, keepOriginal?: boolean): oc.TopoDS_Shape;
|
||||
|
||||
/** Rotate a shape degrees about a 3-coordinate axis.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let leaningCylinder = Rotate([0, 1, 0], 45, Cylinder(25, 50));```*/
|
||||
function Rotate(axis: number[], degrees: number, shape: oc.TopoDS_Shape, keepOriginal?: boolean): oc.TopoDS_Shape;
|
||||
|
||||
/** Scale a shape to be `scale` times its current size.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let scaledCylinder = Scale(50, Cylinder(0.5, 1));```*/
|
||||
function Scale(scale: number, shape: oc.TopoDS_Shape, keepOriginal?: boolean): oc.TopoDS_Shape;
|
||||
|
||||
/** Iterate over all the solids in this shape, calling `callback` on each one. */
|
||||
function ForEachSolid(shape: oc.TopoDS_Shape, callback: (index: Number, shell: oc.TopoDS_Solid) => void): void;
|
||||
/** Gets the indexth solid from this compound shape. */
|
||||
function GetSolidFromCompound(shape: oc.TopoDS_Shape, index?:number, keepOriginal?:boolean): oc.TopoDS_Solid;
|
||||
/** Gets the indexth wire from this face (or above) shape. */
|
||||
function GetWire(shape: oc.TopoDS_Face, index?:number, keepOriginal?:boolean): oc.TopoDS_Wire;
|
||||
/** Iterate over all the shells in this shape, calling `callback` on each one. */
|
||||
function ForEachShell(shape: oc.TopoDS_Shape, callback: (index: Number, shell: oc.TopoDS_Shell) => void): void;
|
||||
/** Iterate over all the faces in this shape, calling `callback` on each one. */
|
||||
function ForEachFace(shape: oc.TopoDS_Shape, callback: (index: number, face: oc.TopoDS_Face) => void): void;
|
||||
/** Iterate over all the wires in this shape, calling `callback` on each one. */
|
||||
function ForEachWire(shape: oc.TopoDS_Shape, callback: (wire: oc.TopoDS_Wire) => void): void;
|
||||
/** Iterate over all the UNIQUE indices and edges in this shape, calling `callback` on each one. */
|
||||
function ForEachEdge(shape: oc.TopoDS_Shape, callback: (index: number, edge: oc.TopoDS_Edge) => void): {[edgeHash:number] : Number}[];
|
||||
/** Iterate over all the vertices in this shape, calling `callback` on each one. */
|
||||
function ForEachVertex(shape: oc.TopoDS_Shape, callback: (vertex: oc.TopoDS_Vertex) => void): void;
|
||||
/** Attempt to Fillet all selected edge indices in "edgeList" with a radius.
|
||||
* Hover over the edges you'd like to select and use those indices as in the example.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```FilletEdges(shape, 1, [0,1,2,7]);``` */
|
||||
function FilletEdges(shape: oc.TopoDS_Shape, radius: number, edgeList: number[], keepOriginal?:boolean): oc.TopoDS_Shape;
|
||||
/** Attempt to Chamfer all selected edge indices in "edgeList" symmetrically by distance.
|
||||
* Hover over the edges you'd like to select and use those indices in the edgeList array.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```ChamferEdges(shape, 1, [0,1,2,7]);``` */
|
||||
function ChamferEdges(shape: oc.TopoDS_Shape, distance: number, edgeList: number[], keepOriginal?:boolean): oc.TopoDS_Shape;
|
||||
|
||||
/** Download this file URL through the browser. Use this to export information from the CAD engine.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```SaveFile("myInfo.txt", URL.createObjectURL( new Blob(["Hello, Harddrive!"], { type: 'text/plain' }) ));``` */
|
||||
function SaveFile(filename: string, fileURL: string): void;
|
||||
|
||||
/** Explicitly Cache the result of this operation so that it can return instantly next time it is called with the same arguments.
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let box = CacheOp(arguments, () => { return new oc.BRepPrimAPI_MakeBox(x, y, z).Shape(); });``` */
|
||||
function CacheOp(arguments: IArguments, cacheMiss: () => oc.TopoDS_Shape): oc.TopoDS_Shape;
|
||||
/** Remove this object from this array. Useful for preventing objects being added to `sceneShapes` (in cached functions).
|
||||
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
|
||||
* @example```let box = CacheOp(arguments, () => { let box = Box(x,y,z); sceneShapes = Remove(sceneShapes, box); return box; });``` */
|
||||
function Remove(array: any[], toRemove: any): any[];
|
||||
177
web/public/Three.d.ts
vendored
Normal file
177
web/public/Three.d.ts
vendored
Normal file
@@ -0,0 +1,177 @@
|
||||
export * from './polyfills';
|
||||
export * from './renderers/WebGLMultisampleRenderTarget';
|
||||
export * from './renderers/WebGLCubeRenderTarget';
|
||||
export * from './renderers/WebGLRenderTarget';
|
||||
export * from './renderers/WebGLRenderer';
|
||||
export * from './renderers/WebGL1Renderer';
|
||||
export * from './renderers/shaders/ShaderLib';
|
||||
export * from './renderers/shaders/UniformsLib';
|
||||
export * from './renderers/shaders/UniformsUtils';
|
||||
export * from './renderers/shaders/ShaderChunk';
|
||||
export * from './scenes/FogExp2';
|
||||
export * from './scenes/Fog';
|
||||
export * from './scenes/Scene';
|
||||
export * from './objects/Sprite';
|
||||
export * from './objects/LOD';
|
||||
export * from './objects/InstancedMesh';
|
||||
export * from './objects/SkinnedMesh';
|
||||
export * from './objects/Skeleton';
|
||||
export * from './objects/Bone';
|
||||
export * from './objects/Mesh';
|
||||
export * from './objects/LineSegments';
|
||||
export * from './objects/LineLoop';
|
||||
export * from './objects/Line';
|
||||
export * from './objects/Points';
|
||||
export * from './objects/Group';
|
||||
export * from './textures/VideoTexture';
|
||||
export * from './textures/DataTexture';
|
||||
export * from './textures/DataTexture3D';
|
||||
export * from './textures/CompressedTexture';
|
||||
export * from './textures/CubeTexture';
|
||||
export * from './textures/CanvasTexture';
|
||||
export * from './textures/DepthTexture';
|
||||
export * from './textures/Texture';
|
||||
export * from './geometries/Geometries';
|
||||
export * from './materials/Materials';
|
||||
export * from './loaders/AnimationLoader';
|
||||
export * from './loaders/CompressedTextureLoader';
|
||||
export * from './loaders/DataTextureLoader';
|
||||
export * from './loaders/CubeTextureLoader';
|
||||
export * from './loaders/TextureLoader';
|
||||
export * from './loaders/ObjectLoader';
|
||||
export * from './loaders/MaterialLoader';
|
||||
export * from './loaders/BufferGeometryLoader';
|
||||
export * from './loaders/LoadingManager';
|
||||
export * from './loaders/ImageLoader';
|
||||
export * from './loaders/ImageBitmapLoader';
|
||||
export * from './loaders/FontLoader';
|
||||
export * from './loaders/FileLoader';
|
||||
export * from './loaders/Loader';
|
||||
export * from './loaders/LoaderUtils';
|
||||
export * from './loaders/Cache';
|
||||
export * from './loaders/AudioLoader';
|
||||
export * from './lights/SpotLightShadow';
|
||||
export * from './lights/SpotLight';
|
||||
export * from './lights/PointLight';
|
||||
export * from './lights/RectAreaLight';
|
||||
export * from './lights/HemisphereLight';
|
||||
export * from './lights/DirectionalLightShadow';
|
||||
export * from './lights/DirectionalLight';
|
||||
export * from './lights/AmbientLight';
|
||||
export * from './lights/LightShadow';
|
||||
export * from './lights/Light';
|
||||
export * from './lights/AmbientLightProbe';
|
||||
export * from './lights/HemisphereLightProbe';
|
||||
export * from './lights/LightProbe';
|
||||
export * from './cameras/StereoCamera';
|
||||
export * from './cameras/PerspectiveCamera';
|
||||
export * from './cameras/OrthographicCamera';
|
||||
export * from './cameras/CubeCamera';
|
||||
export * from './cameras/ArrayCamera';
|
||||
export * from './cameras/Camera';
|
||||
export * from './audio/AudioListener';
|
||||
export * from './audio/PositionalAudio';
|
||||
export * from './audio/AudioContext';
|
||||
export * from './audio/AudioAnalyser';
|
||||
export * from './audio/Audio';
|
||||
export * from './animation/tracks/VectorKeyframeTrack';
|
||||
export * from './animation/tracks/StringKeyframeTrack';
|
||||
export * from './animation/tracks/QuaternionKeyframeTrack';
|
||||
export * from './animation/tracks/NumberKeyframeTrack';
|
||||
export * from './animation/tracks/ColorKeyframeTrack';
|
||||
export * from './animation/tracks/BooleanKeyframeTrack';
|
||||
export * from './animation/PropertyMixer';
|
||||
export * from './animation/PropertyBinding';
|
||||
export * from './animation/KeyframeTrack';
|
||||
export * from './animation/AnimationUtils';
|
||||
export * from './animation/AnimationObjectGroup';
|
||||
export * from './animation/AnimationMixer';
|
||||
export * from './animation/AnimationClip';
|
||||
export * from './animation/AnimationAction';
|
||||
export * from './core/Uniform';
|
||||
export * from './core/InstancedBufferGeometry';
|
||||
export * from './core/BufferGeometry';
|
||||
export * from './core/Geometry';
|
||||
export * from './core/InterleavedBufferAttribute';
|
||||
export * from './core/InstancedInterleavedBuffer';
|
||||
export * from './core/InterleavedBuffer';
|
||||
export * from './core/InstancedBufferAttribute';
|
||||
export * from './core/BufferAttribute';
|
||||
export * from './core/Face3';
|
||||
export * from './core/Object3D';
|
||||
export * from './core/Raycaster';
|
||||
export * from './core/Layers';
|
||||
export * from './core/EventDispatcher';
|
||||
export * from './core/DirectGeometry';
|
||||
export * from './core/Clock';
|
||||
export * from './math/interpolants/QuaternionLinearInterpolant';
|
||||
export * from './math/interpolants/LinearInterpolant';
|
||||
export * from './math/interpolants/DiscreteInterpolant';
|
||||
export * from './math/interpolants/CubicInterpolant';
|
||||
export * from './math/Interpolant';
|
||||
export * from './math/Triangle';
|
||||
export * from './math/MathUtils';
|
||||
export * from './math/Spherical';
|
||||
export * from './math/Cylindrical';
|
||||
export * from './math/Plane';
|
||||
export * from './math/Frustum';
|
||||
export * from './math/Sphere';
|
||||
export * from './math/Ray';
|
||||
export * from './math/Matrix4';
|
||||
export * from './math/Matrix3';
|
||||
export * from './math/Box3';
|
||||
export * from './math/Box2';
|
||||
export * from './math/Line3';
|
||||
export * from './math/Euler';
|
||||
export * from './math/Vector4';
|
||||
export * from './math/Vector3';
|
||||
export * from './math/Vector2';
|
||||
export * from './math/Quaternion';
|
||||
export * from './math/Color';
|
||||
export * from './math/SphericalHarmonics3';
|
||||
export * from './extras/objects/ImmediateRenderObject';
|
||||
export * from './helpers/SpotLightHelper';
|
||||
export * from './helpers/SkeletonHelper';
|
||||
export * from './helpers/PointLightHelper';
|
||||
export * from './helpers/HemisphereLightHelper';
|
||||
export * from './helpers/GridHelper';
|
||||
export * from './helpers/PolarGridHelper';
|
||||
export * from './helpers/DirectionalLightHelper';
|
||||
export * from './helpers/CameraHelper';
|
||||
export * from './helpers/BoxHelper';
|
||||
export * from './helpers/Box3Helper';
|
||||
export * from './helpers/PlaneHelper';
|
||||
export * from './helpers/ArrowHelper';
|
||||
export * from './helpers/AxesHelper';
|
||||
export * from './extras/curves/Curves';
|
||||
export * from './extras/core/Shape';
|
||||
export * from './extras/core/Path';
|
||||
export * from './extras/core/ShapePath';
|
||||
export * from './extras/core/Font';
|
||||
export * from './extras/core/CurvePath';
|
||||
export * from './extras/core/Curve';
|
||||
export * from './extras/ImageUtils';
|
||||
export * from './extras/ShapeUtils';
|
||||
export * from './extras/PMREMGenerator';
|
||||
export * from './renderers/webgl/WebGLBufferRenderer';
|
||||
export * from './renderers/webgl/WebGLCapabilities';
|
||||
export * from './renderers/webgl/WebGLClipping';
|
||||
export * from './renderers/webgl/WebGLExtensions';
|
||||
export * from './renderers/webgl/WebGLGeometries';
|
||||
export * from './renderers/webgl/WebGLIndexedBufferRenderer';
|
||||
export * from './renderers/webgl/WebGLInfo';
|
||||
export * from './renderers/webgl/WebGLLights';
|
||||
export * from './renderers/webgl/WebGLObjects';
|
||||
export * from './renderers/webgl/WebGLProgram';
|
||||
export * from './renderers/webgl/WebGLPrograms';
|
||||
export * from './renderers/webgl/WebGLProperties';
|
||||
export * from './renderers/webgl/WebGLRenderLists';
|
||||
export * from './renderers/webgl/WebGLShader';
|
||||
export * from './renderers/webgl/WebGLShadowMap';
|
||||
export * from './renderers/webgl/WebGLState';
|
||||
export * from './renderers/webgl/WebGLTextures';
|
||||
export * from './renderers/webgl/WebGLUniforms';
|
||||
export * from './constants';
|
||||
export * from './Three.Legacy';
|
||||
|
||||
export as namespace THREE;
|
||||
1644
web/public/opencascade.d.ts
vendored
Normal file
1644
web/public/opencascade.d.ts
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Submodule web/src/cascade updated: fa92c11433...73da6e1c64
@@ -6,7 +6,36 @@
|
||||
<link rel="icon" type="image/png" href="/favicon.png" />
|
||||
<title><%= htmlWebpackPlugin.options.title %></title>
|
||||
<script>
|
||||
var messageHandlers = {}
|
||||
// Install Cascade Studio as a Progressive Web App for Offline Access
|
||||
// This needs to be put before ANY HTTP Requests are made, so it can cache them.
|
||||
var messageHandlers = {};
|
||||
var cascadeStudioWorker
|
||||
var workerWorking = false
|
||||
function coolGuy() {
|
||||
if ('serviceWorker' in navigator) {
|
||||
navigator.serviceWorker.register('service-worker.js').then(function(registration) {
|
||||
registration.update(); // Always update the registration for the latest assets
|
||||
}, function() {
|
||||
console.log('Could not register Cascade Studio for offline use!');
|
||||
});
|
||||
} else {
|
||||
console.log('Browser does not support offline access!');
|
||||
}
|
||||
|
||||
// Begins loading the CAD Kernel Web Worker
|
||||
if (window.Worker) {
|
||||
cascadeStudioWorker = new Worker('./src/cascade/js/CADWorker/CascadeStudioMainWorker.js');
|
||||
// Ping Pong Messages Back and Forth based on their registration in messageHandlers
|
||||
// var messageHandlers = {};
|
||||
cascadeStudioWorker.onmessage = function (e) {
|
||||
if(e.data.type in messageHandlers){
|
||||
let response = messageHandlers[e.data.type](e.data.payload);
|
||||
if (response) { cascadeStudioWorker.postMessage({ "type": e.data.type, payload: response }) };
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
coolGuy()
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -6,6 +6,10 @@ import Routes from 'src/Routes'
|
||||
|
||||
import './scaffold.css'
|
||||
import './index.css'
|
||||
import 'golden-layout/src/css/goldenlayout-base.css'
|
||||
import 'golden-layout/src/css/goldenlayout-dark-theme.css'
|
||||
import './cascade/css/main.css'
|
||||
import 'monaco-editor/min/vs/editor/editor.main.css'
|
||||
|
||||
ReactDOM.render(
|
||||
<FatalErrorBoundary page={FatalErrorPage}>
|
||||
|
||||
@@ -1,15 +1,20 @@
|
||||
import BlogLayout from 'src/layouts/BlogLayout'
|
||||
import BlogPostsCell from 'src/components/BlogPostsCell'
|
||||
import { initialize } from 'src/cascade/js/MainPage/CascadeMain'
|
||||
import { useEffect } from 'react'
|
||||
|
||||
|
||||
const HomePage = () => {
|
||||
useEffect(() => {
|
||||
new initialize()
|
||||
// TODO currently you need to press f5 to get the first render to work and for the evaluate menu to show up
|
||||
// figure out why it's not initializing properly
|
||||
}, [])
|
||||
return (
|
||||
|
||||
<BlogLayout>
|
||||
<BlogPostsCell/>
|
||||
<div>
|
||||
<button onClick={() => new initialize()}>init</button>
|
||||
<h1 hidden></h1>
|
||||
<div id="topnav" className="topnav">
|
||||
<a href="https://github.com/zalo/CascadeStudio">Cascade Studio 0.0.6</a>
|
||||
@@ -38,12 +43,6 @@ const HomePage = () => {
|
||||
}}>Reset Project</a>
|
||||
</div>
|
||||
<div id="appbody" style={{height:'auto'}}>
|
||||
{/* <link data-name="vs/editor/editor.main" rel="stylesheet" href="./node_modules/monaco-editor/min/vs/editor/editor.main.css"> */}
|
||||
{/* <script>var require = { paths: { 'vs': 'node_modules/monaco-editor/min/vs' } };</script>
|
||||
<script type="text/javascript" src="./node_modules/monaco-editor/min/vs/loader.js"></script>
|
||||
<script type="text/javascript" src="./node_modules/monaco-editor/min/vs/editor/editor.main.nls.js"></script>
|
||||
<script type="text/javascript" src="./node_modules/monaco-editor/min/vs/editor/editor.main.js"></script>
|
||||
<script type="text/javascript" src="./js/MainPage/CascadeMain.js"></script> */}
|
||||
</div>
|
||||
</div>
|
||||
</BlogLayout>
|
||||
|
||||
39
yarn.lock
39
yarn.lock
@@ -5874,6 +5874,11 @@ content-type@~1.0.4:
|
||||
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
|
||||
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
|
||||
|
||||
controlkit@^0.1.9:
|
||||
version "0.1.9"
|
||||
resolved "https://registry.yarnpkg.com/controlkit/-/controlkit-0.1.9.tgz#00a0598a2a3c25f85494327d86d3daf1b11f08ab"
|
||||
integrity sha1-AKBZiio8JfhUlDJ9htPa8bEfCKs=
|
||||
|
||||
convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
|
||||
@@ -8235,6 +8240,13 @@ globby@^6.1.0:
|
||||
pify "^2.0.0"
|
||||
pinkie-promise "^2.0.0"
|
||||
|
||||
golden-layout@^1.5.9:
|
||||
version "1.5.9"
|
||||
resolved "https://registry.yarnpkg.com/golden-layout/-/golden-layout-1.5.9.tgz#a39bc1f6a67e6f886b797c016dd924e9426ba77f"
|
||||
integrity sha1-o5vB9qZ+b4hreXwBbdkk6UJrp38=
|
||||
dependencies:
|
||||
jquery "*"
|
||||
|
||||
good-listener@^1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
|
||||
@@ -9892,6 +9904,11 @@ jest@^26.1.0:
|
||||
import-local "^3.0.2"
|
||||
jest-cli "^26.2.2"
|
||||
|
||||
jquery@*, jquery@^3.5.1:
|
||||
version "3.5.1"
|
||||
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5"
|
||||
integrity sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==
|
||||
|
||||
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
|
||||
@@ -10919,6 +10936,18 @@ module-not-found-error@^1.0.1:
|
||||
resolved "https://registry.yarnpkg.com/module-not-found-error/-/module-not-found-error-1.0.1.tgz#cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0"
|
||||
integrity sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA=
|
||||
|
||||
monaco-editor-webpack-plugin@^1.9.1:
|
||||
version "1.9.1"
|
||||
resolved "https://registry.yarnpkg.com/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.9.1.tgz#eb4bbb1c5e5bfb554541c1ae1542e74c2a9f43fd"
|
||||
integrity sha512-x7fx1w3i/uwZERIgztHAAK3VQMsL8+ku0lFXXbO81hKDg8IieACqjGEa2mqEueg0c/fX+wd0oI+75wB19KJAsA==
|
||||
dependencies:
|
||||
loader-utils "^1.2.3"
|
||||
|
||||
monaco-editor@^0.20.0:
|
||||
version "0.20.0"
|
||||
resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.20.0.tgz#5d5009343a550124426cb4d965a4d27a348b4dea"
|
||||
integrity sha512-hkvf4EtPJRMQlPC3UbMoRs0vTAFAYdzFQ+gpMb8A+9znae1c43q8Mab9iVsgTcg/4PNiLGGn3SlDIa8uvK1FIQ==
|
||||
|
||||
morgan@^1.10.0:
|
||||
version "1.10.0"
|
||||
resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7"
|
||||
@@ -11433,6 +11462,11 @@ open@^7.0.0:
|
||||
is-docker "^2.0.0"
|
||||
is-wsl "^2.1.1"
|
||||
|
||||
opencascade.js@^0.1.15:
|
||||
version "0.1.19"
|
||||
resolved "https://registry.yarnpkg.com/opencascade.js/-/opencascade.js-0.1.19.tgz#32d545ca4add213d168eb6e6973dceba1bcab35b"
|
||||
integrity sha512-7q8LNihtU7BzsIXXoqTHq2/7ASfDdK5OycuI1oscc/9Opmew8OXjcv/oTSF+w5U+0dwUt8LewdG/xYSIkkf8Ig==
|
||||
|
||||
opener@^1.5.1:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed"
|
||||
@@ -14166,6 +14200,11 @@ text-table@0.2.0, text-table@^0.2.0:
|
||||
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
||||
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
|
||||
|
||||
three@^0.118.3:
|
||||
version "0.118.3"
|
||||
resolved "https://registry.yarnpkg.com/three/-/three-0.118.3.tgz#c0bf8c10a68155478f12f4ccac2ff979526a4a0a"
|
||||
integrity sha512-ijECXrNzDkHieoeh2H69kgawTGH8DiamhR4uBN8jEM7VHSKvfTdEvOoHsA8Aq7dh7PHAxhlqBsN5arBI3KixSw==
|
||||
|
||||
throat@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"
|
||||
|
||||
Reference in New Issue
Block a user