python
This commit is contained in:
Andreas Wilms
2025-09-08 16:25:55 +02:00
commit 78481ca337
617 changed files with 345831 additions and 0 deletions

View File

@@ -0,0 +1,165 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="description" content="">
<meta name="author" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<title>Potree Viewer</title>
<link rel="stylesheet" type="text/css" href="../build/potree/potree.css">
<link rel="stylesheet" type="text/css" href="../libs/jquery-ui/jquery-ui.min.css">
<link rel="stylesheet" type="text/css" href="../libs/perfect-scrollbar/css/perfect-scrollbar.css">
<link rel="stylesheet" type="text/css" href="../libs/openlayers3/ol.css">
<link rel="stylesheet" type="text/css" href="../libs/spectrum/spectrum.css">
<link rel="stylesheet" type="text/css" href="../libs/jstree/themes/mixed/style.css">
</head>
<body>
<script type="text/javascript" src="../PCstatic/js/jspsych.js"></script>
<script src="../libs/jquery/jquery-3.1.1.min.js"></script>
<script src="../libs/spectrum/spectrum.js"></script>
<script src="../libs/perfect-scrollbar/js/perfect-scrollbar.jquery.js"></script>
<script src="../libs/jquery-ui/jquery-ui.min.js"></script>
<script src="../libs/three.js/build/three.min.js"></script>
<script src="../libs/other/BinaryHeap.js"></script>
<script src="../libs/tween/tween.min.js"></script>
<script src="../libs/d3/d3.js"></script>
<script src="../libs/proj4/proj4.js"></script>
<script src="../libs/openlayers3/ol.js"></script>
<script src="../libs/i18next/i18next.js"></script>
<script src="../libs/jstree/jstree.js"></script>
<script type="text/javascript" src="../build/potree/potree.js"></script>
<script src="../libs/plasio/js/laslaz.js"></script>
<!-- INCLUDE ADDITIONAL DEPENDENCIES HERE -->
<!-- INCLUDE SETTINGS HERE -->
<div class="potree_container" style="position: absolute; width: 100%; height: 100%; left: 0%; top: 0%; ">
<div id="potree_render_area" style="position: absolute; width: 100%; height: 100%; left: 0%; top: 0%; "></div>
<!--<div id="potree_sidebar_container"></div> -->
</div>
<script>
window.viewer = new Potree.Viewer(document.getElementById("potree_render_area"));
//window.viewer = new Potree.Viewer(document.getElementById("potree_render_area_2"));
viewer.setEDLEnabled(true);
viewer.setFOV(90);
viewer.setPointBudget(1*1000*1000*1000);
viewer.loadSettingsFromURL();
viewer.useHQ = true;
var urlParams = new URLSearchParams(window.location.search);
var letter = urlParams.get('letter');
var letter2 = urlParams.get('letter2');
var cloud = urlParams.get('cloud');
const centerX = -22; // Mittelpunkt X
const centerY = 8; // Mittelpunkt
const radius = 70; // Radius des Kreises
const maxHeight = 40;
const minHeight = 0;
Potree.loadPointCloud(`pointclouds/${cloud}/cloud.js`, `${cloud}`, function(e){
viewer.scene.addPointCloud(e.pointcloud);
let material = e.pointcloud.material;
material.size = 1;
material.pointSizeType = Potree.PointSizeType.ADAPTIVE;
viewer.scene.view.position.set(centerX, centerY, 4);
viewer.scene.view.lookAt(-90, 50, 0);
viewer.setNavigationMode(Potree.FirstPersonControls);
viewer.setMoveSpeed(14);
});
const loader = new THREE.FontLoader();
//var controlLetter = test_data_N0102[0].data.controlLetter;
loader.load('https://threejs.org/examples/fonts/optimer_regular.typeface.json', function (font) {
var textGeometry = new THREE.TextGeometry(letter, {
font: font,
size: 0.9,
height: 0.2,
curveSegments: 5,
bevelEnabled: true,
bevelThickness: 0.05,
bevelSize: 0.02,
bevelOffset: 0,
bevelSegments: 4,
})
var textGeometry2 = new THREE.TextGeometry(letter2, {
font: font,
size: 0.9,
height: 0.2,
curveSegments: 5,
bevelEnabled: true,
bevelThickness: 0.05,
bevelSize: 0.02,
bevelOffset: 0,
bevelSegments: 4,
})
;
var textMaterial = new THREE.MeshBasicMaterial({color: 0x0000ff});
var text = new THREE.Mesh(textGeometry, textMaterial);
text.rotation.x = Math.PI / 2;
var x = urlParams.get('x')
var y = urlParams.get('y')
var z = urlParams.get('z')
text.position.set(x, y, z);
viewer.scene.scene.add(text);
var text2 = new THREE.Mesh(textGeometry2, textMaterial);
text2.rotation.x = Math.PI / 2;
var x2 = urlParams.get('x2')
var y2 = urlParams.get('y2')
var z2 = urlParams.get('z2')
text2.position.set(x2, y2, z2);
viewer.scene.scene.add(text2);
});
function restrictMovement() {
const position = viewer.scene.view.position;
const dx = position.x - centerX;
const dy = position.y - centerY;
const distance = Math.sqrt(dx * dx + dy * dy);
if (distance > radius) {
const angle = Math.atan2(dy, dx);
position.x = centerX + radius * Math.cos(angle);
position.y = centerY + radius * Math.sin(angle);
}
if (position.z > maxHeight) {
position.z = maxHeight;
}
if (position.z < minHeight) {
position.z = minHeight;
}
}
viewer.addEventListener('update', restrictMovement);
</script>
</html>