[Bf-committers] In need for help/documentation for modifiers

pete larabell xgl.asyliax at gmail.com
Fri Oct 8 17:50:12 CEST 2010


Thank you very much. If I'm able to get this working, or you are, I think we
ought to write up a formal document on this process for the benefit of
others. I'm more than willing to create such a document once I know it's
accurate :)

Thanks again!
Peter


On Fri, Oct 8, 2010 at 9:50 AM, Tobias Oelgarte <
tobias.oelgarte at googlemail.com> wrote:

> Currently I'm able to compile it without any issue, but it misses all
> functionality and the ui-interface. But at least it shows up in the menu
> and runs like expected. Im oriented myself closely to the "simple deform
> modifier", because it is simple and easier to understand than others.
> Currently i did the following things:
>
> Some Notes:
> <ModifierName> is the name of the modifier. In my case "RestoreVolume".
> Note that the name is written in different style, at different places.
> To know where in the files you will have to add the lines, you should
> just look out for similar patterns.
>
> 1. At the end of MOD_util.c i added:
>    INIT_TYPE(<ModifierName>);
>
> 2. In MOD_modifier_types.h i added:
>    extern ModifierTypeInfo modifierType_<ModifierName>;
>
> 3. In RNA_access.h i added:
>    extern StructRNA RNA_<ModifierName>VolumeModifier;
>
> 4. In DNA_modifier_types.h i added:
>    eModifierType_<ModifierName>,
>
> 5. In DNA_modifier_types.h i added also:
>    typedef struct <ModifierName>ModifierData {
>        ModifierData modifier;
>        // own data from here. Notice the padding, which is needed in
> this case
>        char name[32];
>        float volume;
>        char pad[4];
>    } <ModifierName>ModifierData;
>
> 6. In rna_modifier.c i added:
>    {eModifierType_<ModifierName>, "<MODIFIER_NAME>", ICON_MOD_PHYSICS,
> "<Modifier Name>", ""},
>
> 7. In rna_modifier.c i added also:
>    case eModifierType_<ModifierName>:
>        return &RNA_<ModifierName>Modifier;
>
> 8. In rna_modifier.c i added also:
>    static void rna_def_modifier_<modifiername>(BlenderRNA *brna)
>    {
>        StructRNA *srna;
>
>        srna= RNA_def_struct(brna, "<ModifierName>Modifier", "Modifier");
>        RNA_def_struct_ui_text(srna, "<Modifier Name> Modifier",
> "<description what it does>");
>        RNA_def_struct_sdna(srna, "<ModifierName>ModifierData");
>        RNA_def_struct_ui_icon(srna, ICON_MOD_PARTICLES); // maybe use
> other icon
>    }
>
> 9. In rna_modifier.c i added at the end also:
>    rna_def_modifier_<modifiername>(brna);
>
> 10. In properties_data_modifier.py i added:
>    def <MODIFIER_NAME>(self, layout, ob, md):
>        layout.label(text="Volume:") // the following lines are specific
> for my modifier
>        layout.prop(md, "volume")
>
> Notice that #10 is python code, so care for indentation is needed. (I
> hate it...)
>
> After that i copied MOD_simpledeform.c to MOD_<modifiername>.c and
> deleted nearly everything from the file. Keep care to update and rename
> the struct ModifierTypeInfo at the end of the file.
>
> Thats basically all i did so far. Currently i'm Missing my input-field
> for volume inside the UI, since it blames me to not know about the
> property. Guess i will have to register it somewhere.
>
> Message:
> rna_uiItemR: property not found: RestoreVolumeModifier.volume
>
> pete larabell schrieb:
> > Tobias,
> >
> > If/when you do get your modifier successfully compiled and running... is
> > there any chance you could write up a quick documentation describing the
> > process? I've inherited a modifier from someone else and am now trying to
> do
> > the same thing you are, but so far I feel like I'm less far into the
> process
> > than you are.
> >
> > Any notes that you could write up about your experience would be great to
> > help ease the burden for everyone in the future. :)
> >
> > Thanks!
> > Peter
> >
> >
> > On Fri, Oct 8, 2010 at 8:22 AM, Tobias Oelgarte <
> > tobias.oelgarte at googlemail.com> wrote:
> >
> >
> >> Ok, now i found out that i needed to add a padding of 4 bytes to the
> >> float. After reading your link it made sense.
> >>
> >> Now i will go over to get the UI right, even it is even a little bit
> >> more confusing. At least the other modifiers are good examples on how to
> >> create and use it. Even if i quite don't understand how it interacts
> >> with the modifier and vice versa. But maybe reading the code will open
> >> my eyes.
> >>
> >> Jorge Bernal schrieb:
> >>
> >>> Hi,
> >>>
> >>> Check this link:
> >>> http://www.blender.org/development/architecture/notes-on-sdna/
> >>>
> >>> Regards,
> >>> Jorge
> >>>
> >>>
> >> _______________________________________________
> >> Bf-committers mailing list
> >> Bf-committers at blender.org
> >> http://lists.blender.org/mailman/listinfo/bf-committers
> >>
> >>
> > _______________________________________________
> > Bf-committers mailing list
> > Bf-committers at blender.org
> > http://lists.blender.org/mailman/listinfo/bf-committers
> >
> >
>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>


More information about the Bf-committers mailing list