Package ca.eandb.jmist.math

Examples of ca.eandb.jmist.math.Basis3


    return scaleFactor * scaleFactor * super.getSurfaceArea();
  }

  private void transformShadingContext(ShadingContext context) {

    Basis3 basis = context.getShadingBasis();
    Vector3 u = t.apply(basis.u());
    Vector3 v = t.apply(basis.v());

    context.setShadingBasis(Basis3.fromUV(u, v));

    basis = context.getBasis();
    u = t.apply(basis.u());
    v = t.apply(basis.v());

    context.setBasis(Basis3.fromUV(u, v));

    Point3 p = t.apply(context.getPosition());
    context.setPosition(p);
View Full Code Here


  @Override
  public Color bsdf(SurfacePoint x, Vector3 in, Vector3 out,
      WavelengthPacket lambda) {

    Vector3 p = out.unit().minus(in.unit()).unit();
    Basis3 basis = x.getShadingBasis();
    SphericalCoordinates omegaO = SphericalCoordinates.fromCartesian(out, basis).canonical();
    SphericalCoordinates omegaP = SphericalCoordinates.fromCartesian(p, basis).canonical();

    double NdotI = -basis.w().dot(in);
    double NdotO = basis.w().dot(out);
    double spf = 0.0;

    if (NdotI * NdotO < 0.0) {
      return lambda.getColorModel().getBlack(lambda);
    }
View Full Code Here

    public Point3 getPosition() {
      return stack.peek().position;
    }

    public Basis3 getShadingBasis() {
      Basis3 basis = stack.peek().shadingBasis;
      return basis != null ? basis : stack.peek().basis;
    }
View Full Code Here

    double n2 = riBelow;
    Vector3 N = x.getNormal();
    double R = Optics.reflectance(v, n1, n2, N);

    if (RandomUtil.bernoulli(R, rj)) {
      Basis3 basis = x.getBasis();
      double sigma2 = oblateness * oblateness;
      double sigma4 = sigma2 * sigma2;
      Vector3 out;
      double theta = Math.acos(Math.sqrt(((sigma2 / Math.sqrt(sigma4 + (1.0 - sigma4) * ru)) - 1.0) / (sigma2 - 1.0)));
      double phi = 2.0 * Math.PI * rv;
 
View Full Code Here

   */
  @Override
  public ScatteredRay scatter(SurfacePoint x, Vector3 v, boolean adjoint,
      WavelengthPacket lambda, double ru, double rv, double rj) {

    Basis3 basis = Basis3.fromW(v);
    Vector3 N = x.getNormal();
    boolean inDir = (v.dot(N) < 0.0);
    boolean outDir;

    do {
View Full Code Here

        lut1 = luts[index];
        t = (lambda - wavelengths[index - 1]) / (wavelengths[index] - wavelengths[index - 1]);
      }
    }

    Basis3 basis = Basis3.fromW(v);
    Vector3 N = x.getNormal();
    boolean inDir = (v.dot(N) < 0.0);
    boolean outDir;

    do {
View Full Code Here

    double n2 = riBelow.evaluate(lambda);
    Vector3 N = x.getNormal();
    double R = Optics.reflectance(v, n1, n2, N);

    if (RandomUtil.bernoulli(R, rnd)) {
      Basis3 basis = x.getBasis();
      double sigma2 = oblateness * oblateness;
      double sigma4 = sigma2 * sigma2;
      Vector3 out;
      double theta = Math.acos(Math.sqrt(((sigma2 / Math.sqrt(sigma4 + (1.0 - sigma4) * rnd.next())) - 1.0) / (sigma2 - 1.0)));
      double phi = 2.0 * Math.PI * rnd.next();
 
View Full Code Here

            .toCartesian());
    double dt = 1.0 / (double) segments;
    double orientation = 2.0 * Math.PI * rnd.nextDouble();
    double co = Math.cos(orientation);
    double so = Math.sin(orientation);
    Basis3 basis = Basis3.fromWU(vel, context.getTangent());

    int segment = 0;
    int i = 0;
    while (true) {
      double t = (double) segment / (double) segments;
      double width = MathUtil.interpolate(baseWidth, tipWidth, t);

      strand.vertices[i++] = pos.plus(basis.toStandard(-0.5 * width * co, -0.5 * width * so, 0.0));
      strand.vertices[i++] = pos.plus(basis.toStandard(0.5 * width * co, 0.5 * width * so, 0.0));

      if (++segment > segments) {
        break;
      }

View Full Code Here

      e.translate(block.base.vectorFromOrigin());
      e.stretch(scale[0], scale[1], scale[2]);
      e.rotateZ(Math.toRadians(angle));

      e.translate(insertionPoint.vectorFromOrigin());
      Basis3 basis = DxfUtil.getBasisFromArbitraryAxis(extrusionDir);
      AffineMatrix3 T = AffineMatrix3.fromColumns(basis.u(), basis.v(), basis.w());
      e.transform(T);


      if (state.currentSection.equals("ENTITIES")) {
        state.root.addChild(block.root instanceof BoundingIntervalHierarchy ? new CollapseSceneElement(e) : e);
View Full Code Here

  /* (non-Javadoc)
   * @see ca.eandb.jmist.framework.geometry.AbstractGeometry#getShadingBasis(ca.eandb.jmist.framework.geometry.AbstractGeometry.GeometryIntersection)
   */
  @Override
  protected Basis3 getShadingBasis(GeometryIntersection x) {
    Basis3 basis = x.getBasis();
    return Basis3.fromWUV(getShadingNormal(x), basis.u(), basis.v());
  }
View Full Code Here

TOP

Related Classes of ca.eandb.jmist.math.Basis3

Copyright © 2018 www.massapicom. 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.