Esempio n. 1
0
  public void updateProgramParameters(ProgramParameters parameters) {
    parameters.map = (this instanceof HasMap && ((HasMap) this).getMap() != null);
    parameters.envMap = (this instanceof HasEnvMap && ((HasEnvMap) this).getEnvMap() != null);
    parameters.lightMap =
        (this instanceof HasLightMap && ((HasLightMap) this).getLightMap() != null);
    parameters.bumpMap = (this instanceof HasBumpMap && ((HasBumpMap) this).getBumpMap() != null);
    parameters.normalMap =
        (this instanceof HasNormalMap && ((HasNormalMap) this).getNormalMap() != null);
    parameters.specularMap =
        (this instanceof HasSpecularMap && ((HasSpecularMap) this).getSpecularMap() != null);
    parameters.alphaMap =
        (this instanceof HasAlphaMap && ((HasAlphaMap) this).getAlphaMap() != null);

    parameters.vertexColors =
        (this instanceof HasVertexColors
            && ((HasVertexColors) this).isVertexColors() != Material.COLORS.NO);

    parameters.sizeAttenuation =
        this instanceof PointCloudMaterial && ((PointCloudMaterial) this).isSizeAttenuation();

    if (this instanceof HasSkinning) {
      parameters.skinning = ((HasSkinning) this).isSkinning();
      parameters.morphTargets = ((HasSkinning) this).isMorphTargets();
      parameters.morphNormals = ((HasSkinning) this).isMorphNormals();
    }

    parameters.alphaTest = getAlphaTest();
    if (this instanceof MeshPhongMaterial) {
      parameters.metal = ((MeshPhongMaterial) this).isMetal();
    }

    parameters.wrapAround = this instanceof HasWrap && ((HasWrap) this).isWrapAround();
    parameters.doubleSided = this.getSides() == Material.SIDE.DOUBLE;
    parameters.flipSided = this.getSides() == Material.SIDE.BACK;
  }