本文整理汇总了Java中org.rajawali3d.math.vector.Vector3.multiply方法的典型用法代码示例。如果您正苦于以下问题:Java Vector3.multiply方法的具体用法?Java Vector3.multiply怎么用?Java Vector3.multiply使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.rajawali3d.math.vector.Vector3
的用法示例。
在下文中一共展示了Vector3.multiply方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: transform
import org.rajawali3d.math.vector.Vector3; //导入方法依赖的package包/类
public void transform(final Matrix4 matrix) {
mTransformedMin.setAll(Double.MAX_VALUE, Double.MAX_VALUE, Double.MAX_VALUE);
mTransformedMax.setAll(-Double.MAX_VALUE, -Double.MAX_VALUE, -Double.MAX_VALUE);
for(mI=0; mI<8; ++mI) {
Vector3 o = mPoints[mI];
Vector3 d = mTmp[mI];
d.setAll(o);
d.multiply(matrix);
if(d.x < mTransformedMin.x) mTransformedMin.x = d.x;
if(d.y < mTransformedMin.y) mTransformedMin.y = d.y;
if(d.z < mTransformedMin.z) mTransformedMin.z = d.z;
if(d.x > mTransformedMax.x) mTransformedMax.x = d.x;
if(d.y > mTransformedMax.y) mTransformedMax.y = d.y;
if(d.z > mTransformedMax.z) mTransformedMax.z = d.z;
}
}
示例2: fire
import org.rajawali3d.math.vector.Vector3; //导入方法依赖的package包/类
public void fire() {
if(mLastFireTime + MISSILE_INTERVAL > System.currentTimeMillis()) {
return;
}
// clone object and add to scene
Object3D missileObj = mMissileObj.clone();
missileObj.setX(mCameraBox.getX());
missileObj.setY(mCameraBox.getY());
missileObj.setZ(mCameraBox.getZ());
missileObj.setColor(FRIENDLY_MISSILE_COLOR);
mRenderer.getCurrentScene().addChild(missileObj);
//mMissileObj.addChild(missileObj);
// make Missile instance and set location and target
Missile missile = new Missile(mCameraBox.getX(), mCameraBox.getY(), mCameraBox.getZ(),
Missile.FROM_FRIENDLY, missileObj);
Vector3 targetVec = new Vector3(mHeadViewForward);
targetVec.normalize();
targetVec.multiply(30);
missile.setTarget(mCameraBox.getX() + targetVec.x,
mCameraBox.getY() + targetVec.y,
mCameraBox.getZ() + targetVec.z);
synchronized (mMissiles) {
mMissiles.add(missile);
}
}
示例3: attackDestroyer
import org.rajawali3d.math.vector.Vector3; //导入方法依赖的package包/类
private void attackDestroyer(double x, double y, double z) {
// Make target vector
Random rand = new Random();
Vector3 targetVec = new Vector3(mDestroyer.object.getX()+rand.nextInt(20),
mDestroyer.object.getY()+rand.nextInt(20),
mDestroyer.object.getZ()+rand.nextInt(20));
targetVec.subtract(x, y, z);
targetVec.normalize();
targetVec.multiply(3);
// clone object and add to scene
Object3D missileObj = mMissileObj.clone();
missileObj.setX(x+targetVec.x);
missileObj.setY(y+targetVec.y);
missileObj.setZ(z+targetVec.z);
missileObj.setColor(FRIENDLY_MISSILE_COLOR);
mRenderer.getCurrentScene().addChild(missileObj);
//mMissileObj.addChild(missileObj);
// make Missile instance and set location and target
Missile missile = new Missile(x+targetVec.x, y+targetVec.y, z+targetVec.z,
Missile.FROM_MOTHERSHIP, missileObj);
targetVec.multiply(20);
missile.setTarget(targetVec.x, targetVec.y, targetVec.z);
synchronized (mMissiles) {
mMissiles.add(missile);
}
}
示例4: buildMeshes
import org.rajawali3d.math.vector.Vector3; //导入方法依赖的package包/类
private void buildMeshes() {
for (int i = 0; i < mNumMeshes; ++i) {
int boneIndex = 0;
SkeletonMeshData mesh = mMeshes[i];
mesh.vertices = new float[mesh.numVertices * 3];
mesh.indices = new int[mesh.numWeights];
mesh.weights = new float[mesh.numWeights];
mesh.textureCoordinates = new float[mesh.numVertices * 2];
int numVerts = mesh.numVertices;
for (int j = 0; j < numVerts; ++j) {
BoneVertex vert = mesh.boneVertices[j];
Vector3 position = new Vector3();
for (int k = 0; k < vert.numWeights; ++k) {
BoneWeight weight = mesh.boneWeights[vert.weightIndex + k];
SkeletonJoint joint = mJoints[weight.jointIndex];
Vector3 rotPos = joint.getOrientation().multiply(weight.position);
//We don't clone here because nothing will be able to use the quaternion scratch before we do
Vector3 pos = Vector3.addAndCreate(joint.getPosition(), rotPos);
pos.multiply(weight.weightValue);
position.add(pos);
mesh.indices[boneIndex] = weight.jointIndex;
mesh.weights[boneIndex++] = weight.weightValue;
}
int vertIndex = j * 3;
mesh.vertices[vertIndex] = (float) position.x;
mesh.vertices[vertIndex + 1] = (float) position.y;
mesh.vertices[vertIndex + 2] = (float) position.z;
int uvIndex = j * 2;
mesh.textureCoordinates[uvIndex] = (float) vert.textureCoordinate.getX();
mesh.textureCoordinates[uvIndex + 1] = (float) vert.textureCoordinate.getY();
}
}
}
示例5: calculateChildSideLengths
import org.rajawali3d.math.vector.Vector3; //导入方法依赖的package包/类
/**
* Calculates the side lengths that child nodes
* of this node should have.
*/
protected void calculateChildSideLengths() {
//Determine the distance on each axis
Vector3 temp = Vector3.subtractAndCreate(mTransformedMax, mTransformedMin);
temp.multiply(0.5f); //Divide it in half
float overlap = 1.0f + mOverlap/100.0f;
temp.multiply(overlap);
temp.absoluteValue();
mChildLengths.setAll(temp);
}
示例6: transformPoints
import org.rajawali3d.math.vector.Vector3; //导入方法依赖的package包/类
private void transformPoints() {
if (floorPlanData != null) {
List<Vector2> filledPoints = floorPlanData.getFilledPoints();
synchronized (points) {
points.clear();
for (Vector2 filledPoint : filledPoints) {
Vector3 v3 = new Vector3(filledPoint.getX(), filledPoint.getY(), 0);
v3.multiply(activeTransformation);
points.add(v3);
}
}
}
}
示例7: attackMothership
import org.rajawali3d.math.vector.Vector3; //导入方法依赖的package包/类
private void attackMothership(double x, double y, double z, int from) {
// Make target vector
Vector3 targetVec = new Vector3(mMothershipObj.getX(), mMothershipObj.getY(), mMothershipObj.getZ());
double distance = targetVec.distanceTo(x, y, z);
targetVec.subtract(x, y, z);
targetVec.normalize();
if(distance > 50) {
targetVec.multiply(30);
} else {
targetVec.multiply(3);
}
// clone object and add to scene
Object3D missileObj = mMissileObj.clone();
missileObj.setX(x+targetVec.x);
missileObj.setY(y+targetVec.y);
missileObj.setZ(z+targetVec.z);
missileObj.setColor(ENEMY_MISSILE_COLOR);
mRenderer.getCurrentScene().addChild(missileObj);
//mMissileObj.addChild(missileObj);
// make Missile instance and set location and target
Missile missile = new Missile(x+targetVec.x, y+targetVec.y, z+targetVec.z,
from, missileObj);
targetVec.multiply((distance+10)/3);
missile.setTarget(mMothershipObj.getX(), mMothershipObj.getY(), mMothershipObj.getZ());
if(distance > 50) {
missile.setSpeed(0.75);
}
synchronized (mMissiles) {
mMissiles.add(missile);
}
}
示例8: getWorldPosition
import org.rajawali3d.math.vector.Vector3; //导入方法依赖的package包/类
public Vector3 getWorldPosition() {
if(mParentMatrix == null) return mPosition;
Vector3 worldPos = mPosition.clone();
worldPos.multiply(mParentMatrix);
return worldPos;
}