Exemplo n.º 1
0
 public void SetValues(
     SizingConfig sizingConfig,
     NoiseConfig noiseConfig,
     FalloffConfig falloffConfig,
     ColorConfig colorConfig,
     BackgroundColorConfig backgroundColorConfig,
     OutlineConfig outlineConfig,
     SymmetryConfig symmetryConfig,
     SymmetryConfig3D symmetryConfig3D,
     ScalingConfig scalingConfig,
     AnimationConfig animationConfig,
     ShadingConfig shadingConfig,
     CleanupConfig cleanupConfig,
     NormalsConfig normalsConfig
     )
 {
     this.sizingConfig          = sizingConfig;
     this.noiseConfig           = noiseConfig;
     this.falloffConfig         = falloffConfig;
     this.colorConfig           = colorConfig;
     this.backgroundColorConfig = backgroundColorConfig;
     this.outlineConfig         = outlineConfig;
     this.symmetryConfig        = symmetryConfig;
     this.symmetryConfig3D      = symmetryConfig3D;
     this.scalingConfig         = scalingConfig;
     this.animationConfig       = animationConfig;
     this.shadingConfig         = shadingConfig;
     this.cleanupConfig         = cleanupConfig;
     this.normalsConfig         = normalsConfig;
 }
Exemplo n.º 2
0
    void DetermineSymmetry(
        bool master, SymmetryConfig configuration, ref SymmetryOutcome symmetryOutcome)
    {
        if (master)
        {
            if (configuration.enforceSomeTypeOfSymmetry && (
                    configuration.horizontalSymmetryChance + configuration.verticalSymmetryChance +
                    configuration.forwardDiagonalSymmetryChance + configuration.backwardDiagonalSymmetryChance > 0))
            {
                while (!symmetryOutcome.horizontalSymmetryResult && !symmetryOutcome.verticalSymmetryResult &&
                       !symmetryOutcome.backwardDiagonalSymmetryResult &&
                       !symmetryOutcome.forwardDiagonalSymmetryResult)
                {
                    symmetryOutcome = DetermineSymmetryDirectionsToApply(configuration);
                }
            }
            else
            {
                symmetryOutcome = DetermineSymmetryDirectionsToApply(configuration);
            }

            additionalFrameCachedSymmetryOutcome = symmetryOutcome;
        }
        else
        {
            symmetryOutcome = additionalFrameCachedSymmetryOutcome;
        }
    }
Exemplo n.º 3
0
    public void AttemptToApplySymmetry(
        ref Texture2D texture, int frame, SymmetryConfig configuration, bool inheritSymmetry,
        ref SymmetryOutcome symmetryOutcome)
    {
        if (inheritSymmetry)
        {
            DetermineSymmetry(frame == 0, configuration, ref symmetryOutcome);
        }

        if (symmetryOutcome.horizontalSymmetryResult)
        {
            ApplySymmetry(ref texture, SymmetryDirection.Horizontal, symmetryOutcome);
        }
        if (ShouldApplyVerticalSymmetry(configuration.allowMultipleSymmetryTypes, symmetryOutcome))
        {
            ApplySymmetry(ref texture, SymmetryDirection.Vertical, symmetryOutcome);
        }
        if (ShouldApplyForwardDiagonalSymmetry(configuration.allowMultipleSymmetryTypes, symmetryOutcome))
        {
            ApplySymmetry(ref texture, SymmetryDirection.ForwardDiagonal, symmetryOutcome);
        }
        if (ShouldApplyBackwardDiagonalSymmetry(configuration.allowMultipleSymmetryTypes, symmetryOutcome))
        {
            ApplySymmetry(ref texture, SymmetryDirection.BackwardDiagonal, symmetryOutcome);
        }
    }
Exemplo n.º 4
0
 public void Copy(ConfigurationAsset source)
 {
     sizingConfig          = source.sizingConfig;
     noiseConfig           = source.noiseConfig;
     falloffConfig         = source.falloffConfig;
     colorConfig           = source.colorConfig;
     backgroundColorConfig = source.backgroundColorConfig;
     outlineConfig         = source.outlineConfig;
     symmetryConfig        = source.symmetryConfig;
     symmetryConfig3D      = source.symmetryConfig3D;
     scalingConfig         = source.scalingConfig;
     animationConfig       = source.animationConfig;
     shadingConfig         = source.shadingConfig;
     cleanupConfig         = source.cleanupConfig;
     normalsConfig         = source.normalsConfig;
 }
Exemplo n.º 5
0
    SymmetryOutcome DetermineSymmetryDirectionsToApply(SymmetryConfig configuration)
    {
        var lowerIsDominant                       = Random.value > .5f;
        var horizontalSymmetryResult              = Random.value < configuration.horizontalSymmetryChance;
        var verticalSymmetryResult                = Random.value < configuration.verticalSymmetryChance;
        var forwardDiagonalSymmetryResult         = Random.value < configuration.forwardDiagonalSymmetryChance;
        var backwardDiagonalSymmetryResult        = Random.value < configuration.backwardDiagonalSymmetryChance;
        var quarterHorizontalSymmetryResult       = horizontalSymmetryResult && Random.value < configuration.quarterHorizontalSymmetryChance;
        var quarterVerticalSymmetryResult         = verticalSymmetryResult && Random.value < configuration.quarterVerticalSymmetryChance;
        var quarterForwardDiagonalSymmetryResult  = forwardDiagonalSymmetryResult && Random.value < configuration.quarterForwardDiagonalSymmetryChance;
        var quarterBackwardDiagonalSymmetryResult = backwardDiagonalSymmetryResult && Random.value < configuration.quarterBackwardDiagonalSymmetryChance;

        return(new SymmetryOutcome(horizontalSymmetryResult, verticalSymmetryResult, forwardDiagonalSymmetryResult,
                                   backwardDiagonalSymmetryResult,
                                   quarterHorizontalSymmetryResult, quarterVerticalSymmetryResult, quarterForwardDiagonalSymmetryResult,
                                   quarterBackwardDiagonalSymmetryResult, lowerIsDominant));
    }