Examples of Vect3


Examples of jray.common.Vect3

    throw new RuntimeException("not implemented");
  }
   
  @Override
    public Vect3 getBoundingSphereCenter(){
      Vect3 pos = new Vect3();
      Vect.add(position, model.getBoundingSphere().getPosition(), pos);
      return pos;
    }
View Full Code Here

Examples of jray.common.Vect3

        if (id == splitCount - 1) {
            to = heightPx;
        }

        BackwardRayTracer logic = getLogic();
        Vect3 rayDirection = new Vect3();
        Camera camera = scene.getCamera();

        Ray ray = new Ray(new Vect3(camera.getPosition()), rayDirection);

        Vect3 vertAdd = new Vect3(camera.getViewPaneHeightVector());
        Vect.scale(vertAdd, 1.0 / (heightPx - 1), vertAdd);
        Vect3 horzAdd = new Vect3(camera.getViewPaneWidthVector());
        Vect.scale(horzAdd, 1.0 / (widthPx - 1), horzAdd);

        for (int i = from; i < to; i++) {
            for (int j = 0; j < widthPx; j++) {
             
View Full Code Here

Examples of jray.common.Vect3

  public MinimalTriangle(Vect3 normal, Vect3 v1, Vect3 v2, Vect3 v3) {
    super(v1, normal);
    this.v2 = v2;
    this.v3 = v3;
   
    Vect3 avg = getBoundingSphereCenter();
    Vect3 tmp = new Vect3();
    Vect.subtract(avg, v3, tmp);
     
    bounds = new Sphere(avg,tmp.length(),0xFF000000);
  }
View Full Code Here

Examples of jray.common.Vect3

    throw new RuntimeException("not implemented");
  }

  @Override
  public double getHitPointDistance(Ray r) {
    Vect3 v1v2 = new Vect3();
    Vect3 v1v3 = new Vect3();
   
    Vect.subtract(v2, position, v1v2);
    Vect.subtract(v3, position, v1v3);
   
    double ret = RayTriangle.getHitPointRayTriangleDistance(r.getOrigin(), r.getDirection(), position, v1v2, v1v3);
View Full Code Here

Examples of jray.common.Vect3

    int triangleCount = triangleEdgeData.length/12;
   
    triangles = new MinimalTriangle[triangleCount];
   
    for(int i=0;i<triangleCount;i++)
      triangles[i] = new MinimalTriangle(new Vect3(triangleEdgeData[i*12+0],triangleEdgeData[i*12+1],triangleEdgeData[i*12+2]),
                                     new Vect3(triangleEdgeData[i*12+3],triangleEdgeData[i*12+4],triangleEdgeData[i*12+5]),
                                     new Vect3(triangleEdgeData[i*12+6],triangleEdgeData[i*12+7],triangleEdgeData[i*12+8]),
                                     new Vect3(triangleEdgeData[i*12+9],triangleEdgeData[i*12+10],triangleEdgeData[i*12+11]));
   
    Vect3 max = new Vect3(Double.NEGATIVE_INFINITY,Double.NEGATIVE_INFINITY,Double.NEGATIVE_INFINITY);
    Vect3 min = new Vect3(Double.POSITIVE_INFINITY,Double.POSITIVE_INFINITY,Double.POSITIVE_INFINITY);
   
    for(MinimalTriangle m : triangles){
      Vect3 p = m.getBoundingSphere().getPosition();
     
      if(p.data[0]>max.data[0]) max.data[0] = p.data[0];
      if(p.data[1]>max.data[1]) max.data[1] = p.data[1];
      if(p.data[2]>max.data[2]) max.data[2] = p.data[2];
      if(p.data[0]<min.data[0]) min.data[0] = p.data[0];
      if(p.data[1]<min.data[1]) min.data[1] = p.data[1];
      if(p.data[2]<min.data[2]) min.data[2] = p.data[2];
    }
   
    max.data[0] = (max.data[0]+min.data[0])/2;
    max.data[1] = (max.data[1]+min.data[1])/2;
    max.data[2] = (max.data[2]+min.data[2])/2;
   
    double radius = 0;
    for(MinimalTriangle m : triangles){
      Vect3 p = m.getBoundingSphere().getPosition();
      Vect.subtract(p, max, min);
      double dist = m.getBoundingSphereRadius() + min.length();
     
      if(dist > radius){
        radius = dist;
View Full Code Here

Examples of jray.common.Vect3

        if (c.o == null) {
            return 0xFFFF00FF00FF00FFL;
        }
       
        //Calculate hit position
        Vect3 hitPoint = new Vect3();
        Vect.addMultiple(ray.getOrigin(), ray.getDirection(), c.d, hitPoint);
       
        //Get color and normal at hitpoint
        long color = IntColors.toLong(c.o.getColorAt(hitPoint));
        Vect3 normal = new Vect3();
        c.o.getNormalAt(hitPoint, normal);
       
        //Check if anything is blocking direct sunlight (go where the sunlight comes from)
        Vect3 lrDir = new Vect3();
        Vect.scale(LIGHT_DIRECTION, -1, lrDir);
        Ray lightRay = new Ray(hitPoint, lrDir);
        CollisionDetails lc = findNearestHit(lightRay);
       
        //if nothing blocks the sun's light, add ambient and diffuse light, otherwise ambient only 
View Full Code Here

Examples of jray.common.Vect3

    public Vect3 getViewPaneHeightVector() {
        return viewPaneHeightVector;
    }

    public static Camera createCamera(Vect3 position, Vect3 viewPaneCenter, Vect3 camUp, double viewPaneWidth, double viewPaneHeight) {
        Vect3 temp1 = new Vect3(camUp);
        temp1.normalize();
        Vect3 viewPaneHeightVector = new Vect3(camUp);
        Vect.scale(viewPaneHeightVector, -viewPaneHeight, viewPaneHeightVector);

        Vect3 viewPaneWidthVector = new Vect3();
        Vect.subtract(position, viewPaneCenter, temp1);
        Vect.crossProduct(temp1, viewPaneHeightVector, viewPaneWidthVector);
        viewPaneWidthVector.normalize();
        Vect.scale(viewPaneWidthVector, viewPaneWidth, viewPaneWidthVector);

        Vect3 viewPaneEdge = new Vect3();
        viewPaneWidthVector.copyDataTo(temp1);
        Vect.scale(temp1, 0.5, temp1);
        Vect.subtract(viewPaneCenter, temp1, viewPaneEdge);
        viewPaneHeightVector.copyDataTo(temp1);
        Vect.scale(temp1, 0.5, temp1);
View Full Code Here

Examples of jray.common.Vect3

        return new Camera(position, viewPaneEdge, viewPaneWidthVector, viewPaneHeightVector);
    }

    public Camera(Vect3 position, Vect3 viewPaneCenter, Vect3 camUp, double width, double height, double absoluteHeight) {
      super(position, new Vect3(viewPaneCenter));
        Camera temp = createCamera(position, viewPaneCenter, camUp, width / height * absoluteHeight, absoluteHeight);

        this.position = temp.position;
        this.viewPaneEdge = temp.viewPaneEdge;
        this.viewPaneHeightVector = temp.viewPaneHeightVector;
View Full Code Here

Examples of jray.common.Vect3

        if (c.o == null) {
            return 0xFFFF00FF00FF00FFL;
        }
       
        //Calculate hit point
        Vect3 hitPoint = new Vect3();
        Vect.addMultiple(ray.getOrigin(), ray.getDirection(), c.d, hitPoint); //Position des Treffers berechnen
       
        //Return object's color at hit point
        return IntColors.toLong(c.o.getColorAt(hitPoint));
    }
View Full Code Here

Examples of jray.common.Vect3

        this.viewPaneHeightVector = temp.viewPaneHeightVector;
        this.viewPaneWidthVector = temp.viewPaneWidthVector;
    }

    public Camera(Vect3 position, Vect3 viewPaneCenter, Vect3 camUp) {
      super(position, new Vect3(viewPaneCenter));
        Camera temp = createCamera(position, viewPaneCenter, camUp, 640.0 / 480, 1);

        this.position = temp.position;
        this.viewPaneEdge = temp.viewPaneEdge;
        this.viewPaneHeightVector = temp.viewPaneHeightVector;
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.