Nomad Packaging Mechanism

    @cognite/potree-core
    TypeScript icon, indicating that this package has built-in type declarations

    1.5.1 • Public • Published

    Potree Core

    • This project is based on Potree V1.6.
    • Potree is a web based pouint cloud visualizer project created by Markus Schütz.
    • This project contains only the main parts of the potree project adapted to be more easily used as a independent library (I have only adapted code from the original repository).
    • Support for pointclouds from LAS, LAZ, Binary files and Grehound server.
    • Point clouds are automatically updated, frustum culling is used to avoid unnecessary updates (better update performance for multiple point clouds).
    • Supports logarithmic depth buffer (just by enabling it on the threejs renderer), useful for large scale visualization.

    How to use

    • Download the custom potree build from the build folder or add it to your project using NPM.
    • Include it alonside the worker folder in your project (can be found on the source folder).
    • Download threejs from github repository.
    • The build is a ES module, that can be imported to other projects, it assumes the existence of THREE namespace for threejs dependencies.

    Demo

    • Live demo at https://tentone.github.io/potree-core/
    • Contains the same model multiple times stored in different formats.
    • Double click the models to raycast the scene and create marker points.

    Example

    • Bellow its a fully functional example of how to use this wrapper to load potree point clouds to a THREE.js project
    var scene = new THREE.Scene();
    var camera = new THREE.PerspectiveCamera(60, 1, 0.1, 10000);
    
    var canvas = document.createElement("canvas");
    canvas.style.position = "absolute";
    canvas.style.top = "0px";
    canvas.style.left = "0px";
    canvas.style.width = "100%";
    canvas.style.height = "100%";
    document.body.appendChild(canvas);
    
    var renderer = new THREE.WebGLRenderer({canvas:canvas});
    
    var geometry = new THREE.BoxGeometry(1, 1, 1);
    var material = new THREE.MeshBasicMaterial({color: 0x00ff00});
    var cube = new THREE.Mesh(geometry, material);
    scene.add(cube);
    
    var controls = new THREE.OrbitControls(camera, canvas);
    camera.position.z = 10;
    
    var points = new Potree.Group();
    points.setPointBudget(10000000)
    scene.add(points);
    
    Potree.loadPointCloud("data/test/cloud.js", name, function(data)
    {
    	var pointcloud = data.pointcloud;
    	points.add(pointcloud);
    });
    
    function loop()
    {
    	controls.update();
    	renderer.render(scene, camera);
    	requestAnimationFrame(loop);
    };
    loop();
    
    document.body.onresize = function()
    {
    	var width = window.innerWidth;
    	var height = window.innerHeight;
    	renderer.setSize(width, height);
    	camera.aspect = width / height;
    	camera.updateProjectionMatrix();
    }
    document.body.onresize();

    API Reference

    • The project has no generated documentation but bellow are some of the main configuration elements.
    • A example can be found in the repository index.html file.
    Potree.BasicGroup
    • Container that stores point cloud objects and updates them on render.
    • The container supports frustum culling using the point cloud bouding box.
    • Automatically stops updating the point cloud if out of view.
    • This container only support pointColorType set as RGB, pointSizeType set as FIXED and shape set as SQUARE.
    Potree.Group
    • Complete container with support for all potree features.

    • Some features require support for the following GL extensions

      • EXT_frag_depth, WEBGL_depth_texture, OES_vertex_array_object
    Potree.loadPointCloud
    • Method to load a point cloud database file
    • Potree.loadPointCloud(url, name, onLoad)
    Potree.PointCloudMaterial
    • Material used by threejs to draw the point clouds, based on RawShaderMaterial

    • shape

      • Defines the shape used to draw points
        • Potree.PointShape.SQUARE
        • Potree.PointShape.CIRCLE
        • Potree.PointShape.PARABOLOID
    • pointSizeType

      • Defines how the point cloud points are sized, fixed mode keeps the same size, adaptive resizes points accordingly to their distance to the camera
      • Possible values are
        • Potree.PointSizeType.FIXED
        • Potree.PointSizeType.ATTENUATED
        • Potree.PointSizeType.ADAPTIVE
    • pointColorType

      • Defines how to color the drawn points
      • Possible values are
        • Potree.PointColorType.RGB
        • Potree.PointColorType.COLOR
        • Potree.PointColorType.DEPTH
        • Potree.PointColorType.HEIGHT
        • Potree.PointColorType.INTENSITY
        • Potree.PointColorType.INTENSITY_GRADIENT
        • Potree.PointColorType.LOD
        • Potree.PointColorType.POINT_INDEX
        • Potree.PointColorType.CLASSIFICATION
        • Potree.PointColorType.RETURN_NUMBER
        • Potree.PointColorType.SOURCE
        • Potree.PointColorType.NORMAL
        • Potree.PointColorType.PHONG
        • Potree.PointColorType.RGB_HEIGHT
    • logarithmicDepthBuffer

      • Set true to enable logarithmic depth buffer
    • weighted

      • If true points are drawn as weighted splats
    • treeType

      • Defines the type of point cloud tree being drawn by this material
      • This should be automatically defined by the loader
        • Potree.TreeType.OCTREE
        • Potree.TreeType.KDTREE
    • Potree.PointCloudTree

      • Base Object3D used to store and represent point cloud data.
      • These objects are created by the loader

    Notes

    • Since potree-core is mean to be used as library and not as a full software as potree some features are not available.

    • EDL shading is not supported by potree core (might be added later).

    • GUI elements were removed from the library

      • PotreeViewer
      • Controls, Input, GUI, Tools
      • Anotations, Actions, ProfileRequest
      • Potree.startQuery, Potree.endQuery and Potree.resolveQueries
      • Potree.timerQueries
      • Potree.MOUSE, Potree.CameraMode
      • PotreeRenderer, RepRenderer, Potree.Renderer
        • JQuery, TWEEN and Proj4 dependencies

    Building

    • The project can be build running the commands npm install and npm run build.

    Point Clouds

    Install

    npm i @cognite/potree-core

    DownloadsWeekly Downloads

    1,138

    Version

    1.5.1

    License

    MIT

    Unpacked Size

    545 kB

    Total Files

    10

    Last publish

    Collaborators

    • vincent-cognite
    • joelnicolaysen-cognite
    • shashan_udawatte
    • kanchana.premachandra
    • dilesha08
    • mhmdfy
    • emircognite
    • simenkristoffersen
    • emmacognite
    • erik.galler
    • jens.kristoffersen
    • redzarosli
    • evertoncolling
    • rastif
    • asankad.cog
    • tokongs
    • cognite.harbs
    • queenie-cognite
    • sig1991
    • mlkrsrc
    • ahmedcognite
    • kondanta
    • bkuzma
    • shubhski
    • stefanmaretic
    • maksym.kowalski
    • bdemirel
    • toonday
    • sennen-cognite
    • eiriklv
    • dmakked
    • caner-cognite
    • 23andreas
    • ikechukwu
    • astridkg
    • marcelo_costa
    • fran.hrzenjak
    • torgrim
    • wchatx
    • julia.scott
    • marvin.reza
    • einar.omang
    • bhavith
    • oleksandr.kolomiiets
    • dafn
    • erlendvollset
    • eirik.djuve
    • luka-mikec-cognite
    • sou1est
    • sagarthalwar
    • martin-wahlberg
    • nabati
    • kinga.cognite
    • borlov
    • cyriaquebrousse
    • tugceozgur
    • erikangelsen-cognite
    • ankku
    • silvavelosa
    • henrist
    • robinhoodie
    • peet.cremer
    • ponnapz
    • shekhardesigner
    • kornelione
    • greenbech-cognite
    • lpereiracgn
    • manoj-cognite
    • oiuytrdsxcvbnjkhgfcvbnm
    • wjoel
    • tapped
    • sumitpandey
    • francisco.rull
    • frxstrem
    • cognitecicd
    • parami.abeysekara
    • cemreyavuz
    • neringaalt
    • rhuan.barreto
    • funsim
    • pavelzubarev
    • msusag
    • nfremming
    • steinhdan
    • dmivankov
    • polomani
    • simen.eriksen
    • nils-cognite
    • dlcognite
    • haak
    • carlospereira
    • larsmoa
    • nishafern
    • trygve.utstumo
    • kathrine-cognite
    • rekarnar
    • maximcognite
    • vegardokland
    • hhenriques
    • tfheen-cognite
    • oksana_korniienko
    • j-bjorne
    • scottmelhop
    • mathialo
    • agadacz-cognite
    • paulo-menezes-cognite
    • miladcognite
    • me-ydv-5
    • cogniteterraform
    • anderscognite
    • fredrik955
    • halvard
    • dan.levings.cognite
    • sindresh92
    • christjt
    • maksim.nesterenko
    • hakontro
    • arnekv
    • ana-gheorghe
    • judeezzz
    • dilinifernando
    • mithilacognite
    • maneshka.cognite
    • vdb93
    • eriklien
    • padalby
    • jorglund
    • tuanng-cognite
    • digaomilleniun.cognite
    • cognite-ornellas
    • harish0489
    • pedro.lindeza
    • abdullah-cognite
    • davidhwu
    • anjalirai2626
    • d0ttir
    • filipjohnsen
    • omarakabbal
    • savokr
    • pramodcog
    • tharindudg
    • brgverst
    • thorkild
    • sigridschaanning
    • smartalas
    • arnels
    • sondre.solbakken
    • pbettler
    • qtiptip
    • sceniclife
    • johan-cognite
    • theresatalor-cognite
    • mspang
    • eliasbjorne
    • oysteinolsen
    • anders-cog
    • skairunner
    • jtcog
    • petmotzf
    • deep-cognite
    • mattmurph9
    • lprovensi
    • haakonflatval-cognite
    • begozcan
    • khalzmax
    • chingyu-cognite
    • sighol
    • heiding
    • ronald-cognite
    • daniel.priori
    • ravinda-cognite
    • timurgen
    • trodden-dev
    • emel.varol
    • bdimitrijoski
    • madskjeldsberg
    • yevhenii.maltsev
    • farrukk24
    • aurlien
    • bianca-mv
    • samarv
    • soleh23
    • malindakpt
    • mihilr
    • gayandeegala
    • tfarvac
    • borajimin
    • samir-ajdarpasic
    • torbjornopheim
    • chanaka25
    • geircognite
    • soumesh.banerjee
    • mohsin.cognite
    • vebjorngilberg
    • roligheten
    • marcushorn
    • sara.aalbu
    • atussa
    • aizumi
    • therockvalley
    • dmitrijs.rutko.cognite
    • perarnet
    • bisera
    • shehan.cognite
    • udara-cognite
    • raabyeeggs
    • jarlah
    • keepfloyding
    • cgustad
    • tommy_thorsen
    • andersfylling
    • meisammalekzadeh
    • ericbrattli
    • mcarun
    • saagar-cognite
    • waqasjaved1