EntityBox weirdness

Blitz3D Forums/Blitz3D Programming/EntityBox weirdness

martonic(Posted 2004) [#1]
There seems to be a discrepancy between the origin of a mesh and the zero-points of the same mesh as applied to the function EntityBox. For instance:

	width#  = MeshWidth(Entity)
	height# = MeshHeight(Entity)
	depth#  = MeshDepth(Entity)

	x# = EntityX(Entity)
	y# = EntityY(Entity)
	z# = EntityZ(Entity)

;Draw a ghost box around the mesh
	cube = CreateCube() ; Cube starts as 2x2x2
	ScaleEntity cube,width/2,height/2,depth/2
	PositionEntity cube,x,y+height/2,z
	RotateEntity cube,EntityPitch(Entity),EntityYaw(Entity),EntityRoll(Entity)
	EntityAlpha cube,0.3
	EntityParent cube,Entity

;The ghost box perfectly encloses the mesh

;Set corresponding bounding box
;Same parameters as ghost box
	EntityBox Entity,0,height/2,0,width,height,depth	; wrong!
;But it doesn't work

;Translate the y and z coordinates by 1/2 their value
	EntityBox Entity,0,0,depth/2,width,height,depth		; right!
;Now it works!


The above code applies to a mesh with the origin at the bottom center.

But... no matter where the origin is of a mesh is placed, the same parameters that create a _visible_ bounding box should create a _pickable_ bounding box - but they don't!

Can anyone explain this?

Thanks... and be careful when using EntityBox!


D4NM4N(Posted 2004) [#2]
im not sure but dont your entitybox coords have to start from the corner? it seems by specifiing 0,0,depth you are starting from the center of the mesh??
shouldnt it be:
when you create the mesh at 0,0,0

entitybox entity,-width/2,-height/2,-depth/2,width,height,depth


D4NM4N(Posted 2004) [#3]
if you have to create it when you do you will have to add the correct offset using entityx/y/z()
Hope it helps,

Its probably irrelevent but i find fitmesh useful, it sets the meshes origin to 0,0,0 and you can offset the mesh in relation to this. Then after doing this i use entitybox with the same parameters


martonic(Posted 2004) [#4]
One thing's for sure. The reference document fails to state whether the zero-point of an entity box matches the center of the box, the corner of the box, or the 330 foot sign in left field <gn>. Does anyone know for sure?

Offsetting by EntityX/Y/Z is not necessary unless you specify the "global" flag in your call to EntityBox.


Vorderman(Posted 2004) [#5]
I believe it is the corner of the box, and then the wdith depth and height params go from that.

So you need to use...
entitybox entity,-width/2,-height/2,-depth/2,width,height,depth 

...as D_Grafix said.


Space_guy(Posted 2004) [#6]
I would love an official explanation on how to use the command :) cos seemingly it doesnt obey my commands at all.