Bladeren bron

change in heaps globalToLocal/localToGlobal

Nicolas Cannasse 4 jaren geleden
bovenliggende
commit
c62f0e7cb1

+ 6 - 6
hide/comp/SceneEditor.hx

@@ -744,9 +744,9 @@ class SceneEditor {
 			if(e.button == K.MOUSE_RIGHT) {
 				var dist = hxd.Math.distance(scene.s2d.mouseX - lastPush[0], scene.s2d.mouseY - lastPush[1]);
 				if( dist > 5 ) return;
-				var pt = new h3d.Vector(e.relX,e.relY,e.relZ);
+				var pt = new h3d.col.Point(e.relX,e.relY,e.relZ);
 				if( i3d != null ) i3d.localToGlobal(pt);
-				selectNewObject(pt.toPoint());
+				selectNewObject(pt);
 				e.propagate = false;
 				return;
 			}
@@ -2499,13 +2499,13 @@ class SceneEditor {
 
 	static function getPivot(objects: Array<Object>) {
 		if (customPivot != null) {
-			return customPivot.mesh.localToGlobal(customPivot.locPos.clone());
+			return customPivot.mesh.localToGlobal(customPivot.locPos.toPoint());
 		}
-		var pos = new h3d.Vector();
+		var pos = new h3d.col.Point();
 		for(o in objects) {
-			pos = pos.add(o.getAbsPos().getPosition());
+			pos = pos.add(o.getAbsPos().getPosition().toPoint());
 		}
-		pos.scale3(1.0 / objects.length);
+		pos.scale(1.0 / objects.length);
 		return pos;
 	}
 

+ 4 - 4
hide/prefab/PolygonEditor.hx

@@ -87,7 +87,7 @@ class MovablePoint {
 		}
 		getText(localPosText).visible = showDebug;
 		getText(worldPosText).visible = showDebug;
-		var pointWorldPos = new h3d.Vector(point.x, point.y, 0.);
+		var pointWorldPos = new h3d.col.Point(point.x, point.y, 0.);
 		ctx.local3d.localToGlobal(pointWorldPos);
 		getText(localPosText).text = "Local : " + untyped point.x.toFixed(3) + " / " + untyped point.y.toFixed(3);
 		getText(worldPosText).text = "World : " + untyped pointWorldPos.x.toFixed(3) + " / " + untyped pointWorldPos.y.toFixed(3) + " / " + untyped pointWorldPos.z.toFixed(3);
@@ -127,7 +127,7 @@ class PolygonEditor {
 	var movablePoints : Array<MovablePoint> = [];
 	var selectedPoints : Array<h2d.col.Point> = [];
 	var lastPointSelected : h2d.col.Point;
-	var lastPos : h3d.Vector;
+	var lastPos : h3d.col.Point;
 	var selectedEdge : Edge;
 	var selectedEdgeGraphic : h3d.scene.Graphics;
 	//var lastClickStamp = 0.0;
@@ -317,10 +317,10 @@ class PolygonEditor {
 	}
 
 	function getFinalPos( mouseX, mouseY ){
-		var worldPos = screenToWorld(mouseX, mouseY).toVector();
+		var worldPos = screenToWorld(mouseX, mouseY);
 		var localPos = getContext().local3d.globalToLocal(worldPos);
 		if( K.isDown( K.CTRL ) ){ // Snap To Grid with Ctrl
-			var gridPos = new h3d.Vector();
+			var gridPos = new h3d.col.Point();
 			if( worldSnap ){
 				var absPos = getContext().local3d.getAbsPos();
 				worldPos = getContext().local3d.localToGlobal(worldPos);

+ 1 - 1
hide/prefab/SplineEditor.hx

@@ -361,7 +361,7 @@ class SplineEditor {
 			var gizmo = new hide.view.l3d.Gizmo(editContext.scene);
 			gizmo.getRotationQuat().identity();
 			gizmo.visible = true;
-			var worldPos = ctx.local3d.localToGlobal(new h3d.Vector(sp.x, sp.y, sp.z));
+			var worldPos = ctx.local3d.localToGlobal(new h3d.col.Point(sp.x, sp.y, sp.z));
 			gizmo.setPosition(worldPos.x, worldPos.y, worldPos.z);
 			@:privateAccess sceneEditor.updates.push( gizmo.update );
 			gizmos.insert(gizmos.length, gizmo);

+ 2 - 2
hide/prefab/terrain/Brush.hx

@@ -32,7 +32,7 @@ class Brush {
 		}
 	}
 
-	public function drawTo( target : h3d.mat.Texture, pos : h3d.Vector, tileSize : h2d.col.Point, ?offset = 0 ) {
+	public function drawTo( target : h3d.mat.Texture, pos : h3d.col.Point, tileSize : h2d.col.Point, ?offset = 0 ) {
 		var texSize = new h2d.col.IPoint(target.width + offset, target.height + offset);
 		scaleForTex(tileSize, texSize);
 		bitmap.setPosition(
@@ -119,7 +119,7 @@ class BrushPreview extends h3d.scene.Mesh {
 		material.mainPass.stencil.setOp(Keep, Keep, Keep);
 	}
 
-	public function previewAt( brush : Brush, pos : h3d.Vector ) {
+	public function previewAt( brush : Brush, pos : h3d.col.Point ) {
 		setPosition(pos.x, pos.y, pos.z);
 		setScale(brush.size);
 		scaleZ = 1000;

+ 24 - 24
hide/prefab/terrain/TerrainEditor.hx

@@ -51,7 +51,7 @@ class TerrainEditor {
 	var brushPreview : hide.prefab.terrain.Brush.BrushPreview;
 	var interactive : h2d.Interactive;
 	var remainingDist = 0.0;
-	var lastPos : h3d.Vector;
+	var lastPos : h3d.col.Point;
 	var lastMousePos : h2d.col.Point;
 	var lastBrushSize : Float;
 	var heightStrokeBufferArray : hide.prefab.terrain.StrokeBuffer.StrokeBufferArray;
@@ -64,7 +64,7 @@ class TerrainEditor {
 	var swapIndex = new h3d.pass.ScreenFx(new hide.prefab.terrain.SwapIndex());
 	var setHeight = new h3d.pass.ScreenFx(new hide.prefab.terrain.SetHeight());
 	var smoothHeight = new h3d.pass.ScreenFx(new hide.prefab.terrain.SmoothHeight());
-	// Revert 
+	// Revert
 	var terrainPrefab : hrt.prefab.terrain.Terrain;
 	var undo : hide.ui.UndoHistory;
 	var tileTrashBin : Array<TileRevertData> = [];
@@ -235,7 +235,7 @@ class TerrainEditor {
 					var adj = t.terrain.getTile(t.tileX + i, t.tileY + j);
 					if( adj != null && tiles.indexOf(adj) == -1 )
 						tiles.push(adj);
-				}	
+				}
 			}
 		}
 
@@ -252,7 +252,7 @@ class TerrainEditor {
 					pixels.setPixelF(t.heightMap.width - 1, i, adjpixels.getPixelF(0,i) );
 				}
 			}
-		
+
 			var adjTileY = t.terrain.getTile(t.tileX, t.tileY + 1);
 			var adjHeightMapY = adjTileY != null ? adjTileY.heightMap : null;
 			if( adjHeightMapY != null ) {
@@ -261,14 +261,14 @@ class TerrainEditor {
 					pixels.setPixelF(i, t.heightMap.height - 1, adjpixels.getPixelF(i,0) );
 				}
 			}
-		
+
 			var adjTileXY = t.terrain.getTile(t.tileX + 1, t.tileY + 1);
 			var adjHeightMapXY = adjTileXY != null ? adjTileXY.heightMap : null;
 			if( adjHeightMapXY != null ) {
 				var adjpixels : hxd.Pixels.PixelsFloat = adjTileXY.heightMapPixels;
 				pixels.setPixelF(t.heightMap.width - 1, t.heightMap.height - 1, adjpixels.getPixelF(0,0));
 			}
-			
+
 			t.heightMapPixels = pixels;
 			t.heightMap.uploadPixels(pixels);
 			t.needNewPixelCapture = false;
@@ -279,8 +279,8 @@ class TerrainEditor {
 			t.bakeNormal();
 			t.normalMapPixels = t.normalMap.capturePixels();
 		}
-		
-		// Compute the average normal on edge 
+
+		// Compute the average normal on edge
 		for( t in tiles ) {
 
 			var pixelsAfterBlend = t.normalMapPixels;
@@ -376,7 +376,7 @@ class TerrainEditor {
 			if( downRight != null ) n = n.add(getNormalFromHeightMap(downRight, 0, 0));
 			n.normalize();
 			pixelsAfterBlend.setPixel(width, height, packNormal(n));
-			
+
 			t.normalMap.uploadPixels(pixelsAfterBlend);
 			t.needNormalBake = false;
 		}
@@ -388,7 +388,7 @@ class TerrainEditor {
 	}
 
 	function applyStrokeBuffers() {
-		
+
 		var revertDatas = new Array<TileRevertData>();
 
 		for( strokeBuffer in heightStrokeBufferArray.strokeBuffers ) {
@@ -438,7 +438,7 @@ class TerrainEditor {
 					tile.heightMapPixels = undo ? revertData.prevHeightMapPixels : revertData.nextHeightMapPixels;
 				}
 				var tiles = [ for( rd in revertDatas ) { terrainPrefab.terrain.getTile(rd.x, rd.y); }];
-				blendEdges(tiles);	
+				blendEdges(tiles);
 			}));
 		}
 
@@ -597,7 +597,7 @@ class TerrainEditor {
 	}
 
 	function getBrushPlanePos( mouseX : Float, mouseY : Float, ctx : Context ) {
-		var worldPos = screenToWorld(mouseX, mouseY, ctx).toVector();
+		var worldPos = screenToWorld(mouseX, mouseY, ctx);
 		if( currentBrush.brushMode.snapToGrid ) {
 			var localPos = terrainPrefab.terrain.globalToLocal(worldPos.clone());
 			localPos.x = hxd.Math.round(localPos.x / terrainPrefab.terrain.cellSize.x) * terrainPrefab.terrain.cellSize.x;
@@ -608,10 +608,10 @@ class TerrainEditor {
 		return worldPos;
 	}
 
-	function getBrushWorldPosFromTex( worldPos : h3d.Vector, ctx : Context ) : h3d.Vector {
+	function getBrushWorldPosFromTex( worldPos : h3d.col.Point, ctx : Context ) : h3d.col.Point {
 		if(currentBrush.brushMode.snapToGrid) return worldPos;
 		var screenPos = worldToScreen(worldPos.x, worldPos.y, worldPos.z, ctx);
-		var brushWorldPos : h3d.Vector = worldPos.clone();
+		var brushWorldPos = worldPos.clone();
 		var fetchPos = new h2d.col.Point(hxd.Math.floor(screenPos.x * uvTexRes), hxd.Math.floor(screenPos.y * uvTexRes));
 		fetchPos.x = hxd.Math.clamp(fetchPos.x, 0, uvTexPixels.width - 1);
 		fetchPos.y = hxd.Math.clamp(fetchPos.y, 0, uvTexPixels.height - 1);
@@ -619,11 +619,11 @@ class TerrainEditor {
 		var tiles = terrainPrefab.terrain.tiles;
 		for( i in 0 ... tiles.length )
 			if( hxd.Math.ceil(pixel.z) == i )
-				brushWorldPos = tiles[i].localToGlobal(new h3d.Vector(pixel.x * terrainPrefab.tileSizeX, pixel.y * terrainPrefab.tileSizeY, 0));
+				brushWorldPos = tiles[i].localToGlobal(new h3d.col.Point(pixel.x * terrainPrefab.tileSizeX, pixel.y * terrainPrefab.tileSizeY, 0));
 		return brushWorldPos;
 	}
 
-	function drawBrushPreview( worldPos : h3d.Vector, ctx : Context ) {
+	function drawBrushPreview( worldPos : h3d.col.Point, ctx : Context ) {
 		if( ctx == null || ctx.local3d == null || ctx.local3d.getScene() == null ) return;
 		brushPreview.reset();
 		if( currentBrush.brushMode.mode == Delete || currentBrush.bitmap == null ) return;
@@ -631,7 +631,7 @@ class TerrainEditor {
 		brushPreview.previewAt(currentBrush, brushWorldPos);
 	}
 
-	function applyBrush( pos : h3d.Vector, ctx : Context ) {
+	function applyBrush( pos : h3d.col.Point, ctx : Context ) {
 		switch ( currentBrush.brushMode.mode ) {
 			case Paint: drawSurface(pos, ctx);
 			case AddSub: drawHeight(pos, ctx);
@@ -643,7 +643,7 @@ class TerrainEditor {
 		terrainPrefab.modified = true;
 	}
 
-	function useBrush( from : h3d.Vector, to : h3d.Vector, ctx : Context ) {
+	function useBrush( from : h3d.col.Point, to : h3d.col.Point, ctx : Context ) {
 		var dist = (to.sub(from)).length();
 		if( currentBrush.firstClick ) {
 			if( currentBrush.brushMode.mode == Set ) {
@@ -665,11 +665,11 @@ class TerrainEditor {
 			dir.normalize();
 			var pos = from.clone();
 			var step = dir.clone();
-			step.scale3(currentBrush.step);
+			step.scale(currentBrush.step);
 			while( dist + remainingDist >= currentBrush.step ) {
 				if( remainingDist > 0 ) {
 					var firstStep = dir.clone();
-					firstStep.scale3(currentBrush.step - remainingDist);
+					firstStep.scale(currentBrush.step - remainingDist);
 					pos = pos.add(firstStep);
 				}else
 					pos = pos.add(step);
@@ -683,7 +683,7 @@ class TerrainEditor {
 			remainingDist += dist;
 	}
 
-	public function deleteTile( pos : h3d.Vector, ctx : Context ) {
+	public function deleteTile( pos : h3d.col.Point, ctx : Context ) {
 		var brushWorldPos = uvTexPixels == null ? pos : getBrushWorldPosFromTex(pos, ctx);
 		if( brushWorldPos == null ) return;
 		var tile = terrainPrefab.terrain.getTileAtWorldPos(brushWorldPos.x, brushWorldPos.y);
@@ -698,7 +698,7 @@ class TerrainEditor {
 		renderTerrainUV(ctx);
 	}
 
-	public function drawSurface( pos : h3d.Vector, ctx : Context ) {
+	public function drawSurface( pos : h3d.col.Point, ctx : Context ) {
 		if( currentBrush.index == -1 ) return;
 		var brushWorldPos = uvTexPixels == null ? pos : getBrushWorldPosFromTex(pos, ctx);
 		if( brushWorldPos == null ) return;
@@ -735,7 +735,7 @@ class TerrainEditor {
 		}
 	}
 
-	public function drawHeight( pos : h3d.Vector, ctx : Context ) {
+	public function drawHeight( pos : h3d.col.Point, ctx : Context ) {
 		var brushWorldPos = uvTexPixels == null ? pos : getBrushWorldPosFromTex(pos, ctx);
 		if( brushWorldPos == null ) return;
 		var c = terrainPrefab.terrain.tiles.length;
@@ -781,7 +781,7 @@ class TerrainEditor {
 	public function setSelected( ctx : Context, b : Bool ) {
 		if( b ) {
 			var s2d = @:privateAccess ctx.local2d.getScene();
-			if( interactive == null ) 
+			if( interactive == null )
 				interactive.remove();
 			interactive = new h2d.Interactive(10000, 10000, s2d);
 			interactive.propagateEvents = true;

+ 1 - 1
hide/view/l3d/Gizmo.hx

@@ -245,7 +245,7 @@ class Gizmo extends h3d.scene.Object {
 		gizmo.setScale(ratio * distToCam * Math.tan(cam.fovY * 0.5 * Math.PI / 180.0));
 
 		if( !moving ) {
-			var dir = cam.pos.sub(gpos);
+			var dir = cam.pos.sub(gpos).toPoint();
 			dir = gizmo.globalToLocal(dir);
 			gizmo.getObjectByName("xAxis").setRotation(0, 0, dir.x < 0 ? Math.PI : 0);
 			gizmo.getObjectByName("yAxis").setRotation(0, 0, dir.y < 0 ? Math.PI : 0);

+ 1 - 1
hide/view/l3d/LightProbeBaker.hx

@@ -182,7 +182,7 @@ class LightProbeBaker {
 			// Bake a Probe
 			for( f in 0...6 ) {
 				engine.begin();
-				customCamera.setCubeMap(f, volumetricLightMap.getProbePosition(coords));
+				customCamera.setCubeMap(f, volumetricLightMap.getProbePosition(coords).toVector());
 				customCamera.update();
 				engine.pushTarget(envMap, f);
 				engine.clear(0,1,0);

+ 4 - 3
hrt/prefab/fx/Emitter.hx

@@ -555,6 +555,7 @@ class EmitterObject extends h3d.scene.Object {
 	static var tmpScale = new h3d.Vector();
 	static var tmpMat = new h3d.Matrix();
 	static var tmpMat2 = new h3d.Matrix();
+	static var tmpPt = new h3d.col.Point();
 	function doEmit( count : Int ) {
 		if( count == 0 )
 			return;
@@ -648,9 +649,9 @@ class EmitterObject extends h3d.scene.Object {
 					part.setRotation(tmpQuat);
 					part.orientation.load(tmpQuat);
 				case World:
-					tmpVec.load(tmpOffset);
-					localToGlobal(tmpVec);
-					part.setPosition(tmpVec.x, tmpVec.y, tmpVec.z);
+					tmpPt.set(tmpOffset.x, tmpOffset.y, tmpOffset.z);
+					localToGlobal(tmpPt);
+					part.setPosition(tmpPt.x, tmpPt.y, tmpPt.z);
 					if(emitterQuat == null) {
 						emitterQuat = tmpEmitterQuat;
 						tmpMat.load(getAbsPos());

+ 1 - 1
hrt/prefab/l3d/Spline.hx

@@ -420,7 +420,7 @@ class Spline extends Object3D {
 		lineGraphics.clear();
 		var b = true;
 		for( s in data.samples ) {
-			var localPos = ctx.local3d.globalToLocal(s.pos.toVector());
+			var localPos = ctx.local3d.globalToLocal(s.pos);
 			b ? lineGraphics.moveTo(localPos.x, localPos.y, localPos.z) : lineGraphics.lineTo(localPos.x, localPos.y, localPos.z);
 			b = false;
 		}

+ 6 - 6
hrt/prefab/terrain/TerrainMesh.hx

@@ -57,8 +57,8 @@ class TerrainMesh extends h3d.scene.Object {
 	public function getHeight( x : Float, y : Float, fast = false) : Null<Float> {
 		var t = getTileAtWorldPos(x, y);
 		if( t != null ) {
-			tmpVec.set(x, y);
-			var pos = t.globalToLocal(tmpVec);
+			tmpPt.set(x, y);
+			var pos = t.globalToLocal(tmpPt);
 			return t.getHeight(pos.x / tileSize.x, pos.y / tileSize.y, fast);
 		}
 		return null;
@@ -285,11 +285,11 @@ class TerrainMesh extends h3d.scene.Object {
 		return result;
 	}
 
-	static var tmpVec = new h3d.Vector();
+	static var tmpPt = new h3d.col.Point();
 	inline function toLocalPos( x : Float, y : Float ) {
-		tmpVec.set(x, y);
-		globalToLocal(tmpVec);
-		return tmpVec;
+		tmpPt.set(x, y);
+		globalToLocal(tmpPt);
+		return tmpPt;
 	}
 }
 

+ 2 - 2
hrt/prefab/vlm/VolumetricMesh.hx

@@ -81,7 +81,7 @@ class VolumetricMesh extends h3d.scene.Mesh {
 	}
 
 	public function getProbePosition(coords : h3d.col.IPoint){
-		var probePos : h3d.Vector = new h3d.Vector( coords.x/(probeCount.x - 1),  coords.y/(probeCount.y - 1), coords.z/(probeCount.z - 1));
+		var probePos = new h3d.col.Point( coords.x/(probeCount.x - 1),  coords.y/(probeCount.y - 1), coords.z/(probeCount.z - 1));
 		localToGlobal(probePos);
 		return probePos;
 	}
@@ -168,7 +168,7 @@ class VolumetricMesh extends h3d.scene.Mesh {
 		return result;
 	}
 
-	public function isInsideVolume(worldPos: h3d.Vector) : Bool {
+	public function isInsideVolume(worldPos: h3d.col.Point) : Bool {
 		var localPos = worldPos.clone();
 		globalToLocal(localPos);
 		return (localPos.x >= 0 && localPos.y >= 0 && localPos.z >= 0 && localPos.x <= 1 && localPos.y <= 1 && localPos.z <= 1);