Sorry, my last post was not for this discusion :P

Forget it.

On 14 abr, 11:50, ragaes <[email protected]> wrote:
> The following works for me.
>
> In BoundingVolumeBase.as:
>
> public function transformBy(m : Matrix3D) : BoundingVolumeBase
> {
>         var vs : Vector.<Number> = this.aabbPoints;
>
>         for(var i : uint = 0; i< vs.length; i+=3)
>         {
>                 var v : Vector3D = m.transformVector(new Vector3D(vs[i], 
> vs[i+1],
> vs[i+2]));
>
>                 vs[i] = v.x;
>                 vs[i+1] = v.y;
>                 vs[i+2] = v.z;
>         }
>
>         var bvb : BoundingVolumeBase = new BoundingVolumeBase();
>         bvb.fromVertices(vs);
>
>         return bvb;
>
> }
>
> In ObjectContainer3D.as (Quick patch):
>
> public function calculateBounds() : BoundingVolumeBase
> {
>         var minx : Number = Number.POSITIVE_INFINITY;
>         var miny : Number = Number.POSITIVE_INFINITY;
>         var minz : Number = Number.POSITIVE_INFINITY;
>         var maxx : Number = Number.NEGATIVE_INFINITY;
>         var maxy : Number = Number.NEGATIVE_INFINITY;
>         var maxz : Number = Number.NEGATIVE_INFINITY;
>
>         var i : uint;
>         var len : uint = _children.length;
>         var child : ObjectContainer3D;
>         while (i < len) {
>                 child = _children[i++];
>
>                 var bvbChild : BoundingVolumeBase = new BoundingVolumeBase();
>                 bvbChild.fromExtremes(child.minX, child.minY, child.minZ,
> child.maxX, child.maxY, child.maxZ);
>                 bvbChild = bvbChild.transformBy(child.transform);
>
>                 minx = Math.min(bvbChild.min.x, minx);
>                 miny = Math.min(bvbChild.min.y, miny);
>                 minz = Math.min(bvbChild.min.z, minz);
>
>                 maxx = Math.max(bvbChild.max.x, maxx);
>                 maxy = Math.max(bvbChild.max.y, maxy);
>                 maxz = Math.max(bvbChild.max.z, maxz);
>         }
>
>         var bvb : BoundingVolumeBase = new BoundingVolumeBase();
>         bvb.fromExtremes(minx, miny, minz, maxx, maxy, maxz);
>         return bvb;
>
> }
>
> /**
>  * The minimum extremum of the object along the X-axis.
>  */
> public function get minX() : Number
> {
>         return calculateBounds().min.x;
>
> }
>
> /**
>  * The minimum extremum of the object along the Y-axis.
>  */
> public function get minY() : Number
> {
>         return calculateBounds().min.y;
>
> }
>
> /**
>  * The minimum extremum of the object along the Z-axis.
>  */
> public function get minZ() : Number
> {
>         return calculateBounds().min.z;
>
> }
>
> /**
>  * The maximum extremum of the object along the X-axis.
>  */
> public function get maxX() : Number
> {
>         return calculateBounds().max.x;
>
> }
>
> /**
>  * The maximum extremum of the object along the Y-axis.
>  */
> public function get maxY() : Number
> {
>         return calculateBounds().max.y;
>
> }
>
> /**
>  * The maximum extremum of the object along the Z-axis.
>  */
> public function get maxZ() : Number
> {
>         return calculateBounds().max.z;
>
>
>
> }- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

Reply via email to