Size: a a a

🎄.NET Talks: Evergreen🎄

2019 December 16

V🧀

Vestrond 🧀 in 🎄.NET Talks: Evergreen🎄
PickNoise
источник

L

Liza in 🎄.NET Talks: Evergreen🎄
А вообще ты так же можешь вернуть и мутировать на уровне выше
источник

Ι

Ιεζεκιήλ in 🎄.NET Talks: Evergreen🎄
Liza
А вообще ты так же можешь вернуть и мутировать на уровне выше
тогда мне придётся объявить поле Noise.WarpNoise в классе Noise от которого наследуется WarpNoise
источник

L

Liza in 🎄.NET Talks: Evergreen🎄
Ιεζεκιήλ
тогда мне придётся объявить поле Noise.WarpNoise в классе Noise от которого наследуется WarpNoise
Нет
источник

L

Liza in 🎄.NET Talks: Evergreen🎄
Не наследуй
источник

L

Liza in 🎄.NET Talks: Evergreen🎄
Либо сделай вот так
источник

L

Liza in 🎄.NET Talks: Evergreen🎄
Liza
А вообще ты так же можешь вернуть и мутировать на уровне выше
.
источник

L

Liza in 🎄.NET Talks: Evergreen🎄
И тогда наследуй
источник

L

Liza in 🎄.NET Talks: Evergreen🎄
А мутацию сделай там где этот гетвелью вызываетсч
источник

Ι

Ιεζεκιήλ in 🎄.NET Talks: Evergreen🎄
Liza
А мутацию сделай там где этот гетвелью вызываетсч
окей. но откуда они будут свойства брать для WarpNoise?
источник

L

Liza in 🎄.NET Talks: Evergreen🎄
Ιεζεκιήλ
окей. но откуда они будут свойства брать для WarpNoise?
Блин ну твой варпнойз все сделает как делает сейчас, просто ты свойства для мутации не будешь по ссылке возвращать
источник

L

Liza in 🎄.NET Talks: Evergreen🎄
А вернешь флоаты и ссылки поменяешь выше
источник

Ι

Ιεζεκιήλ in 🎄.NET Talks: Evergreen🎄
не понимаю
источник

Ι

Ιεζεκιήλ in 🎄.NET Talks: Evergreen🎄
я запутался
источник

L

Liza in 🎄.NET Talks: Evergreen🎄
Ιεζεκιήλ
я запутался
Ну я у тебя спрашиваю, в чем проблема вместо

warpNoise.Get(ref x)

сделать

var a = warpNoise.Get(x)
x = a
источник

Ι

Ιεζεκιήλ in 🎄.NET Talks: Evergreen🎄
Liza
Ну я у тебя спрашиваю, в чем проблема вместо

warpNoise.Get(ref x)

сделать

var a = warpNoise.Get(x)
x = a
там на вход подаются параметры (float, float) на все Noise'ы
и возвращается один float
источник

Ι

Ιεζεκιήλ in 🎄.NET Talks: Evergreen🎄
но WarpNoise меняет сами параметры (float, float) и ничего не возвращает
источник

β🎀

βλαδιμιρ 🎀 🌎🔫 in 🎄.NET Talks: Evergreen🎄
Ιεζεκιήλ
Есть 10 видов шумов (аля PerlinNoise, SimplexNoise, CubicNoise, CellularNoise, ValueNoise, WhiteNoise)
есть ещё WarpNoise

каждый из них имеет общие свойства: (частота, режим интерполяции, тип расчёта дистанции (манхетан, евклидовая, натуральная))

все виды шумов получают на вход два параметра — float x, float y и выдают значение float

WarpNoise особенный в этом плане, он получает на вход ref float x, ref float y, ничего не возвращает но меняет эти параметры по ссылке
у тебя GetValue не является общим для всех наследников, убери его из абстрактного класса, если хочешь в одном месте написать, создай отдельный уровень абстракции чисто с этим GetValue (SimpleNoise, ImmutableNoise etc), а WarpNoise отнаследуй напрямую от Noise
источник

β🎀

βλαδιμιρ 🎀 🌎🔫 in 🎄.NET Talks: Evergreen🎄
ты в любом случае, не сможешь пользоваться единообразно разными по сигнатуре методами GetValue
источник

β🎀

βλαδιμιρ 🎀 🌎🔫 in 🎄.NET Talks: Evergreen🎄
смысла в твоем варианте наследования нет, даже если бы язык это позволял
источник