Code Monkey home page Code Monkey logo

bimvie.ws-viewer's People

Contributors

rubendel avatar xeolabs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bimvie.ws-viewer's Issues

qualification on 64 bit linux / opera

It would be good if linux was added to the supported configuration matrix, and Opera on 64 bit suse 13.1 did the 3d viewer OK. I am johnfoundations on yahoo.com gmail.com and skype so we can take this offline. What would you like to see tested / working before we can say bimvie bimserver runs nicely on Linux, including Browser itself running on Linux? The ultimate target is Ubuntu. There are test suites and various plug-ins to try I guess.

Transparent canvas

Reduce GPU fragment bandwidth by using a CSS background with a transparent WebGL canvas.

Colors/Reuse/Selection

So there are quite a few combinations of colors/reuse/selection, all of them should work, efficiently.

Colors:

  • Indices/Vertices/Normals + Type (like IfcDoor) -> Color is based on the type, a SceneJS material can be used
  • Indices/Vertices/Normals/Colors -> Color is based on per-vertex colors, no SceneJS material

Reuse:

  • Reused (for example a window with the same dimensions being reused all over the building)
  • Not reused (for example just one instance, or simply no reuse defined in original IFC file)

Selection:

  • An object can be not-selected
  • An object can be the primary selected object (just one object allowed to be in this state)
  • An object can be part of the secondary selection (multiple objects allowed)

"Complications":

  • An object that is being reused, that is also being selected, should obviously not change the color of the other reused objects
  • Figure out an intuitive way of visualising the difference between the primary/secondary selection

Boilerplate code for testing load of object/geometry binary streams

Could you insert my Download component into where you think it would go within the index page? Just put it in place, and ensure that it's getting the model and a list of revision and object IDs to load. I can debug it from there.

Or alternatively, could you make a second index page that just loads some objects from a model, then feeds them into my Download component? The key things I need are the model, roids and oids, all fed into the Downloader.

Just make a stub function that takes all the parameters required by the Download component, then I'll implement the stub.

Here's a gist that shows how the Download component is used: https://gist.github.com/xeolabs/4c146797d1f772833865

And the Download component source code is here, for reference, with more usage patterns shown in the class comment: https://github.com/opensourceBIM/bimvie.ws-viewer/blob/master/src/viewer/loading/download.js

Note that the Download component batch-loads a list of objects (via socket), and is then bound to the objects it has created in the 3D view, so that when you destroy the Download, it destroys those objects in the 3D view. (That's just to get started really - I could instead have a singleton loader that can be told to load and destroy objects as they are shown/hidden in the tree view, but I guess I can get started with this one for now. I just want to get some IFC objects appearing in the viewer at this point, to debug the extraction of geometry/material from binary streams.

Auto-orthogonalise 'up' vector on Camera

Camera movements (pan, rotate etc) depend on the 'up' vector being orthogonal to 'look' and 'eye' vectors.

Currently it's possible to specify a non-orthogonal 'up' in the Camera constructor, which screws up these movements.

Solution is to use this technique in the constructor.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.