当前位置: 首页>>代码示例>>Java>>正文


Java BoundingBox类代码示例

本文整理汇总了Java中rajawali.bounds.BoundingBox的典型用法代码示例。如果您正苦于以下问题:Java BoundingBox类的具体用法?Java BoundingBox怎么用?Java BoundingBox使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


BoundingBox类属于rajawali.bounds包,在下文中一共展示了BoundingBox类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: boundsInFrustum

import rajawali.bounds.BoundingBox; //导入依赖的package包/类
public boolean boundsInFrustum(BoundingBox bounds) {
    Number3D[] corners = mTmp;
    bounds.copyPoints(mTmp);//copy transformed points and test
    int isout;
    for (int i = 0; i < 6; i++) {
        isout = 0;
        for (int j = 0; j < 8; j++)
            if (planes[i].getPointSide(corners[j]) == PlaneSide.Back) {
                isout++;
            }

        if (isout == 8) {
            return false;
        }
    }

    return true;
}
 
开发者ID:BitMastro,项目名称:PortalLW,代码行数:19,代码来源:Frustum.java

示例2: boundsInFrustum

import rajawali.bounds.BoundingBox; //导入依赖的package包/类
public boolean boundsInFrustum (BoundingBox bounds) {
	Vector3[] corners = mTmp;
	bounds.copyPoints(mTmp);//copy transformed points and test
	int isout;
	for (int i = 0; i < 6; i++) {
		isout= 0;
		for (int j = 0; j < 8; j++)
			if (planes[i].getPointSide(corners[j]) == PlaneSide.Back){ isout++; }

		if (isout == 8) { 
			return false;
		}
	}

	return true;
}
 
开发者ID:takyonxxx,项目名称:IRobot-Android,代码行数:17,代码来源:Frustum.java

示例3: boundsInFrustum

import rajawali.bounds.BoundingBox; //导入依赖的package包/类
public boolean boundsInFrustum (BoundingBox bounds) {
	for(int i=0; i<6; i++) {
		Plane p = planes[i];
		mPoint1.x = p.getNormal().x > 0 ? bounds.getMin().x : bounds.getMax().x;
		mPoint2.x = p.getNormal().x > 0 ? bounds.getMax().x : bounds.getMin().x;
		mPoint1.y = p.getNormal().y > 0 ? bounds.getMin().y : bounds.getMax().y;
		mPoint2.y = p.getNormal().y > 0 ? bounds.getMax().y : bounds.getMin().y;
		mPoint1.z = p.getNormal().z > 0 ? bounds.getMin().z : bounds.getMax().z;
		mPoint2.z = p.getNormal().z > 0 ? bounds.getMax().z : bounds.getMin().z;

		double distance1 = p.distance(mPoint1);
		double distance2 = p.distance(mPoint2);

		if ( distance1 < 0 && distance2 < 0 )
			return false;
	}

	return true;
}
 
开发者ID:OpsLabJPL,项目名称:MarsImagesAndroid,代码行数:20,代码来源:Frustum.java

示例4: apply

import rajawali.bounds.BoundingBox; //导入依赖的package包/类
public void apply(INode node) {
    if (node instanceof BaseObject3D) {
        BaseObject3D o = (BaseObject3D) node;
        if (!o.isVisible() || !o.isInFrustum()) return;
        //RajLog.d("VISITING " + o.getName());

        if (o.getGeometry().hasBoundingSphere()) {
            BoundingSphere bsphere = o.getGeometry().getBoundingSphere();
            bsphere.calculateBounds(o.getGeometry());
            bsphere.transform(o.getModelMatrix());

            if (intersectsWith(bsphere)) {
                if (mPickedObject == null ||
                        (mPickedObject != null && o.getPosition().z < mPickedObject.getPosition().z))
                    mPickedObject = o;
            }
        } else {
            // Assume bounding box if no bounding sphere found.
            BoundingBox bbox = o.getGeometry().getBoundingBox();
            bbox.calculateBounds(o.getGeometry());
            bbox.transform(o.getModelMatrix());

            if (intersectsWith(bbox)) {
                if (mPickedObject == null ||
                        (mPickedObject != null && o.getPosition().z < mPickedObject.getPosition().z))
                    mPickedObject = o;
            }
        }
    }
}
 
开发者ID:BitMastro,项目名称:PortalLW,代码行数:31,代码来源:RayPickingVisitor.java

示例5: intersectsWith

import rajawali.bounds.BoundingBox; //导入依赖的package包/类
private boolean intersectsWith(BoundingBox bbox) {
    Number3D raySta = mRayStart;
    Number3D rayEnd = mRayEnd;
    Number3D boxMin = bbox.getTransformedMin();
    Number3D boxMax = bbox.getTransformedMax();

    if (rayEnd.x < boxMin.x && raySta.x < boxMin.x) return false;
    if (rayEnd.x > boxMax.x && raySta.x > boxMax.x) return false;
    if (rayEnd.y < boxMin.y && raySta.y < boxMin.y) return false;
    if (rayEnd.y > boxMax.y && raySta.y > boxMax.y) return false;
    if (rayEnd.z < boxMin.z && raySta.z < boxMin.z) return false;
    if (rayEnd.z > boxMax.z && raySta.z > boxMax.z) return false;
    if (raySta.x > boxMin.x && raySta.x < boxMax.x &&
            raySta.y > boxMin.y && raySta.y < boxMax.y &&
            raySta.z > boxMin.z && raySta.z < boxMax.z) {
        mHitPoint.setAllFrom(raySta);
        return true;
    }
    if ((getIntersection(raySta.x - boxMin.x, rayEnd.x - boxMin.x, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.X))
            || (getIntersection(raySta.y - boxMin.y, rayEnd.y - boxMin.y, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.Y))
            || (getIntersection(raySta.z - boxMin.z, rayEnd.z - boxMin.z, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.Z))
            || (getIntersection(raySta.x - boxMax.x, rayEnd.x - boxMax.x, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.X))
            || (getIntersection(raySta.y - boxMax.y, rayEnd.y - boxMax.y, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.Y))
            || (getIntersection(raySta.z - boxMax.z, rayEnd.z - boxMax.z, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.Z)))
        return true;

    return false;
}
 
开发者ID:BitMastro,项目名称:PortalLW,代码行数:29,代码来源:RayPickingVisitor.java

示例6: getBoundingBox

import rajawali.bounds.BoundingBox; //导入依赖的package包/类
/**
 * Returns a BoundingBox representative of this frustum.
 * This will create the BoundingBox if necessary.
 * 
 * @return BoundingBox which contains this frustum.
 */
public BoundingBox getBoundingBox() {
	if (mBoundingBox == null) {
		setBounds();
	} 
	return mBoundingBox;
}
 
开发者ID:takyonxxx,项目名称:IRobot-Android,代码行数:13,代码来源:Frustum.java

示例7: apply

import rajawali.bounds.BoundingBox; //导入依赖的package包/类
public void apply(INode node) {
	if(node instanceof Object3D) {
		Object3D o = (Object3D)node;
		if(!o.isVisible() || !o.isInFrustum()) return;
		//RajLog.d("VISITING " + o.getName());
		
		if (o.getGeometry().hasBoundingSphere()) {
			BoundingSphere bsphere = o.getGeometry().getBoundingSphere();
			bsphere.calculateBounds(o.getGeometry());
			bsphere.transform(o.getModelMatrix());
			
			if(intersectsWith(bsphere)) {
				if(mPickedObject == null ||
						(mPickedObject != null && o.getPosition().z < mPickedObject.getPosition().z))
					mPickedObject = o;
			}
		} else {
			// Assume bounding box if no bounding sphere found.
			BoundingBox bbox = o.getGeometry().getBoundingBox();
			bbox.calculateBounds(o.getGeometry());
			bbox.transform(o.getModelMatrix());
			
			if(intersectsWith(bbox)) {
				if(mPickedObject == null ||
						(mPickedObject != null && o.getPosition().z < mPickedObject.getPosition().z))
					mPickedObject = o;
			}
		}
	}
}
 
开发者ID:takyonxxx,项目名称:IRobot-Android,代码行数:31,代码来源:RayPickingVisitor.java

示例8: intersectsWith

import rajawali.bounds.BoundingBox; //导入依赖的package包/类
private boolean intersectsWith(BoundingBox bbox) {
	Vector3 raySta = mRayStart;
	Vector3 rayEnd = mRayEnd;
	Vector3 boxMin = bbox.getTransformedMin();
	Vector3 boxMax = bbox.getTransformedMax();

	if (rayEnd.x < boxMin.x && raySta.x < boxMin.x) return false;
	if (rayEnd.x > boxMax.x && raySta.x > boxMax.x) return false;
	if (rayEnd.y < boxMin.y && raySta.y < boxMin.y) return false;
	if (rayEnd.y > boxMax.y && raySta.y > boxMax.y) return false;
	if (rayEnd.z < boxMin.z && raySta.z < boxMin.z) return false;
	if (rayEnd.z > boxMax.z && raySta.z > boxMax.z) return false;
	if (raySta.x > boxMin.x && raySta.x < boxMax.x &&
	    raySta.y > boxMin.y && raySta.y < boxMax.y &&
	    raySta.z > boxMin.z && raySta.z < boxMax.z) 
	    {mHitPoint.setAll(raySta); 
	    return true;}
	if ( (getIntersection(raySta.x-boxMin.x, rayEnd.x-boxMin.x, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.X))
	  || (getIntersection(raySta.y-boxMin.y, rayEnd.y-boxMin.y, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.Y)) 
	  || (getIntersection(raySta.z-boxMin.z, rayEnd.z-boxMin.z, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.Z)) 
	  || (getIntersection(raySta.x-boxMax.x, rayEnd.x-boxMax.x, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.X)) 
	  || (getIntersection(raySta.y-boxMax.y, rayEnd.y-boxMax.y, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.Y)) 
	  || (getIntersection(raySta.z-boxMax.z, rayEnd.z-boxMax.z, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.Z)))
		return true;

	return false;
}
 
开发者ID:takyonxxx,项目名称:IRobot-Android,代码行数:28,代码来源:RayPickingVisitor.java

示例9: contains

import rajawali.bounds.BoundingBox; //导入依赖的package包/类
public boolean contains(IBoundingVolume boundingVolume) {
	if(!(boundingVolume instanceof BoundingBox)) return false;
	BoundingBox boundingBox = (BoundingBox)boundingVolume;
	Vector3 otherMin = boundingBox.getTransformedMin();
	Vector3 otherMax = boundingBox.getTransformedMax();
	Vector3 min = mTransformedMin;
	Vector3 max = mTransformedMax;		

	return (max.x >= otherMax.x) && (min.x <= otherMin.x) &&
			(max.y >= otherMax.y) && (min.y <= otherMin.y) &&
			(max.z >= otherMax.z) && (min.z <= otherMin.z);
}
 
开发者ID:takyonxxx,项目名称:IRobot-Android,代码行数:13,代码来源:A_nAABBTree.java

示例10: isContainedBy

import rajawali.bounds.BoundingBox; //导入依赖的package包/类
public boolean isContainedBy(IBoundingVolume boundingVolume) {
	if(!(boundingVolume instanceof BoundingBox)) return false;
	BoundingBox boundingBox = (BoundingBox)boundingVolume;
	Vector3 otherMin = boundingBox.getTransformedMin();
	Vector3 otherMax = boundingBox.getTransformedMax();
	Vector3 min = mTransformedMin;
	Vector3 max = mTransformedMax;		

	return (max.x <= otherMax.x) && (min.x >= otherMin.x) &&
			(max.y <= otherMax.y) && (min.y >= otherMin.y) &&
			(max.z <= otherMax.z) && (min.z >= otherMin.z);
}
 
开发者ID:takyonxxx,项目名称:IRobot-Android,代码行数:13,代码来源:A_nAABBTree.java

示例11: apply

import rajawali.bounds.BoundingBox; //导入依赖的package包/类
public void apply(INode node) {
	if(node instanceof BaseObject3D) {
		BaseObject3D o = (BaseObject3D)node;
		if(!o.isVisible() || !o.isInFrustum()) return;
		//RajLog.d("VISITING " + o.getName());
		
		if (o.getGeometry().hasBoundingSphere()) {
			BoundingSphere bsphere = o.getGeometry().getBoundingSphere();
			bsphere.calculateBounds(o.getGeometry());
			bsphere.transform(o.getModelMatrix());
			
			if(intersectsWith(bsphere)) {
				if(mPickedObject == null ||
						(mPickedObject != null && o.getPosition().z < mPickedObject.getPosition().z))
					mPickedObject = o;
			}
		} else {
			// Assume bounding box if no bounding sphere found.
			BoundingBox bbox = o.getGeometry().getBoundingBox();
			bbox.calculateBounds(o.getGeometry());
			bbox.transform(o.getModelMatrix());
			
			if(intersectsWith(bbox)) {
				if(mPickedObject == null ||
						(mPickedObject != null && o.getPosition().z < mPickedObject.getPosition().z))
					mPickedObject = o;
			}
		}
	}
}
 
开发者ID:OpsLabJPL,项目名称:MarsImagesAndroid,代码行数:31,代码来源:RayPickingVisitor.java

示例12: intersectsWith

import rajawali.bounds.BoundingBox; //导入依赖的package包/类
private boolean intersectsWith(BoundingBox bbox) {
	Number3D raySta = mRayStart;
	Number3D rayEnd = mRayEnd;
	Number3D boxMin = bbox.getTransformedMin();
	Number3D boxMax = bbox.getTransformedMax();

	if (rayEnd.x < boxMin.x && raySta.x < boxMin.x) return false;
	if (rayEnd.x > boxMax.x && raySta.x > boxMax.x) return false;
	if (rayEnd.y < boxMin.y && raySta.y < boxMin.y) return false;
	if (rayEnd.y > boxMax.y && raySta.y > boxMax.y) return false;
	if (rayEnd.z < boxMin.z && raySta.z < boxMin.z) return false;
	if (rayEnd.z > boxMax.z && raySta.z > boxMax.z) return false;
	if (raySta.x > boxMin.x && raySta.x < boxMax.x &&
	    raySta.y > boxMin.y && raySta.y < boxMax.y &&
	    raySta.z > boxMin.z && raySta.z < boxMax.z) 
	    {mHitPoint.setAllFrom(raySta); 
	    return true;}
	if ( (getIntersection(raySta.x-boxMin.x, rayEnd.x-boxMin.x, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.X))
	  || (getIntersection(raySta.y-boxMin.y, rayEnd.y-boxMin.y, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.Y)) 
	  || (getIntersection(raySta.z-boxMin.z, rayEnd.z-boxMin.z, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.Z)) 
	  || (getIntersection(raySta.x-boxMax.x, rayEnd.x-boxMax.x, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.X)) 
	  || (getIntersection(raySta.y-boxMax.y, rayEnd.y-boxMax.y, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.Y)) 
	  || (getIntersection(raySta.z-boxMax.z, rayEnd.z-boxMax.z, raySta, rayEnd) && isInBox(boxMin, boxMax, Axis.Z)))
		return true;

	return false;
}
 
开发者ID:OpsLabJPL,项目名称:MarsImagesAndroid,代码行数:28,代码来源:RayPickingVisitor.java

示例13: BoneAnimationFrame

import rajawali.bounds.BoundingBox; //导入依赖的package包/类
public BoneAnimationFrame() {
    mBounds = new BoundingBox();
    mSkeleton = new Skeleton();
}
 
开发者ID:BitMastro,项目名称:PortalLW,代码行数:5,代码来源:BoneAnimationFrame.java

示例14: getBoundingBox

import rajawali.bounds.BoundingBox; //导入依赖的package包/类
public BoundingBox getBoundingBox() {
    return mBounds;
}
 
开发者ID:BitMastro,项目名称:PortalLW,代码行数:4,代码来源:BoneAnimationFrame.java

示例15: SkeletalAnimationFrame

import rajawali.bounds.BoundingBox; //导入依赖的package包/类
public SkeletalAnimationFrame() {
	mBounds = new BoundingBox();
	mSkeleton = new Skeleton();
}
 
开发者ID:takyonxxx,项目名称:IRobot-Android,代码行数:5,代码来源:SkeletalAnimationFrame.java


注:本文中的rajawali.bounds.BoundingBox类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。