Beispiel #1
0
        protected override Voxel mutate(Application app, Index pos, Action action, Voxel original)
        {
            BlurApp    bApp           = (BlurApp)app;
            BlurAction bAction        = (BlurAction)action;
            float      dis            = Mathf.Sqrt(bAction.disSqr);
            float      actualStrength = strength * (1 - (dis / bApp.radius));

            if (actualStrength <= 0)
            {
                return(original);
            }
            byte newOpacity = calculateOpacity(bApp.original, pos.x - app.min.x, pos.y - app.min.y, pos.z - app.min.z, actualStrength);

            return(new Voxel(original.averageMaterialType(), newOpacity));
        }
Beispiel #2
0
		protected override Action checkMutation(Application app, Index pos) {
			BlurApp bApp = (BlurApp)app;
			BlurAction action = new BlurAction();
			float voxelSize = LocalMutator.calculateVoxelSize(app, pos);
			Vector3 diff = LocalMutator.calculateDiff(bApp.position, pos, voxelSize);

			action.disSqr = diff.sqrMagnitude;
			float maxRadius = bApp.radius + voxelSize;
			float maxRadSqr = maxRadius * maxRadius;
			if (action.disSqr > maxRadSqr)
				return action;
			action.doTraverse = true;
			action.modify = true;
			return action;
		}
Beispiel #3
0
        protected override Action checkMutation(Application app, Index pos)
        {
            BlurApp    bApp      = (BlurApp)app;
            BlurAction action    = new BlurAction();
            float      voxelSize = LocalMutator.calculateVoxelSize(app, pos);
            Vector3    diff      = LocalMutator.calculateDiff(bApp.position, pos, voxelSize);

            action.disSqr = diff.sqrMagnitude;
            float maxRadius = bApp.radius + voxelSize;
            float maxRadSqr = maxRadius * maxRadius;

            if (action.disSqr > maxRadSqr)
            {
                return(action);
            }
            action.doTraverse = true;
            action.modify     = true;
            return(action);
        }