--- Log opened Sun Dec 06 13:55:12 2009 13:55 < PapaSmurf> 3. Mentorships 13:55 -!- DingTo changed the topic of #blendercoders to: New Developer Meeting 13:55 < PapaSmurf> thanks dingto 13:55 -!- Scio [i=3b5dc7a9@gateway/web/freenode/session] has joined #blendercoders 13:55 -!- devroo [n=Adium@devera2.licanet.cz] has joined #blendercoders 13:55 -!- xla [n=myself@85-127-184-136.dynamic.xdsl-line.inode.at] has joined #blendercoders 13:55 < PapaSmurf> Anyone have any other items they would like to discuss? 13:55 < matd> soure commenting 13:56 < ideasman42> PapaSmurf, maybe spend some time to discuss where people might like to start with blenders code 13:56 < theeth> I don't think this meeting should have a very rigid structure 13:56 < matd> source* 13:56 < theeth> people can ask question at any point if they want 13:56 < ideasman42> so new devs can get an idea of good places to start 13:56 < theeth> or stear in directions that interest them 13:56 -!- kattkieru [n=kattkier@CPE001e52f193a0-CM000a7369c68e.cpe.net.cable.rogers.com] has joined #blendercoders 13:56 < PapaSmurf> +1 13:56 < PapaSmurf> functionality then 13:57 < PapaSmurf> 4. functionality interests 13:57 -!- filippo [n=quassel@host154-142-dynamic.8-87-r.retail.telecomitalia.it] has joined #blendercoders 13:57 < PapaSmurf> 5. source comments and standards 13:57 -!- _BigWings_ [n=msteinru@159.153.144.23] has quit [SendQ exceeded] 13:57 -!- dmbasso [n=dmbasso@201-15-190-239.cslce700.dsl.brasiltelecom.net.br] has joined #blendercoders 13:57 < PapaSmurf> ok, so 1. 13:58 < theeth> I'm logging this, btw 13:58 -!- _lucas [n=lucas@p5B142AF8.dip0.t-ipconnect.de] has joined #blendercoders 13:58 < PapaSmurf> How does everyone feel about 2.5 coding or are you new guys more interested in starting with the 2.49 code base? I think 2.5...but dont want to assume anything 13:58 < kattkieru> 2.5 please. 13:58 < PapaSmurf> Are we all pumped about 2.5 ??!!!! 13:58 < amennelet> 2.5 please 13:58 < theeth> the 2.49 code base isn't going anywhere, I don't think there's any reason to cover this 13:58 < PapaSmurf> very cool. 13:58 * mr_archano votes for 2.5 13:59 < nfz> 2.5 13:59 < PapaSmurf> 2. C codebase, or Python? Does anyone want to develop/convert the Python script functionality, 13:59 < ideasman42> There are only a few cases where I would suggest people develop with 2.49... otherwise Id not bother 13:59 < PapaSmurf> Or do you guys want to work on the C base? Give me votes please 14:00 < ideasman42> (relying on tight python integration for tools useful within a month or so 2.5 is no way up to this) 14:00 * dmbasso votes for C 14:00 < amennelet> I'm more C codebase, specially windows manager 14:00 < xla> my vote for C base 14:00 < PapaSmurf> correcy, ideasman, just trying to get a feeling for what area we have new help in. 14:00 < kattkieru> I'm more interested in Python, for exporters and custom UIs. Need those things for work. 14:00 < mr_archano> PapaSmurf, I think the first step for a new dev is about understanding the base structure, so C is better 14:00 < nfz> c, python 14:01 < PapaSmurf> this is all beng logged, so EVER NEW DEV, please vote. 14:01 < matd> same as amennelet 14:01 < PapaSmurf> we will use this to report back 14:02 < PapaSmurf> have all new developers voted? 14:02 < ideasman42> ok, but might it be useful to have some existing developers coment on this? :) 14:02 -!- jeff_b [n=gg@c-24-128-185-109.hsd1.ma.comcast.net] has joined #blendercoders 14:02 -!- lordloki_AFK [n=quassel@89.Red-88-0-110.dynamicIP.rima-tde.net] has joined #blendercoders 14:02 < ideasman42> C / Python is very vague and it depends very much on where developers are interested in working, what problems they try to solve 14:02 < theeth> agreed 14:03 < theeth> also, in 2.5, it's not as clear cut as it used to be 14:03 < PapaSmurf> ok, lets move on to functional areas. 14:03 < kattkieru> Well, if we go with C I'd like to hear about the armature and constraints systems. 14:03 < djaddison> I am new to blender developement. I have a list of ideas and interests. For the time being, two questions. Is there a supporting role for people that don't have time to invest in code development. Example a research team. Secondly, who would be a good person to talk to about low level event handling? 14:03 < ideasman42> but I would like to know if the new devs here are more experienced with C or python 14:03 < theeth> tools developed in python are as integrated in the UI as C tools 14:03 < kh_pylon> I need to come back up-to-speed on the C code, so I can be useful in helping wrap things for Python 14:04 * dmbasso has a good experience with both C and Python 14:04 < theeth> djaddison: for the second one, it depends if you mean handling events at the OS queue level or the internal blender queue 14:04 < jaguarandi> matd, do other raytrace structures work? 14:04 * amennelet C, C++ 14:04 < matd> no octree crashes too 14:04 < jaguarandi> oh meeting in the middle sorry :/ 14:04 < matd> jaguarandi: ^ 14:04 -!- UraniumGFX [n=UraniumG@c-98-215-163-23.hsd1.il.comcast.net] has joined #blendercoders 14:05 < yoff> python and c both 14:05 < djaddison> theeth. not sure were the division is yet. I'd like to interface hardware control surfaces 14:05 < theeth> both then 14:05 -!- kattkieru [n=kattkier@CPE001e52f193a0-CM000a7369c68e.cpe.net.cable.rogers.com] has quit [] 14:05 -!- kattkieru [n=kattkier@CPE001e52f193a0-CM000a7369c68e.cpe.net.cable.rogers.com] has joined #blendercoders 14:05 < matd> i know py and have basic c knowledge 14:05 -!- neXyon [n=neXyon@188-23-246-117.adsl.highway.telekom.at] has joined #blendercoders 14:05 -!- UraniumGFX [n=UraniumG@c-98-215-163-23.hsd1.il.comcast.net] has quit [Client Quit] 14:05 < PapaSmurf> amennelet would like to work on windows manager, Kattkeiru would like Python import/expoorter. Are there other new devs that are interested in a specific functional area? 14:06 -!- UraniumGFX [n=UraniumG@c-98-215-163-23.hsd1.il.comcast.net] has joined #blendercoders 14:06 < neXyon> hi new developers! :) what have I missed? :) 14:06 < theeth> neXyon: just getting started, getting a feel of the audience 14:06 < PapaSmurf> we will send out logs 14:06 < yoff> I would like ton understand how much would be involved in getting a muscle system working 14:06 < kattkieru> PapaSmurf, if we're sticking with C I'd rather work on the armature and constraints. We can do importi / export another day. :) 14:06 < PapaSmurf> we are sticking with C, yes, 14:06 < PapaSmurf> unless I live another hundred years 14:06 < ideasman42> sorry but I dont understand this 14:06 < PapaSmurf> but Python too 14:07 < ideasman42> "Stickimg with C" ??? 14:07 * dmbasso is interested in physics simulation, specifically muscle simulation 14:07 < PapaSmurf> he asked about C++ 14:07 < kattkieru> Starting talking about the C code before python 14:07 -!- coderblend [i=d8a57e67@gateway/web/freenode/x-ssouokakhtuomnqn] has joined #blendercoders 14:07 * amennelet good for me 14:07 < PapaSmurf> dmbasso, fantastic! 14:07 < ideasman42> ok, as discussion topic.. 14:07 < PapaSmurf> ya 14:08 * DingTo considers himself a new dev too, if no one complains about that ;-) 14:08 < theeth> alright, so where do we have to start? Basic structure of the source tree? Internal module layout? 14:08 < yoff> sounds reasonable 14:08 < neXyon> DingTo: if you are one, I'm one too xD 14:08 < theeth> http://www.blender.org/development/architecture/ 14:08 < ideasman42> do people want to ask more Q's or be lectured ? :D 14:09 < nfz> I'm interested in helping with 2.5 todo list and bug squashing. 14:09 < theeth> this page is a good starting point for blender architecture 14:09 < neXyon> how many new devs are here? 14:09 < PapaSmurf> that would be now, 5. source code and commenting. How to get started? 14:09 < PapaSmurf> neXyon, about 6 14:10 < PapaSmurf> theeth and ideasman, could you please help the new devs point them where to get started plz? 14:10 < theeth> yup, one sec, editing the wiki a bit 14:10 < KAHR-Alpha> theeth: is that page still relevant for Blender 2.5? 14:10 < theeth> http://wiki.blender.org/index.php/BlenderDev/Blender2.5#Implementation 14:11 < theeth> KAHR-Alpha: mostly yes, the internal data structures haven't change that much 14:11 < PapaSmurf> k 14:11 < KAHR-Alpha> ok 14:11 < theeth> that last link lists architecture details for the 2.5 system 14:11 < theeth> window manager, event system, operators 14:11 < theeth> it's helpful for learning the basis of the new system 14:12 < theeth> evidently, implementation differs a bit from design (ha!), but nothing too big 14:12 -!- Netsplit brown.freenode.net <-> irc.freenode.net quits: mr_archano, dahlia_, mib2berlin, filippo, dmbasso, ni-ko-o-kin, Cessen, Fish|B, sk1p_, Rapp, (+46 more, use /NETSPLIT to show all of them) 14:12 -!- Netsplit brown.freenode.net <-> irc.freenode.net quits: matd, justa, amennelet, terrywallwork, DQimself, djaddison, oni-work, Rezonance, draeath, yoff, (+28 more, use /NETSPLIT to show all of them) 14:12 < PapaSmurf> whoa 14:13 < theeth> damn 14:13 < KAHR-Alpha> just what we need during a meeting 14:13 < theeth> stupid netsplit 14:13 < PapaSmurf> probably should pause for a few minutes...? 14:13 < theeth> yup 14:14 * PapaSmurf gets a fresh cup of coffee 14:14 -!- Netsplit over, joins: ao2, sk1p_, Rapp, raoni, rexbron, sam, oxigen, DustyDingo, jiri 14:14 < theeth> unless someone has a specific question they want answered, I can do that in the mean time 14:15 -!- gustavg_ [i=chatzill@cust-95-80-36-68.csbnet.se] has joined #blendercoders 14:15 -!- damien78 [n=damien@ver78-3-82-243-39-133.fbx.proxad.net] has joined #blendercoders 14:15 -!- Netsplit over, joins: paroneayea, coderblend, UraniumGFX, kattkieru, lordloki_AFK, jeff_b, _lucas, dmbasso, filippo, xla (+75 more) 14:15 < theeth> alright, everyone back in? 14:15 < PapaSmurf> hello again everyone! 14:15 < ideasman42> dmbasso, not that I know of 14:15 < ideasman42> you could look at the physics branch and see how it is.. 14:15 < dmbasso> :) 14:15 -!- MrNoodle [n=phoenix@62.1.226.188.dsl.dyn.forthnet.gr] has quit [Read error: 54 (Connection reset by peer)] 14:15 < dmbasso> currently I am more of a blender user then a developer... 14:15 < dmbasso> so some guidelines would be nice 14:16 < kattkieru> Same here, but I also have more time coming up and I'd like to start working on small things to get into the codebase. 14:16 < PapaSmurf> would you like to crossover to the enlightened side, dmbasso? 14:16 < dmbasso> PapaSmurf, yep, that's my intention 14:16 < PapaSmurf> ok theeth/ideasman, where can new devs find guidelines on coding? 14:16 < dmbasso> up to now, I only coded python scripts 14:16 -!- foinix [n=phoenix@62.1.226.188.dsl.dyn.forthnet.gr] has joined #blendercoders 14:16 -!- EricTheHax [i=Angel@adsl-098-068-036-231.sip.bna.bellsouth.net] has joined #blendercoders 14:17 < PapaSmurf> me too. Campbell was my mentor :!) 14:17 < ideasman42> dmbasso, if you want to do some C development Id advise to start with something less complicated then bullet integration 14:17 < KAHR-Alpha> isn't bullet C++? 14:17 -!- EricTheHax [i=Angel@adsl-098-068-036-231.sip.bna.bellsouth.net] has left #blendercoders [] 14:17 < ideasman42> yes, but it has a C api 14:17 < amennelet> I'm trying to look at Bug tracker, and have a look into code to see if I can fix 14:17 < theeth> the 2.5 wiki page I linked to earlier has a lot of ressources for code 14:17 < ideasman42> not sure how effective that is though, only used the C++ api 14:18 < theeth> besides the obvious that is on the getting started page (getting the code, compiling, ...) 14:18 < theeth> http://www.blender.org/community/get-involved/ 14:18 -!- TR2N` [i=email@89-180-181-69.net.novis.pt] has joined #blendercoders 14:18 < DingTo> I would say the best start is to refresh some wiki pages so new devs can see who is responsible in what area in Blender 14:18 < DingTo> ^Maintainer List 14:18 < neXyon> yeah, who is responsible for sequencer? :) schlaile is not here very often :-/ 14:18 < PapaSmurf> he is 14:18 < theeth> in 2.5, most of the code is neatly layed out by "topics" in /source/blender/editors/ 14:18 < neXyon> any new dev interested in sequencer work? :D 14:19 < mindrones> DingTo +1 14:19 < DingTo> we can discuss that later in official meeting 14:19 < yoff> more into animation, rigging.. 14:20 < theeth> if you want to work on one particular tool, the easiest way it to track it down from the operator, which is usually added and mapped in files ending in _ops.c 14:20 < mindrones> would be cool if we layout folders and explain in wiki what's for a certain folder 14:20 < PapaSmurf> theeth, half of this might be stuff that experienced devs need to do to create an environment/doco where new devs can come on board 14:20 < ideasman42> testing 2.5 python api for rigging a lot this last week, its quite effective even compared to 2.49x, much better in ways 14:20 < yoff> mindrones +1 14:20 < theeth> PapaSmurf: we can extract stuff from the logs later and put on wiki 14:20 < PapaSmurf> ya 14:21 < jensverwiebe> devroo: hi 14:21 < PapaSmurf> Oh! are all you new devs subscribed to bf-committers ?? 14:21 < mindrones> I can take care of the folder->wiki thing if we agree on it 14:21 < theeth> mindrones: sure 14:21 < yoff> ideasman42: cool, that was my impression :-) 14:21 < mindrones> oki 14:21 < kattkieru> I am, yeah. I've been participating in discussions 14:21 < amennelet> PapaSmurf>no 14:21 < devroo> jensverwiebe. hi :) 14:21 -!- Ikee [n=Ikee@0x5737c787.kdnqu1.dynamic.dsl.tele.dk] has joined #blendercoders 14:22 < PapaSmurf> amennelet, do you know how to subscribe to mail lists? 14:22 < ideasman42> Is everyone here used to searching the source and finding code they need to edit, just not sure at what point you guys are with blenders source 14:22 < matd> theeth: wiki is the wrong place ihmo. the code should be commented in place. 14:22 < theeth> alright, I think this much covers the generic topic (unless I missed something obvious) 14:22 * yoff is not subscribed 14:22 < jensverwiebe> devroo: say, do you encounter too moving obj. atm is stepped by 1 without ctrl but free with ctrl atm ? 14:22 < amennelet> PapaSmurf: sure I will find a way ;) 14:22 < theeth> matd: it is, but commenting directory structure in source file is sort of useless 14:22 < mindrones> theeth maybe later we can settle down a list and I wirte down things real time so I can start a structure for that? 14:23 -!- monty_hall [n=sprague_@adsl-75-51-96-196.dsl.sgnwmi.sbcglobal.net] has joined #blendercoders 14:23 < theeth> mindrones: k 14:23 < devroo> jensverwiebe: in current svn ? 14:23 * yoff has not looked at the blender codebase for some time 14:23 < mindrones> theeth ok cool 14:23 < jensverwiebe> devroo: ah, k 14:23 < ideasman42> is the dir structure really a problem? - I normally grep the source for keywords, then learn the structire as I go 14:23 < theeth> jensverwiebe: Ctrl inverts the state of the Snap button 14:23 < PapaSmurf> a _readme in each folder explaining the purpose fo the contents of that folder is very helpful 14:23 < DingTo> ideasman42: i fin dblender/editors clear 14:24 < theeth> ideasman42: having a basic idea of where things are can be useful, especially if you're looking for a function that's used a lot 14:24 < amennelet> ideasman42: the difficulty is to understand the code philosophy (excuse me, I'm french) 14:24 < kattkieru> @ideasman42 A lot of people, even competent coders, have trouble with grep, or with spelling, or with searching for the right words. ;) 14:24 < mindrones> ideasman42 true but as a start it could serve as a mental index? 14:24 < ideasman42> ok, its just often I need to edit code in BKE/rna/editors/python api etc 14:24 < devroo> jensverwiebe:played only with new sculpt recently... 14:24 < ideasman42> so I tend not to think in terms of directory structure 14:24 < kh_pylon> cscope is very good for searching source 14:24 < jensverwiebe> theeth: ah, i see new behaviour, ws just confused :) 14:24 < theeth> ideasman42: isn't that why we have bad level calls all the time ;) 14:24 < mindrones> I use kscope too 14:25 < ideasman42> amennelet, yes, I can understand that, getting the 'big picture' is harder 14:25 * nfz uses code::blocks to search source 14:25 < ideasman42> but finding the code for an operator say - should not be hard 14:25 < PapaSmurf> amennelet, http://lists.blender.org/mailman/listinfo 14:25 < mindrones> another thing I need as a newcomer is some form of dependencies graph, even if I know this can be complicated to get 14:25 < amennelet> ideasman42: yep, that why I'm trying to fix bug to learn peace by peace 14:25 < devroo> jensverwiebe: check this thats pretty cool http://www.meshmixer.com/ 14:26 < DingTo> devroo: jensverwiebe Meeting time atm ;-) 14:26 < ideasman42> not sure this is GOOD advice, but I found its good not even to try understand the big picture, just learn one area well 14:26 < jensverwiebe> oh, sorry 14:26 < ideasman42> then move on... 14:26 -!- effstops [n=Colin@dhcp-077-248-233-051.chello.nl] has joined #blendercoders 14:26 < theeth> I agree 14:26 < theeth> start small and expend 14:26 < nfz> ideasman42: agreed 14:26 < mindrones> ok 14:26 * ideasman42 waves to effstops 14:26 * effstops waves back! 14:27 < amennelet> PapaSmurf: thanks 14:27 < matd> PapaSmurf: i was going to suggest the same thing with a readme in the root dir of all important modules like wm, rna, etc ... 14:27 < ideasman42> so its then just good for new devs to find a good place to start 14:27 -!- Gimble_3D [n=andy@XPLR-TS-10-VAN-72-45-68-112.barrettxplore.com] has joined #blendercoders 14:27 * DingTo started with UI scripts, expanded to RNA and Nodes 14:27 < yoff> interesting, I would have thought an overview important... 14:27 < theeth> like I said earlier, starting from an operator is very easy in 2.5 14:27 < theeth> or UI scripts 14:27 < dmbasso> ideasman42: that's what I want to do... learn the area of Bullet integration ;) 14:27 < mindrones> DingTo I'm doing the same :) 14:27 < ideasman42> yoff, blender is huge so it becomes a problem 14:27 -!- gustavg [i=chatzill@cust-95-80-36-68.csbnet.se] has quit [Read error: 110 (Connection timed out)] 14:28 < yoff> yes, that makes sense 14:28 < theeth> DingTo: the problem with RNA is that if people don't know the api well, they can shoot themselves in the leg fast 14:28 * nfz started with ui scripts 14:28 < DingTo> theeth: yeah right 14:28 < ideasman42> yoff, BGE, nodes, compo, py api, rendering... blah blah, each is a fairly involved area 14:28 -!- glome1 [n=markus@212-149-230-96.bb.dnainternet.fi] has quit [Read error: 60 (Operation timed out)] 14:28 < mindrones> for example maybe ideasman42 and theeth can explain code wise the diff between operators and rna? 14:28 < PapaSmurf> I would like to hear from experienced developers as to whether they would like to mentor a new developer. Like we did with GSOC. 14:28 < theeth> mindrones: sure 14:28 < amennelet> ideasman42 : yes but I really like the blender interface experience and I would like to be able to use it elsewhere... 14:28 < mindrones> theeth thx 14:28 < PapaSmurf> if you would be willing, please chime in 14:29 < theeth> PapaSmurf: I'm always willing to do that 14:29 < PapaSmurf> :) 14:29 < ideasman42> theeth, take the stage 14:29 < theeth> RNA is a data access and simple operations API 14:29 < theeth> it sits on top of the low level C structs (called DNA) 14:30 < theeth> it's very basic stuff, like links between different structures, specific types and range of different members, ... 14:30 -!- Stg_hun [i=c1e3c5a2@gateway/web/freenode/x-ssgexgqqabjivsjt] has joined #blendercoders 14:30 < theeth> from that, we generate the RNA Python API 14:30 < theeth> ideasman42: stop me at anytime if you want to chime in 14:30 < mindrones> theeth example in code? 14:30 < ideasman42> Id only give some examples... 14:31 < theeth> sure 14:31 < ideasman42> so you have an objects loaction 14:31 < ideasman42> this is float location[3]; // in DNA_object_types,h 14:31 -!- ContraSF [i=email@89.180.134.224] has quit [Connection timed out] 14:31 < ideasman42> but as well as this you want to access it from the UI and python and animations system ofcourse 14:31 < theeth> and this is the RNA counterpart 14:31 < theeth> prop= RNA_def_property(srna, "location", PROP_FLOAT, PROP_TRANSLATION); 14:31 < theeth> RNA_def_property_float_sdna(prop, NULL, "loc"); 14:31 < theeth> RNA_def_property_editable_array_func(prop, "rna_Object_location_editable"); 14:31 < theeth> RNA_def_property_ui_text(prop, "Location", "Location of the object."); 14:32 < theeth> RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_update"); 14:32 -!- filippo [n=quassel@host154-142-dynamic.8-87-r.retail.telecomitalia.it] has quit [Remote closed the connection] 14:32 < DingTo> RNA defines not only the name of the property, also it sends an Notifier to tell Blender what has changed 14:32 < ideasman42> when you change that you also want blender to redraw for instance. or update its childrens location 14:32 < DingTo> and it contains the UI Text and Tooltip 14:32 < ideasman42> (ok, childrens matrix) 14:33 < kattkieru> So there's no international tooltip tagging in RNA? 14:33 < theeth> kattkieru: not yet no 14:33 < ideasman42> kattkieru, no yet 14:33 < kattkieru> kk 14:33 < PapaSmurf> there was a post about that in bf-committers recently 14:33 < ideasman42> And we dont want to define these update calls for anim/ui/py - so instead each access via rna 14:33 < theeth> kattkieru: but because of the way it's defined, it shouldn't be too hard 14:33 < yoff> does this RNA specify 3 floats? or is it not supposed to? 14:34 -!- alterscapes [n=altersca@64.134.230.184] has joined #blendercoders 14:34 < ideasman42> yoff, rna only references the 3 floats dna defines 14:34 < theeth> yoff: the subtype PROP_TRANSLATION does that 14:34 < PapaSmurf> its a package we link to that will supply the appropriate string based on user's language selection 14:34 -!- grafixsuz [n=Grafixsu@ntfkok238053.fkok.nt.ftth.ppp.infoweb.ne.jp] has quit ["ChatZilla 0.9.85 [Firefox 3.5.5/20091102152451]"] 14:35 < kattkieru> That sounds cool. I was just wondering; I have a few blender friends in Japan. 14:35 < yoff> ah, ok 14:35 -!- Scio [i=3b5dc7a9@gateway/web/freenode/x-dehwdmpfgqgshozl] has quit ["Page closed"] 14:35 < ideasman42> "ob.location" in python does an rna lookup, gets the array in C, the python api converts this known rna type to a vector and returns the value 14:35 < theeth> yoff: for more generic arrays, the size has to be supplied, yes 14:35 -!- vladimir_e [n=vladimir@mon75-3-81-56-38-177.fbx.proxad.net] has joined #blendercoders 14:36 < kh_pylon> so how does "ob.location = (x,y,z)" or whatever in Python update the DNA values? 14:36 -!- TR2N` is now known as ContraSF 14:36 < theeth> it might be interesting to note that RNA definition is split in two. A compile time generation and runtime code 14:36 < ideasman42> kh_pylon, it runs the rna function to set the array from a python array that is converted 14:36 < theeth> in the RNA files, this is represented by #ifdef RNA_RUNTIME #ELSE #ENDIF 14:36 < PapaSmurf> the update function, correct? 14:37 < ideasman42> then it calls the RNA's update function which will trigger other updates if they are defined for that type 14:37 < theeth> the code we've shown earlier is definition code 14:37 < ideasman42> kh_pylon, internally it does py -> coerce into an array -> rna array set function -> DNA array 14:38 -!- tanstaafl [n=Andreas@82.182.216.99] has joined #blendercoders 14:38 < ideasman42> but probably this is only interesying to py api devs.... 14:38 < theeth> I think that does cover the bases for RNA 14:38 < ideasman42> any other RNA Q's ? 14:38 < ideasman42> or move on to operators... 14:38 < theeth> Operators are tools 14:38 < ideasman42> ah, one comment... 14:39 < theeth> go ahead 14:39 < ideasman42> if you ever want to look at rna code... you can mouse over the button and see its python variable 14:39 -!- dfelinto [n=irchon@189.60.97.123] has joined #blendercoders 14:39 < ideasman42> so if you mouse over object location youll get its python name 14:39 < ideasman42> then search for "location", or "armature_head" or whatever... 14:39 < theeth> the rna code is in source/blender/makesrna/ 14:40 < kattkieru> Well wait, does that update function get generated automatically or do we have to write it? Is rna_object_update a function somewhere? 14:40 < ideasman42> with the ""'s or youll get too many hits, the file will start with rna_ 14:40 < ideasman42> this is fairly easy way to find the rna code from a button 14:40 < yoff> neat 14:40 -!- mollitz [n=mollitz@stgt-5f70a179.pool.mediaWays.net] has quit [Read error: 113 (No route to host)] 14:40 < DingTo> kattkieru: yes thats a function at the beginning of the RNA file 14:40 < theeth> kattkieru: it's done through the call to RNA_def_property_update 14:40 < kattkieru> Okay cool. 14:40 < ideasman42> you can also just search for the tooltip which I used to do mostly in 2.4x 14:40 < theeth> in this case: RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_update"); 14:41 -!- JTA [n=indigita@ip72-207-14-105.sd.sd.cox.net] has joined #blendercoders 14:41 < DingTo> these NC_ and ND_ Notifiers are defined in wm_types.h 14:41 < theeth> and rna_Object_update is defined in the RUNTIME part of the code 14:41 < DingTo> inside windowmanager code 14:41 < kattkieru> DingTo: Thanks, that's good to know too. 14:41 < theeth> you don't always need a function, so that can be NULL 14:41 < ideasman42> but most of the time you dont needs to write your own update functions 14:41 < theeth> and only use notifiers flags 14:41 < DingTo> right 14:41 < kattkieru> As long as the types being modified aren't exotic, I assume? 14:41 < ideasman42> or they can be added later if you get some redraw problems.. its not likely to break if they are not there... 14:42 < DingTo> basicely we have Notifiers and listeners 14:42 < yoff> so if you want to add a new type of object (say a muscle), do you just need to define RNA or also DNA? 14:42 < DingTo> RNA props send Notifiers and the different space types "listen" to those Notifiers and do an update/redraw 14:42 < theeth> yoff: yes 14:42 < ideasman42> yoff, yes but this is also a fairly heavy project 14:42 -!- fujnky [n=lars@adsl-dyn-88-208-153-7.heliweb.de] has quit [Connection timed out] 14:43 < dmbasso> yoff, are you also interested in muscles? 14:43 < yoff> dmbasso: yes 14:43 < ideasman42> defineing new object types I mean, wasnt done in years and youd also need to be familier with reading and writing code in blender (readfile.c/writefile.c) 14:43 -!- skejoe [n=skejoe@0x50a5975c.vgnxx4.dynamic.dsl.tele.dk] has joined #blendercoders 14:43 < dmbasso> great :) 14:43 < theeth> ideasman42: could be a bone type too 14:43 < ideasman42> ok, operators... ? 14:43 < kattkieru> yes please :) 14:43 < theeth> alright, as I said, operators are tools 14:44 < theeth> they're a very simple data structure with ID, descript and label strings 14:44 < theeth> as well as a couple of function pointers and flags 14:44 < theeth> the functions will be called when the operator is executed 14:44 < PapaSmurf> about how many operators are there? 14:45 < ideasman42> ~970 or so 14:45 < theeth> the basics are exec, invoke and poll 14:45 < yoff> the functions are stored somewhere else? 14:45 < terrywallwork> you can find out from the operator cheetsheet in help menu in 25 :) 14:45 < theeth> they're C functions 14:45 < yoff> ok 14:45 < DingTo> ideasman42: 932 :P 14:45 < theeth> poll is called when the operator can be run in the current Context (we'll talk about context later) 14:46 < theeth> context is more or less the current state of the UI (where the pointer is, what's selected, ...) 14:46 < ideasman42> poll is how menu items or buttons can be greyed out 14:46 -!- glome1 [n=markus@212-149-230-96.bb.dnainternet.fi] has joined #blendercoders 14:46 < theeth> the poll function is used to grey out buttons and menu entries 14:46 < ideasman42> ack. sorry ;D 14:46 < theeth> np 14:47 < theeth> exec and invoke are the functions that do stuff 14:47 < DingTo> well greying out is nothing only related to operators 14:47 < theeth> invoke is called when the operator runs interactively 14:47 < theeth> when it needs user input (from a menu, mouse motion, ...) 14:48 < theeth> exec is called to apply the operator using only its parameters 14:48 -!- Raccoon [n=Jacob@c-24-56-252-107.customer.broadstripe.net] has joined #blendercoders 14:48 < ideasman42> invoke for instance gets the mouse event, execute() assumes the input was alredy assigned as opertor options 14:48 < ideasman42> mouse location* 14:48 < theeth> ah, yes, one thing I forgot earlier is that the operator definition can also include RNA properties, that are used as operator parametes 14:49 < theeth> for exemple, the make parent operator defines a property for parenting type 14:49 < theeth> its invoke function displays the parenting menu 14:49 < theeth> and exec reads the type from the properties and does whatever is needed 14:50 < theeth> for operators that need a menu like that, we have a generic menu function that can be used 14:50 < theeth> here's the parenting operator, as an exemple: 14:51 < theeth> void OBJECT_OT_parent_set(wmOperatorType *ot) 14:51 < theeth> { 14:51 < theeth> /* identifiers */ 14:51 < theeth> ot->name= "Make Parent"; 14:51 < theeth> ot->description = "Set the object's parenting."; 14:51 < theeth> ot->idname= "OBJECT_OT_parent_set"; 14:51 < theeth> 14:51 < theeth> /* api callbacks */ 14:51 < theeth> ot->invoke= parent_set_invoke; 14:51 < theeth> ot->exec= parent_set_exec; 14:51 < theeth> 14:51 < theeth> ot->poll= ED_operator_object_active_editable; 14:51 < theeth> 14:51 < theeth> /* flags */ 14:51 < theeth> ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; 14:51 < theeth> 14:51 < theeth> RNA_def_enum(ot->srna, "type", prop_make_parent_types, 0, "Type", ""); 14:51 < theeth> } 14:51 < theeth> generic poll functions also exist, you don't have to write your own 14:52 < ideasman42> parent_set_invoke, parent_set_exec, ED_operator_object_active_editable are functions 14:52 -!- MandaM_ [n=manda@zaq3d2e6623.zaq.ne.jp] has joined #blendercoders 14:52 < theeth> the flags are used to specify different behavior 14:52 < ideasman42> prop_make_parent_types is an array of defined types 14:52 < DingTo> Postpone official Meeting? 14:52 * kaito waves the 1 minute flag to coders meeting! 14:52 < theeth> in this case, REGISTER means the it will be displayed in the last operator toolbar 14:52 < DingTo> ok^^ 14:52 < theeth> and UNDO means it will set an undo point after it runs 14:52 < yoff> s undo handled generically? (as it looks to be) 14:52 < theeth> yup 14:53 < matd> question where in this example function do you get ahold of the Context. 14:53 < yoff> sweet 14:53 < theeth> matd: it's passed as argument to the invoke, exec and poll function 14:53 < theeth> matd: the event system will give you the correct context 14:53 -!- DingTo changed the topic of #blendercoders to: Meeting Time - Agenda 14:53 < yoff> also to the exec? 14:53 -!- MandaM [n=manda@zaq3d2e6623.zaq.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 14:53 < ideasman42> just quickly.... 14:54 -!- MandaM_ [n=manda@zaq3d2e6623.zaq.ne.jp] has left #blendercoders ["Leaving..."] 14:54 < ideasman42> If you want to get started with writing operators, their are python perator templates in the text templates menu 14:54 -!- MandaM_ [n=manda@zaq3d2e6623.zaq.ne.jp] has joined #blendercoders 14:54 < theeth> invoke gets the context, the operator structure and the caller event 14:54 < theeth> exec gets the context and the operator 14:54 -!- terrywallwork [n=TerryWal@host86-148-75-191.range86-148.btcentralplus.com] has left #blendercoders [] 14:54 -!- MandaM_ is now known as MandaM 14:54 < kattkieru> Is there a difference between python operators and C operators apart from speed? 14:54 < theeth> nope 14:54 < ideasman42> so you can start by loading the template, running it, It wont appier in the menu but you can access it from the spacebar search 14:55 < kattkieru> cool :) 14:55 < theeth> kattkieru: the python operator creates an operator type struct when registered 14:55 < PapaSmurf> norc, lets wrap this up... ok theeth? 14:55 < kattkieru> what about for submitting to the code base? Do the main devs prefer one over the other? 14:55 < PapaSmurf> theeth, ok to wrap up? 14:55 < kattkieru> Okay that's my last q, I promise :) 14:55 -!- vollstock [n=vollstoc@188.105.210.211] has joined #blendercoders 14:55 < theeth> sure 14:55 < theeth> kattkieru: patches in the tracker, at first 14:56 < theeth> if people show good motivation and devotion, we can give branches 14:56 -!- RonanZ2 [n=Roro@180.247-242-81.adsl-dyn.isp.belgacom.be] has joined #blendercoders 14:56 < PapaSmurf> Ok thank you everyone! I will send out a meeting summary 14:56 < kattkieru> Theeth: I mean, operators in C vs Python for something that'd get merged. 14:56 < kattkieru> Thanks everyone! 14:56 < amennelet> thanks 14:56 < DingTo> kaito: Agenda? 14:56 < yoff> thanks :-) 14:56 < kattkieru> This has been very helpful 14:56 < mindrones> PapaSmurf I can take care of wikify this ok? 14:56 < PapaSmurf> Next meeting, January 3 --- Log closed Sun Dec 06 14:56:42 2009