Вверх ↑
Ответов: 1291
Рейтинг: 47
#1: 2010-03-21 23:10:26 ЛС | профиль | цитата
MAV, обычно я когда у кого-то что-то работает, пытаюсь видоизменить УЖЕ РАБОТАЮЩУЮ схему под свои нужды. Так почему бы тебе не видоизменить немного мою тестовую схему? Вот добавил твой бублик и он получает номер 5. Присвоение номера и отрисовка объекта происходят динамически, честно говоря сам уже не помню как удалось все это заставить работать... Сильно хотелось мышью таскать фигуры в OGL когда-то... Короче, разбирайся и оптимизируй. Буду признателен если поделишься своей оптимизацией здесь, а то ни сил ни времени на это уже нет...



Add(MainForm,15261923,126,93)
{
Left=20
Top=105
Width=440
Height=421
Caption="Локализация объектов в Open GL"
Point(MouseX)
Point(MouseY)
Point(onMouseDown)
Point(Width)
Point(Height)
Point(onMouseMove)
Point(onMouseUp)
Point(onResize)
Point(Handle)
link(onCreate,16299401:doEvent1,[(184,113)(184,253)])
link(onMouseDown,207829:doClick,[(352,120)(352,183)])
link(onMouseMove,10272414:doEvent1,[(176,127)(176,270)(137,270)(137,413)])
link(onMouseUp,12264151:doEvent1,[(180,134)(180,106)])
link(onResize,9413709:doEvent1,[])
}
Add(GL_Main,12986311,273,247)
{
link(onInit,12198675:doInit,[])
link(onViewPort,3410847:doPerspective,[(328,260)(328,302)])
link(Handle,15261923:Handle,[(279,196)(160,196)])
}
Add(Timer,9506849,161,331)
{
Interval=50
Enable=1
link(onTimer,1049454:doEvent1,[])
}
Add(GL_GTools,771925,273,331)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(GL_Disk,10710321,784,590)
{
OutRadius=0.3
}
Add(Hub,1049454,210,331)
{
OutCount=6
link(onEvent1,771925:doClear,[])
link(onEvent2,771925:doPushMatrix,[])
link(onEvent3,207829:doDraw,[(412,351)(412,176)])
link(onEvent4,771925:doPopMatrix,[(261,358)(261,351)])
link(onEvent5,12986311:doFlip,[(257,365)(257,267)])
}
Add(Hub,16299401,203,247)
{
OutCount=3
link(onEvent1,12986311:doInit,[])
link(onEvent2,14551396:doWork2,[])
link(onEvent3,9506849:doTimer,[(245,267)(245,305)(151,305)(151,337)])
}
Add(MultiElement,10714674,777,464)
{
link(onEvent1,3488729:doColor,[])
link(Data1,8650192:Value,[(783,361)(867,361)])
link(Data2,14479943:Value,[(790,361)(909,361)])
}
BEGIN_SDK
Add(EditMulti,4359962,3,3)
{
EventCount=1
WorkCount=1
DataCount=2
Width=223
Height=109
link(doWork1,3276760:doRotate,[(19,9)(19,55)])
}
Add(GL_Rotate,3276760,35,49)
{
Angle=50
Y=1
link(onRotate,8079493:doRotate,[])
link(Angle,4359962:Data1,[(41,26)(9,26)])
}
Add(GL_Rotate,8079493,112,49)
{
Angle=50
X=1
link(onRotate,4359962:onEvent1,[(189,55)(189,9)])
link(Angle,4359962:Data2,[(118,26)(16,26)])
}
END_SDK
Add(GL_Material,10503751,441,499)
{
Diffuse=16711935
Specular=32768
Emission=-16777215
Shininess=3
link(onSet,10036663:doDraw,[])
}
Add(GL_Options,10513853,630,247)
{
Flag=1
}
Add(GL_Cube,10697821,861,464)
{
Size=0.5
link(onDraw,8151851:doPopMatrix,[])
}
Add(GL_Perspective,3410847,336,296)
{
Fovy=20
}
Add(GL_Options,4378486,532,247)
{
Flag=3
link(onEvent,14989894:doEnabled,[])
}
Add(GL_Options,5809249,483,247)
{
Flag=2
link(onEvent,4378486:doEnabled,[])
}
Add(GL_Sphere,7606666,861,506)
{
Radius=0.3
}
Add(GetDataEx,6018437,168,174)
{
link(Data,4947514:Data1,[(179,168)(202,168)(202,242)(293,242)])
}
Add(GetDataEx,6158151,154,181)
{
link(Data,7405542:Data1,[(160,169)(174,169)(174,228)(223,228)])
}
Add(Gl_Axis,10036663,546,499)
{
TitleScale=0.5
link(onDraw,11050489:doPushMatrix,[(594,505)(594,470)])
}
Add(HubEx,14551396,259,254)
{
link(onEvent,12986311:doViewPort,[])
}
Add(GL_GluTools,12198675,336,247)
{
Texture=0
link(onInit,1101264:doEnabled,[])
}
Add(GL_Light,14989894,581,247)
{
Ambient=16777215
Diffuse=8388608
link(onEnabled,10513853:doEnabled,[])
}
Add(GL_Options,1101264,385,247)
{
link(onEvent,5851269:doEnabled,[])
}
Add(GL_Options,5851269,434,247)
{
Flag=10
link(onEvent,5809249:doEnabled,[])
}
Add(Hub,9413709,196,135)
{
link(onEvent1,14551396:doWork1,[(263,141)])
link(onEvent2,207829:onResize,[(404,148)(404,190)])
}
Add(Label,9923747,700,128)
{
Left=365
Top=45
}
Add(IndexToChanel,12896117,385,492)
{
Count=10
link(onEvent2,10503751:doSet,[])
link(onEvent3,2915928:doRotate,[])
link(onEvent4,11693041:doRotate,[(572,519)(572,554)])
link(onEvent5,6609235:doRotate,[(572,526)(572,596)])
link(onEvent6,15219467:doWork1,[(545,533)(545,657)])
}
Add(Gl_Translate,4582173,721,590)
{
Z=0.5
link(onTranslate,10710321:doDraw,[])
}
Add(Gl_Translate,9241450,721,464)
{
X=-2.8
link(onTranslate,10714674:doWork1,[])
link(X,7575323:Result,[(727,410)(715,410)])
link(Y,7998797:Result,[(734,430)(715,430)])
link(Z,4300078:Result,[(741,452)(715,452)])
}
Add(OGLInteractive,207829,539,170)
{
N=10
link(MouseX,6158151:Var2,[(545,151)(373,151)(373,202)(160,202)])
link(MouseY,6018437:Var1,[(552,151)(157,151)(157,179)])
link(Width,15261923:Width,[(559,158)(146,158)])
link(Height,15261923:Height,[(566,158)(153,158)])
link(DrawN,12896117:doEvent,[(583,176)(583,337)(373,337)(373,498)])
link(OnSelect,13680259:doValue,[(601,183)(601,134)])
}
Add(GL_Cylinder,4635794,861,548)
{
BaseRadius=0.2
TopRadius=0
}
Add(Gl_Translate,9702095,721,506)
{
X=0.5
link(onTranslate,6053718:doColor,[])
}
Add(Gl_Translate,125527,721,548)
{
X=0.5
link(onTranslate,10797479:doColor,[])
}
Add(GL_Rotate,6755901,665,464)
{
link(onRotate,9241450:doTranslate,[])
}
Add(GL_Rotate,2915928,665,506)
{
link(onRotate,9702095:doTranslate,[])
}
Add(GL_Rotate,11693041,665,548)
{
link(onRotate,125527:doTranslate,[])
}
Add(GL_Rotate,6609235,665,590)
{
link(onRotate,4582173:doTranslate,[])
}
Add(Hub,10272414,149,407)
{
OutCount=3
link(onEvent1,6256965:doValue,[(192,413)(192,393)])
link(onEvent2,1632577:doEvent,[(405,420)(405,183)])
}
Add(Memory,6256965,203,387)
{
}
Add(IndexToChanel,7410028,203,429)
{
Count=5
Point(Index)
link(onEvent1,6804651:doEvent1,[(245,435)(245,434)])
link(onEvent2,15305019:doEvent1,[(269,442)(269,511)])
link(onEvent3,2113612:doEvent1,[(517,449)(517,211)])
link(Index,6256965:Value,[])
}
Add(GetData,7405542,217,191)
{
Count=3
link(Data,15261923:MouseX,[(223,168)(132,168)])
}
Add(Hub,6804651,254,428)
{
OutCount=3
link(onEvent1,3729466:doEvent1,[(296,434)(296,413)])
link(onEvent2,7764526:doEvent1,[(296,441)(296,462)])
}
Add(IndexToChanel,1632577,630,177)
{
Count=5
Point(Index)
link(onEvent2,7410028:doEvent,[(674,190)(674,312)(191,312)(191,435)])
link(Index,13680259:Value,[])
}
Add(Memory,13680259,630,128)
{
link(onData,9923747:doText,[])
}
Add(MultiElementEx,3729466,303,407)
{
@Hint=#25:Контроль изменения данных|
link(onDcr,16121427:doNext,[(501,413)(501,329)])
link(onInc,16121427:doPrev,[(501,427)(501,336)])
link(Data,7405542:Data2,[(309,315)(230,315)])
}
BEGIN_SDK
Add(EditMultiEx,7156753,6,6)
{
WorkCount=#8:doEvent1|
EventCount=#5:onDcr|7:onEqual|5:onInc|8:onChange|
DataCount=#4:Data|
Width=440
Height=242
link(doEvent1,3955324:doEvent1,[(14,12)(14,83)])
}
Add(Memory,6567996,217,63)
{
link(onData,6381848:doCompare,[(261,69)(261,48)(205,48)(205,27)])
}
Add(DoData,2751385,168,63)
{
link(onEventData,6567996:doValue,[])
link(Data,4073440:Data1,[])
}
Add(DoData,1187485,168,105)
{
link(onEventData,15537973:doValue,[])
link(Data,4073440:Data2,[(174,75)(181,75)])
}
Add(GetData,7079463,301,91)
{
link(Data,15537973:Value,[(307,79)(265,79)(265,149)(223,149)])
}
Add(Switch,1207220,70,77)
{
DataOn=Integer(1)
DataOff=Integer(0)
link(onSwitch,11945411:doEvent,[])
}
Add(IndexToChanel,11945411,112,77)
{
link(onEvent1,2751385:doData,[(156,83)(156,69)])
link(onEvent2,1187485:doData,[(156,90)(156,111)])
}
Add(GetData,4073440,168,21)
{
link(Data,7156753:Data,[(174,13)(12,13)])
}
Add(Memory,15537973,217,105)
{
link(onData,10201425:doCompare,[(261,111)(261,135)(205,135)(205,160)])
}
Add(If_else,10201425,217,154)
{
Type=1
link(onTrue,13220382:doEvent1,[(261,160)(261,195)])
link(Op2,2326711:Data1,[(230,138)(272,138)])
}
Add(If_else,6381848,217,21)
{
Type=2
link(onTrue,7063144:doEvent1,[])
link(Op2,7079463:Data1,[(230,9)(268,9)(268,135)(307,135)])
}
Add(Hub,3955324,21,77)
{
link(onEvent1,1207220:doSwitch,[])
link(onEvent2,14039224:doCompare,[(181,90)(181,167)])
}
Add(If_else,14039224,315,161)
{
link(onTrue,2799023:doEvent1,[])
link(Op1,2326711:Data2,[(321,146)(279,146)])
link(Op2,7079463:Data2,[(328,146)(314,146)])
}
Add(GetData,2326711,266,91)
{
link(Data,6567996:Value,[(272,79)(248,79)(248,107)(223,107)])
}
Add(Hub,2799023,357,161)
{
link(onEvent1,6525598:doEvent3,[(401,167)(401,143)(331,143)(331,118)])
link(onEvent2,7156753:onEqual,[(417,174)(417,19)])
}
Add(Hub,6525598,343,98)
{
InCount=3
OutCount=1
link(onEvent1,7156753:onChange,[(411,104)(411,33)])
}
Add(Hub,7063144,273,21)
{
link(onEvent1,6525598:doEvent1,[(324,27)(324,104)])
link(onEvent2,7156753:onDcr,[(375,34)(375,12)])
}
Add(Hub,13220382,273,189)
{
link(onEvent1,6525598:doEvent2,[(327,195)(327,111)])
link(onEvent2,7156753:onInc,[(375,202)(375,26)])
}
END_SDK
Add(MultiElementEx,7764526,303,456)
{
@Hint=#25:Контроль изменения данных|
link(onDcr,5313796:doPrev,[(501,462)(501,378)])
link(onInc,5313796:doNext,[(557,476)(557,371)])
link(Data,4947514:Data2,[(309,336)(300,336)])
}
BEGIN_SDK
Add(EditMultiEx,7156753,6,6)
{
WorkCount=#8:doEvent1|
EventCount=#5:onDcr|7:onEqual|5:onInc|8:onChange|
DataCount=#4:Data|
Width=440
Height=242
link(doEvent1,3955324:doEvent1,[(14,12)(14,83)])
}
Add(Memory,6567996,217,63)
{
link(onData,6381848:doCompare,[(261,69)(261,48)(205,48)(205,27)])
}
Add(DoData,2751385,168,63)
{
link(onEventData,6567996:doValue,[])
link(Data,4073440:Data1,[])
}
Add(DoData,1187485,168,105)
{
link(onEventData,15537973:doValue,[])
link(Data,4073440:Data2,[(174,75)(181,75)])
}
Add(GetData,7079463,301,91)
{
link(Data,15537973:Value,[(307,79)(265,79)(265,149)(223,149)])
}
Add(Switch,1207220,70,77)
{
DataOn=Integer(1)
DataOff=Integer(0)
link(onSwitch,11945411:doEvent,[])
}
Add(IndexToChanel,11945411,112,77)
{
link(onEvent1,2751385:doData,[(156,83)(156,69)])
link(onEvent2,1187485:doData,[(156,90)(156,111)])
}
Add(GetData,4073440,168,21)
{
link(Data,7156753:Data,[(174,13)(12,13)])
}
Add(Memory,15537973,217,105)
{
link(onData,10201425:doCompare,[(261,111)(261,135)(205,135)(205,160)])
}
Add(If_else,10201425,217,154)
{
Type=1
link(onTrue,13220382:doEvent1,[(261,160)(261,195)])
link(Op2,2326711:Data1,[(230,138)(272,138)])
}
Add(If_else,6381848,217,21)
{
Type=2
link(onTrue,7063144:doEvent1,[])
link(Op2,7079463:Data1,[(230,9)(268,9)(268,135)(307,135)])
}
Add(Hub,3955324,21,77)
{
link(onEvent1,1207220:doSwitch,[])
link(onEvent2,14039224:doCompare,[(181,90)(181,167)])
}
Add(If_else,14039224,315,161)
{
link(onTrue,2799023:doEvent1,[])
link(Op1,2326711:Data2,[(321,146)(279,146)])
link(Op2,7079463:Data2,[(328,146)(314,146)])
}
Add(GetData,2326711,266,91)
{
link(Data,6567996:Value,[(272,79)(248,79)(248,107)(223,107)])
}
Add(Hub,2799023,357,161)
{
link(onEvent1,6525598:doEvent3,[(401,167)(401,143)(331,143)(331,118)])
link(onEvent2,7156753:onEqual,[(417,174)(417,19)])
}
Add(Hub,6525598,343,98)
{
InCount=3
OutCount=1
link(onEvent1,7156753:onChange,[(411,104)(411,33)])
}
Add(Hub,7063144,273,21)
{
link(onEvent1,6525598:doEvent1,[(324,27)(324,104)])
link(onEvent2,7156753:onDcr,[(375,34)(375,12)])
}
Add(Hub,13220382,273,189)
{
link(onEvent1,6525598:doEvent2,[(327,195)(327,111)])
link(onEvent2,7156753:onInc,[(375,202)(375,26)])
}
END_SDK
Add(GetData,4947514,287,191)
{
Count=4
link(Data,15261923:MouseY,[(293,168)(139,168)])
}
Add(Counter,16121427,667,323)
{
Min=-9999999
Max=9999999
link(onNext,7575323:doOperation,[])
}
Add(Math,7575323,709,323)
{
OpType=3
Op2=20
}
Add(GL_GTools,8151851,910,464)
{
Point(doPopMatrix)
}
Add(GL_GTools,11050489,609,464)
{
Point(doPushMatrix)
link(onEvent,6755901:doRotate,[])
}
Add(Counter,5313796,667,365)
{
Min=-9999999
Max=9999999
link(onNext,7998797:doOperation,[])
}
Add(Math,7998797,709,365)
{
OpType=3
Op2=20
}
Add(Counter,6189087,667,407)
{
Min=-9999999
Max=9999999
link(onNext,4300078:doOperation,[])
}
Add(Math,4300078,709,407)
{
OpType=3
Op2=20
}
Add(MultiElementEx,15305019,303,505)
{
@Hint=#25:Контроль изменения данных|
link(onDcr,6189087:doNext,[(501,511)(501,413)])
link(onInc,6189087:doPrev,[(501,525)(501,420)])
link(Data,4947514:Data3,[(309,361)(307,361)])
}
BEGIN_SDK
Add(EditMultiEx,7156753,6,6)
{
WorkCount=#8:doEvent1|
EventCount=#5:onDcr|7:onEqual|5:onInc|8:onChange|
DataCount=#4:Data|
Width=440
Height=242
link(doEvent1,3955324:doEvent1,[(14,12)(14,83)])
}
Add(Memory,6567996,217,63)
{
link(onData,6381848:doCompare,[(261,69)(261,48)(205,48)(205,27)])
}
Add(DoData,2751385,168,63)
{
link(onEventData,6567996:doValue,[])
link(Data,4073440:Data1,[])
}
Add(DoData,1187485,168,105)
{
link(onEventData,15537973:doValue,[])
link(Data,4073440:Data2,[(174,75)(181,75)])
}
Add(GetData,7079463,301,91)
{
link(Data,15537973:Value,[(307,79)(265,79)(265,149)(223,149)])
}
Add(Switch,1207220,70,77)
{
DataOn=Integer(1)
DataOff=Integer(0)
link(onSwitch,11945411:doEvent,[])
}
Add(IndexToChanel,11945411,112,77)
{
link(onEvent1,2751385:doData,[(156,83)(156,69)])
link(onEvent2,1187485:doData,[(156,90)(156,111)])
}
Add(GetData,4073440,168,21)
{
link(Data,7156753:Data,[(174,13)(12,13)])
}
Add(Memory,15537973,217,105)
{
link(onData,10201425:doCompare,[(261,111)(261,135)(205,135)(205,160)])
}
Add(If_else,10201425,217,154)
{
Type=1
link(onTrue,13220382:doEvent1,[(261,160)(261,195)])
link(Op2,2326711:Data1,[(230,138)(272,138)])
}
Add(If_else,6381848,217,21)
{
Type=2
link(onTrue,7063144:doEvent1,[])
link(Op2,7079463:Data1,[(230,9)(268,9)(268,135)(307,135)])
}
Add(Hub,3955324,21,77)
{
link(onEvent1,1207220:doSwitch,[])
link(onEvent2,14039224:doCompare,[(181,90)(181,167)])
}
Add(If_else,14039224,315,161)
{
link(onTrue,2799023:doEvent1,[])
link(Op1,2326711:Data2,[(321,146)(279,146)])
link(Op2,7079463:Data2,[(328,146)(314,146)])
}
Add(GetData,2326711,266,91)
{
link(Data,6567996:Value,[(272,79)(248,79)(248,107)(223,107)])
}
Add(Hub,2799023,357,161)
{
link(onEvent1,6525598:doEvent3,[(401,167)(401,143)(331,143)(331,118)])
link(onEvent2,7156753:onEqual,[(417,174)(417,19)])
}
Add(Hub,6525598,343,98)
{
InCount=3
OutCount=1
link(onEvent1,7156753:onChange,[(411,104)(411,33)])
}
Add(Hub,7063144,273,21)
{
link(onEvent1,6525598:doEvent1,[(324,27)(324,104)])
link(onEvent2,7156753:onDcr,[(375,34)(375,12)])
}
Add(Hub,13220382,273,189)
{
link(onEvent1,6525598:doEvent2,[(327,195)(327,111)])
link(onEvent2,7156753:onInc,[(375,202)(375,26)])
}
END_SDK
Add(GL_Color,10797479,819,548)
{
Color=32768
link(onColor,4635794:doDraw,[])
}
Add(GL_Color,6053718,819,506)
{
Color=8388736
link(onColor,7606666:doDraw,[])
}
Add(GL_Color,3488729,819,464)
{
Color=255
link(onColor,10697821:doDraw,[])
}
Add(InfoTip,8444026,217,618)
{
Info=#41:Пример создания интерактивных приложений.|23:(мой 1-й компонент :) )|0:|65:Левая кнопка мыши перемещает куб по осям XY, а правая - по оси Z,|22:средняя - вращает куб.|0:|28:User108 (news108@rambler.ru)|0:|23:Москва, 11.8.2007, 0:40|41:Москва, 21.3.2010, 23:00 - добавлен тор |0:|
Width=428
Height=130
}
Add(Memory,8650192,861,226)
{
}
Add(Memory,14479943,903,226)
{
}
Add(DoData,4107186,854,184)
{
link(onEventData,8650192:doValue,[(898,190)(898,211)(849,211)(849,232)])
link(Data,6158151:Var1,[(860,172)(143,172)(143,186)])
}
Add(Hub,2113612,798,205)
{
link(onEvent1,4107186:doData,[(842,211)(842,190)])
link(onEvent2,300524:doData,[(866,218)(866,190)])
}
Add(Hub,12264151,196,100)
{
link(onEvent1,13680259:doClear,[(429,106)(429,141)])
}
Add(DoData,300524,903,184)
{
link(onEventData,14479943:doValue,[(947,190)(947,211)(891,211)(891,232)])
link(Data,6018437:Var3,[(909,179)])
}
Add(MultiElement,15219467,672,651)
{
link(onEvent1,15200808:doDraw,[])
link(Data1,7405542:Data3,[(678,437)(237,437)])
link(Data2,4947514:Data4,[(685,437)(314,437)])
}
BEGIN_SDK
Add(EditMulti,4359962,3,3)
{
EventCount=1
WorkCount=1
DataCount=2
Width=223
Height=109
link(doWork1,3276760:doRotate,[(19,9)(19,55)])
}
Add(GL_Rotate,3276760,35,49)
{
Y=1
link(onRotate,8079493:doRotate,[])
link(Angle,4359962:Data1,[(62,15)(9,15)])
}
Add(GL_Rotate,8079493,112,49)
{
X=1
link(onRotate,4359962:onEvent1,[(189,55)(189,9)])
link(Angle,4359962:Data2,[(139,8)(16,8)])
}
END_SDK
Add(GL_Torus,15200808,721,651)
{
inRadius=0.15
outRadius=0.8
Sides=20
Rings=20
}


Насчет неряшливости схемы - по-моему все аккуратнее некуда. Я музыкант, и у меня нет желания тратить свое время на аккуратное программирование. Компонентов не так много. Поэтому аргумент нечитаема парадоксален. Не нравится - не используй. Я поделился идеей и рабочим кодом, причем не моим, а портированным. Поэтому все вопросы к автору сего кода на дельфи. Комменты в коде оставил для вашего же блага, некоторые наоборот жалуются на их отсутствие. Я даже их перевел.. .
------------ Дoбавленo в 23.12:
Честно говоря, я этим сейчас уже не занимаюсь, поэтому не могу сказать почему твоя схема не работала. Покопайся в моей схеме и сравни со своей.
------------ Дoбавленo в 00.26:
Вот, разобрался почему твоя схема не работала - ты не подсоединил точку OnResize, которая задает нужные параметры. Теперь все работает. Попробуй изменить число N в компоненте с 1-го на 10 получится интересный эффект.. Если захочешь отрисовать другие фигуры - подключи IndexToChannel. Надеюсь схема соответствует на этот раз твоим высшим стандартам читабельности кода.. Спасибо Dilme за Хиасм еще раз! Уникальный инструмент. Иначе пришлось бы стать кодером, и вместо Солнца и Земли видеть 0 и 1... Всем удачи.



Add(MainForm,15261923,154,84)
{
Left=20
Top=105
Width=440
Height=421
Caption="MouseInteractive_simple_test"
Point(MouseX)
Point(MouseY)
Point(onResize)
Point(Handle)
Point(Width)
Point(Height)
Point(onMouseDown)
Point(onMouseUp)
Point(onMouseMove)
link(onCreate,16299401:doEvent1,[(215,104)(215,272)])
link(onResize,9413709:doEvent1,[(222,111)(222,218)])
link(onMouseDown,13366391:doClick,[(268,118)(268,230)])
link(onMouseUp,13680259:doClear,[(306,125)(306,127)])
}
Add(GL_Main,12986311,308,266)
{
link(onInit,12198675:doInit,[])
link(onViewPort,3410847:doPerspective,[(363,279)(363,321)])
link(Handle,15261923:Handle,[(314,203)(174,203)])
}
Add(Timer,9506849,196,315)
{
Interval=50
Enable=1
link(onTimer,1049454:doEvent1,[])
}
Add(GL_GTools,771925,308,315)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,1049454,245,315)
{
OutCount=5
link(onEvent1,771925:doClear,[])
link(onEvent2,771925:doPushMatrix,[])
link(onEvent3,13366391:doDraw,[(319,335)(319,223)])
link(onEvent4,771925:doPopMatrix,[(296,342)(296,335)])
link(onEvent5,12986311:doFlip,[(291,349)(291,286)])
}
Add(Hub,16299401,224,266)
{
OutCount=3
link(onEvent1,12986311:doInit,[])
link(onEvent2,16131419:doWork2,[])
link(onEvent3,9506849:doTimer,[(251,286)(251,304)(186,304)(186,321)])
}
Add(GL_GluTools,12198675,371,266)
{
link(onInit,1101264:doEnabled,[])
}
Add(GL_Light,14989894,567,266)
{
link(onEnabled,4378486:doEnabled,[])
}
Add(GL_Options,1101264,420,266)
{
link(onEvent,5851269:doEnabled,[])
}
Add(GL_Options,5851269,469,266)
{
Flag=1
link(onEvent,5809249:doEnabled,[])
}
Add(GL_Options,5809249,518,266)
{
Flag=2
link(onEvent,14989894:doEnabled,[])
}
Add(MultiElement,10714674,707,140)
{
link(onEvent1,15200808:doDraw,[])
link(Data1,7732851:Var2,[(713,127)(251,127)])
link(Data2,3146508:Var2,[(720,128)(478,128)(478,190)(237,190)])
}
BEGIN_SDK
Add(EditMulti,4359962,3,3)
{
EventCount=1
WorkCount=1
DataCount=2
Width=223
Height=109
link(doWork1,3276760:doRotate,[(19,9)(19,55)])
}
Add(GL_Rotate,3276760,35,49)
{
Y=1
link(onRotate,8079493:doRotate,[])
link(Angle,4359962:Data1,[(62,15)(9,15)])
}
Add(GL_Rotate,8079493,112,49)
{
X=1
link(onRotate,4359962:onEvent1,[(189,55)(189,9)])
link(Angle,4359962:Data2,[(139,8)(16,8)])
}
END_SDK
Add(GL_Perspective,3410847,371,315)
{
Fovy=20
}
Add(HubEx,16131419,273,273)
{
link(onEvent,12986311:doViewPort,[])
}
Add(OGLInteractive,13366391,378,217)
{
link(MouseX,7732851:Var1,[(384,175)(251,175)])
link(MouseY,3146508:Var1,[(391,165)(237,165)])
link(Width,15261923:Width,[(398,177)(181,177)])
link(Height,15261923:Height,[(405,177)(188,177)])
link(DrawN,10714674:doWork1,[(558,223)(558,146)])
link(OnSelect,13680259:doValue,[(454,230)(454,120)])
}
Add(GL_Torus,15200808,763,140)
{
inRadius=0.15
outRadius=0.8
Sides=20
Rings=20
}
Add(GetDataEx,7732851,245,182)
{
Angle=3
link(Data,15261923:MouseX,[(160,187)])
}
Add(GetDataEx,3146508,231,175)
{
Angle=3
link(Data,15261923:MouseY,[(167,180)])
}
Add(GL_Options,4378486,616,266)
{
Flag=3
}
Add(IndexToChanel,12896117,707,184)
{
Count=10
link(onEvent3,7606666:doDraw,[])
}
Add(Hub,9413709,238,212)
{
link(onEvent1,16131419:doWork1,[(277,218)])
link(onEvent2,13366391:onResize,[(315,225)(315,237)])
}
Add(Memory,13680259,497,114)
{
link(onData,15261923:doCaption,[(541,120)(541,67)(142,67)(142,90)])
}
Add(GL_Sphere,7606666,763,198)
{
Radius=0.3
}
Add(InfoTip,8444026,231,408)
{
Info=#70:Обязательно укажите число отрисовываемых объектов в свойствах элемента|0:|28:User108 (news108@rambler.ru)|0:|23:Москва, 11.8.2007, 0:40|23:Москва, 22.3.2010, 0:18|0:|
Width=428
Height=130
}
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0