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; }
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; } }
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); } }
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; }
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)); }