
Aler
05.09.2016
23:56:30
интересно, что быстрее
абстрактный класс с virtual полями
или проверка на (foo is IBarInterface)

Vladislav
05.09.2016
23:58:15

Google

Vladislav
05.09.2016
23:58:39
хотя, если у тебя не глубокая наследственность is норм
Quaternion... switch(face) - нахуя так делать, математика жжиии Y_Y

Aler
05.09.2016
23:59:36
я это и переписываю
для наглядности сделал
так как когда писал объяснял, что и как тут работает
кстати, если есть на уме элегантное мат решение получения из 1, 2, 4, 6, 8 значений из свичкейса - буду признателен
я пока придумать не могу

Vladislav
06.09.2016
00:02:29

Aler
06.09.2016
00:02:47
сплю)
1.2.4.8.16

Vladislav
06.09.2016
00:03:28

Aler
06.09.2016
00:03:35
0000 0001
0000 0010
0000 0100
0000 1000
0001 0000
окей как из этого получить повороты

Google

Vladislav
06.09.2016
00:04:15
а какой дипозон и шаг

Aler
06.09.2016
00:04:36
case CullingFaces.West:
return Quaternion.Euler(0, 90, 0);
case CullingFaces.North:
return Quaternion.Euler(0, 180, 0);
case CullingFaces.East:
return Quaternion.Euler(0, 270, 0);
case CullingFaces.Up:
return Quaternion.Euler(90, 0, 0);
case CullingFaces.Down:
return Quaternion.Euler(-90, 0, 0);
на скрине же)

Vladislav
06.09.2016
00:05:25
ну там не все видно. Так 6 позиций прально?

Aler
06.09.2016
00:05:44
да
по 6 сторонам куба
мне пока только в голову костыли лезут с Math.Max

Vladislav
06.09.2016
00:06:43
ну вообще ты можешь 4 бита на поворот по x и 4 по у

Aler
06.09.2016
00:07:13
по три, но это будет тот же свич кейс по сути

Vladislav
06.09.2016
00:07:35
ну а ты в любом случае меньше 8 бит не можешь взять
так у тебя 4х90=360 для каждой оси, удобно и приятно

Aler
06.09.2016
00:09:57
проблема в том, что для этого придется взять логарифм

Vladislav
06.09.2016
00:10:15
эм...

Aler
06.09.2016
00:10:33
ну а как ты 0000 0100 превратишь в 90*3?
что такое 0100? Это 2^3 же
а значит нужен логарифм
а это дорого
во ^2, но не суть

Vladislav
06.09.2016
00:11:52
while (byte[i]==0 && i<4)
{
i++;
}

Aler
06.09.2016
00:13:10
byte[i] нельзя в шарпах

Google

Aler
06.09.2016
00:13:17
но даже если можно

Vladislav
06.09.2016
00:13:21
ну со сдвигами

Aler
06.09.2016
00:13:25
это всяко костыль хуже свича

Vladislav
06.09.2016
00:13:31
я хз. не юзаю это говно
shr» или как там

Aler
06.09.2016
00:13:52
Ты предлагаешь говно, а не Сшарп гавно.. ты уж прости)

Vladislav
06.09.2016
00:13:59
что может быть хуже свича Y_Y

Aler
06.09.2016
00:14:19
давай заменим 5 простых проверок на циклы
да еще и с аллокацией доп переменной

Vladislav
06.09.2016
00:14:56

Aler
06.09.2016
00:15:15
ну смотря какие
static readonly int[] MultiplyDeBruijnBitPosition2 = new int[32]
{
0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8,
31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9
};
static int GetLog2_DeBruijn(int v)
{
return MultiplyDeBruijnBitPosition2[(uint)(v * 0x077CB531U) » 27];
}

Aler
06.09.2016
00:15:40
такие точно

Vladislav
06.09.2016
00:15:43

Aler
06.09.2016
00:16:15
нихрена он так не разбирается
это превратится в if(1==a)

Vladislav
06.09.2016
00:16:31

Aler
06.09.2016
00:16:36
так как тут enum
энум по сути сахар над константами\дефайнами же

Vladislav
06.09.2016
00:17:14

Google

Aler
06.09.2016
00:18:17
я не знаю, что ты под бокс и анбокс подразумеваешь, но догадываюсь и вопрос.. во что?!)
если у энума нету типа
мне кажется, что единственный способ это сделать завести массив логорифмов)
DeBrujin это и делает

Vladislav
06.09.2016
00:28:08
value тоже касается

Aler
06.09.2016
00:28:47
так в том и дело, что для компилятора тут нету типов. Тут просто byte

Admin
ERROR: S client not available

Aler
06.09.2016
00:29:50
вот это для компилятора одно и тоже вообще
другое дело, что создавать каждый раз кватернион странное решение)
их точно можно положить в табличку
пустые virtual методы оказались в разы быстрее, чем интерфейсы
ну оно и логично наверно

Vladislav
06.09.2016
00:45:03
Is дергает с object'a

Aler
06.09.2016
00:47:06
просто фреймворки и адепты шарпа так любят интерфейсы (они конечно позволяют делать композинг), но я все никак не пойму почему

Vladislav
06.09.2016
00:52:57
можно затраить что-то вроде : Queternion.Euler((x%16)*90,(x-(x%16))*90.(x mod 16)*90) (наверняка где-то туплю, но набросок чисто по геометрии)
не, дичь

Google

Vladislav
06.09.2016
01:04:40
так у тебя не 6 положений, или тебя только фейс интересует?

Nikita
06.09.2016
02:16:00

Святая Алербарда
06.09.2016
02:41:28
@enotcode начал бой на Алербардах c удара на целых 661 Гелиончиков! Кидайте алербарды в течение 60 секунд в @alerbarda_bobot, и получивший больше Гелиончиков победит! Да прибудет с вами Алер.
@enotcode официально провозглашен forever alone и хиккой. Пожелаем ему упасть в колени к Гею и уповать на милость РобоИисуса. Играть в одиночку оказалось реально грустно.

Nikita
06.09.2016
05:51:01
посоны
кто уже смотрел 9 серию мр робота?
почему в конце жена убитого перца назвала элиота "олли"?
или эллиот это еще и тот убитый перец?
Потом окажется, что и темную армию создал Элиот

Святая Алербарда
06.09.2016
06:01:11
@rombique начал бой на Алербардах c удара на целых 407 Гелиончиков! Кидайте алербарды в течение 60 секунд в @alerbarda_bobot, и получивший больше Гелиончиков победит! Да прибудет с вами Алер.

Nikita
06.09.2016
06:01:16
И китай создал Элиот
И Штаты
И екорп
@rombique сасаешь

Святая Алербарда
06.09.2016
06:02:12
@intcosmos победил в боях на Алербардах c 573 Гелиончиками! Результаты:
@intcosmos: 573
@borodutch: 463
@rombique: 407
@alexzzz9: 176
Всего было выбито 1619 Гелиончиков.

Nikita
06.09.2016
06:02:22
Сцук

Roman
06.09.2016
06:02:25
@borodutch ты тоже☺️

Nikita
06.09.2016
06:02:55
В этой конфе слишком много романов
@rombique ты служил?