/* Types */
extern BlenderRNA BLENDER_RNA;
-extern StructRNA RNA_Action;
-extern StructRNA RNA_ActionConstraint;
-extern StructRNA RNA_ActionGroup;
-extern StructRNA RNA_Actuator;
-extern StructRNA RNA_ActuatorSensor;
-extern StructRNA RNA_Addon;
-extern StructRNA RNA_AlwaysSensor;
-extern StructRNA RNA_AndController;
-extern StructRNA RNA_AnimData;
-extern StructRNA RNA_AnimViz;
-extern StructRNA RNA_AnimVizMotionPaths;
-extern StructRNA RNA_AnimVizOnionSkinning;
-extern StructRNA RNA_AnyType;
-extern StructRNA RNA_Area;
-extern StructRNA RNA_AreaLamp;
-extern StructRNA RNA_Armature;
-extern StructRNA RNA_ArmatureModifier;
-extern StructRNA RNA_ArmatureSensor;
-extern StructRNA RNA_ArrayModifier;
-extern StructRNA RNA_BackgroundImage;
-extern StructRNA RNA_BevelModifier;
-extern StructRNA RNA_BezierSplinePoint;
-extern StructRNA RNA_BlendData;
-extern StructRNA RNA_BlendTexture;
-extern StructRNA RNA_BlenderRNA;
-extern StructRNA RNA_BoidRule;
-extern StructRNA RNA_BoidRuleAverageSpeed;
-extern StructRNA RNA_BoidRuleAvoid;
-extern StructRNA RNA_BoidRuleAvoidCollision;
-extern StructRNA RNA_BoidRuleFight;
-extern StructRNA RNA_BoidRuleFollowLeader;
-extern StructRNA RNA_BoidRuleGoal;
-extern StructRNA RNA_BoidSettings;
-extern StructRNA RNA_BoidState;
-extern StructRNA RNA_Bone;
-extern StructRNA RNA_BoneGroup;
-extern StructRNA RNA_BooleanModifier;
-extern StructRNA RNA_BooleanProperty;
-extern StructRNA RNA_Brush;
-extern StructRNA RNA_BrushTextureSlot;
-extern StructRNA RNA_BuildModifier;
-extern StructRNA RNA_Camera;
-extern StructRNA RNA_CastModifier;
-extern StructRNA RNA_ChildOfConstraint;
-extern StructRNA RNA_ChildParticle;
-extern StructRNA RNA_ClampToConstraint;
-extern StructRNA RNA_ClothCollisionSettings;
-extern StructRNA RNA_ClothModifier;
-extern StructRNA RNA_ClothSettings;
-extern StructRNA RNA_CloudsTexture;
-extern StructRNA RNA_CollectionProperty;
-extern StructRNA RNA_CollisionModifier;
-extern StructRNA RNA_CollisionSensor;
-extern StructRNA RNA_CollisionSettings;
-extern StructRNA RNA_ColorRamp;
-extern StructRNA RNA_ColorRampElement;
-extern StructRNA RNA_ColorSequence;
-extern StructRNA RNA_CompositorNode;
-extern StructRNA RNA_CompositorNodeAlphaOver;
-extern StructRNA RNA_CompositorNodeBilateralblur;
-extern StructRNA RNA_CompositorNodeBlur;
-extern StructRNA RNA_CompositorNodeBrightContrast;
-extern StructRNA RNA_CompositorNodeChannelMatte;
-extern StructRNA RNA_CompositorNodeChromaMatte;
-extern StructRNA RNA_CompositorNodeColorMatte;
-extern StructRNA RNA_CompositorNodeColorSpill;
-extern StructRNA RNA_CompositorNodeCombHSVA;
-extern StructRNA RNA_CompositorNodeCombRGBA;
-extern StructRNA RNA_CompositorNodeCombYCCA;
-extern StructRNA RNA_CompositorNodeCombYUVA;
-extern StructRNA RNA_CompositorNodeComposite;
-extern StructRNA RNA_CompositorNodeCrop;
-extern StructRNA RNA_CompositorNodeCurveRGB;
-extern StructRNA RNA_CompositorNodeCurveVec;
-extern StructRNA RNA_CompositorNodeDBlur;
-extern StructRNA RNA_CompositorNodeDefocus;
-extern StructRNA RNA_CompositorNodeDiffMatte;
-extern StructRNA RNA_CompositorNodeDilateErode;
-extern StructRNA RNA_CompositorNodeDisplace;
-extern StructRNA RNA_CompositorNodeDistanceMatte;
-extern StructRNA RNA_CompositorNodeFilter;
-extern StructRNA RNA_CompositorNodeFlip;
-extern StructRNA RNA_CompositorNodeGamma;
-extern StructRNA RNA_CompositorNodeGlare;
-extern StructRNA RNA_CompositorNodeHueSat;
-extern StructRNA RNA_CompositorNodeIDMask;
-extern StructRNA RNA_CompositorNodeImage;
-extern StructRNA RNA_CompositorNodeInvert;
-extern StructRNA RNA_CompositorNodeLensdist;
-extern StructRNA RNA_CompositorNodeLevels;
-extern StructRNA RNA_CompositorNodeLumaMatte;
-extern StructRNA RNA_CompositorNodeMapUV;
-extern StructRNA RNA_CompositorNodeMapValue;
-extern StructRNA RNA_CompositorNodeMath;
-extern StructRNA RNA_CompositorNodeMixRGB;
-extern StructRNA RNA_CompositorNodeNormal;
-extern StructRNA RNA_CompositorNodeNormalize;
-extern StructRNA RNA_CompositorNodeOutputFile;
-extern StructRNA RNA_CompositorNodePremulKey;
-extern StructRNA RNA_CompositorNodeRGB;
-extern StructRNA RNA_CompositorNodeRGBToBW;
-extern StructRNA RNA_CompositorNodeRLayers;
-extern StructRNA RNA_CompositorNodeRotate;
-extern StructRNA RNA_CompositorNodeScale;
-extern StructRNA RNA_CompositorNodeSepHSVA;
-extern StructRNA RNA_CompositorNodeSepRGBA;
-extern StructRNA RNA_CompositorNodeSepYCCA;
-extern StructRNA RNA_CompositorNodeSepYUVA;
-extern StructRNA RNA_CompositorNodeSetAlpha;
-extern StructRNA RNA_CompositorNodeSplitViewer;
-extern StructRNA RNA_CompositorNodeTexture;
-extern StructRNA RNA_CompositorNodeTime;
-extern StructRNA RNA_CompositorNodeTonemap;
-extern StructRNA RNA_CompositorNodeTranslate;
-extern StructRNA RNA_CompositorNodeTree;
-extern StructRNA RNA_CompositorNodeValToRGB;
-extern StructRNA RNA_CompositorNodeValue;
-extern StructRNA RNA_CompositorNodeVecBlur;
-extern StructRNA RNA_CompositorNodeViewer;
-extern StructRNA RNA_CompositorNodeZcombine;
-extern StructRNA RNA_ConsoleLine;
-extern StructRNA RNA_Constraint;
-extern StructRNA RNA_ConstraintTarget;
-extern StructRNA RNA_Context;
-extern StructRNA RNA_ControlFluidSettings;
-extern StructRNA RNA_Controller;
-extern StructRNA RNA_CopyLocationConstraint;
-extern StructRNA RNA_CopyRotationConstraint;
-extern StructRNA RNA_CopyScaleConstraint;
-extern StructRNA RNA_CopyTransformsConstraint;
-extern StructRNA RNA_Curve;
-extern StructRNA RNA_CurveMap;
-extern StructRNA RNA_CurveMapPoint;
-extern StructRNA RNA_CurveMapping;
-extern StructRNA RNA_CurveModifier;
-extern StructRNA RNA_CurvePoint;
-extern StructRNA RNA_DampedTrackConstraint;
-extern StructRNA RNA_DecimateModifier;
-extern StructRNA RNA_DelaySensor;
-extern StructRNA RNA_DisplaceModifier;
-extern StructRNA RNA_DistortedNoiseTexture;
-extern StructRNA RNA_DomainFluidSettings;
-extern StructRNA RNA_Driver;
-extern StructRNA RNA_DriverTarget;
-extern StructRNA RNA_DriverVariable;
-extern StructRNA RNA_DupliObject;
-extern StructRNA RNA_EdgeSplitModifier;
-extern StructRNA RNA_EditBone;
-extern StructRNA RNA_EffectSequence;
-extern StructRNA RNA_EffectorWeights;
-extern StructRNA RNA_EnumProperty;
-extern StructRNA RNA_EnumPropertyItem;
-extern StructRNA RNA_EnvironmentMap;
-extern StructRNA RNA_EnvironmentMapTexture;
-extern StructRNA RNA_Event;
-extern StructRNA RNA_ExplodeModifier;
-extern StructRNA RNA_ExpressionController;
-extern StructRNA RNA_FCurve;
-extern StructRNA RNA_FCurveSample;
-extern StructRNA RNA_FModifier;
-extern StructRNA RNA_FModifierCycles;
-extern StructRNA RNA_FModifierEnvelope;
-extern StructRNA RNA_FModifierEnvelopeControlPoint;
-extern StructRNA RNA_FModifierFunctionGenerator;
-extern StructRNA RNA_FModifierGenerator;
-extern StructRNA RNA_FModifierLimits;
-extern StructRNA RNA_FModifierNoise;
-extern StructRNA RNA_FModifierPython;
-extern StructRNA RNA_FModifierStepped;
-extern StructRNA RNA_FieldSettings;
-extern StructRNA RNA_FileSelectParams;
-extern StructRNA RNA_FloatProperty;
-extern StructRNA RNA_FloorConstraint;
-extern StructRNA RNA_FluidFluidSettings;
-extern StructRNA RNA_FluidSettings;
-extern StructRNA RNA_FluidSimulationModifier;
-extern StructRNA RNA_FollowPathConstraint;
-extern StructRNA RNA_Function;
-extern StructRNA RNA_GPencilFrame;
-extern StructRNA RNA_GPencilLayer;
-extern StructRNA RNA_GPencilStroke;
-extern StructRNA RNA_GPencilStrokePoint;
-extern StructRNA RNA_GameBooleanProperty;
-extern StructRNA RNA_GameFloatProperty;
-extern StructRNA RNA_GameIntProperty;
-extern StructRNA RNA_GameObjectSettings;
-extern StructRNA RNA_GameProperty;
-extern StructRNA RNA_GameSoftBodySettings;
-extern StructRNA RNA_GameStringProperty;
-extern StructRNA RNA_GameTimerProperty;
-extern StructRNA RNA_GlowSequence;
-extern StructRNA RNA_GreasePencil;
-extern StructRNA RNA_Group;
-extern StructRNA RNA_Header;
-extern StructRNA RNA_HemiLamp;
-extern StructRNA RNA_Histogram;
-extern StructRNA RNA_HookModifier;
-extern StructRNA RNA_ID;
-extern StructRNA RNA_IKParam;
-extern StructRNA RNA_Image;
-extern StructRNA RNA_ImagePaint;
-extern StructRNA RNA_ImageSequence;
-extern StructRNA RNA_ImageTexture;
-extern StructRNA RNA_ImageUser;
-extern StructRNA RNA_InflowFluidSettings;
-extern StructRNA RNA_IntProperty;
-extern StructRNA RNA_Itasc;
-extern StructRNA RNA_JoystickSensor;
-extern StructRNA RNA_Key;
-extern StructRNA RNA_KeyConfig;
-extern StructRNA RNA_KeyMap;
-extern StructRNA RNA_KeyMapItem;
-extern StructRNA RNA_KeyboardSensor;
-extern StructRNA RNA_Keyframe;
-extern StructRNA RNA_KeyingSet;
-extern StructRNA RNA_KeyingSetInfo;
-extern StructRNA RNA_KeyingSetPath;
-extern StructRNA RNA_KinematicConstraint;
-extern StructRNA RNA_Lamp;
-extern StructRNA RNA_LampSkySettings;
-extern StructRNA RNA_LampTextureSlot;
-extern StructRNA RNA_Lattice;
-extern StructRNA RNA_LatticeModifier;
-extern StructRNA RNA_LatticePoint;
-extern StructRNA RNA_Library;
-extern StructRNA RNA_LimitDistanceConstraint;
-extern StructRNA RNA_LimitLocationConstraint;
-extern StructRNA RNA_LimitRotationConstraint;
-extern StructRNA RNA_LimitScaleConstraint;
-extern StructRNA RNA_LockedTrackConstraint;
-extern StructRNA RNA_Macro;
-extern StructRNA RNA_MagicTexture;
-extern StructRNA RNA_MarbleTexture;
-extern StructRNA RNA_MaskModifier;
-extern StructRNA RNA_Material;
-extern StructRNA RNA_MaterialHalo;
-extern StructRNA RNA_MaterialPhysics;
-extern StructRNA RNA_MaterialRaytraceMirror;
-extern StructRNA RNA_MaterialRaytraceTransparency;
-extern StructRNA RNA_MaterialSlot;
-extern StructRNA RNA_MaterialStrand;
-extern StructRNA RNA_MaterialSubsurfaceScattering;
-extern StructRNA RNA_MaterialTextureSlot;
-extern StructRNA RNA_MaterialVolume;
-extern StructRNA RNA_Menu;
-extern StructRNA RNA_Mesh;
-extern StructRNA RNA_MeshColor;
-extern StructRNA RNA_MeshColorLayer;
-extern StructRNA RNA_MeshDeformModifier;
-extern StructRNA RNA_MeshEdge;
-extern StructRNA RNA_MeshFace;
-extern StructRNA RNA_MeshFloatProperty;
-extern StructRNA RNA_MeshFloatPropertyLayer;
-extern StructRNA RNA_MeshIntProperty;
-extern StructRNA RNA_MeshIntPropertyLayer;
-extern StructRNA RNA_MeshSticky;
-extern StructRNA RNA_MeshStringProperty;
-extern StructRNA RNA_MeshStringPropertyLayer;
-extern StructRNA RNA_MeshTextureFace;
-extern StructRNA RNA_MeshTextureFaceLayer;
-extern StructRNA RNA_MeshVertex;
-extern StructRNA RNA_MessageSensor;
-extern StructRNA RNA_MetaBall;
-extern StructRNA RNA_MetaElement;
-extern StructRNA RNA_MetaSequence;
-extern StructRNA RNA_MirrorModifier;
-extern StructRNA RNA_Modifier;
-extern StructRNA RNA_MotionPath;
-extern StructRNA RNA_MotionPathVert;
-extern StructRNA RNA_MouseSensor;
-extern StructRNA RNA_MovieSequence;
-extern StructRNA RNA_MulticamSequence;
-extern StructRNA RNA_MultiresModifier;
-extern StructRNA RNA_MusgraveTexture;
-extern StructRNA RNA_NandController;
-extern StructRNA RNA_NearSensor;
-extern StructRNA RNA_NlaStrip;
-extern StructRNA RNA_NlaTrack;
-extern StructRNA RNA_Node;
-extern StructRNA RNA_NodeGroup;
-extern StructRNA RNA_NodeLink;
-extern StructRNA RNA_NodeSocket;
-extern StructRNA RNA_NodeTree;
-extern StructRNA RNA_NoiseTexture;
-extern StructRNA RNA_NorController;
-extern StructRNA RNA_Object;
-extern StructRNA RNA_ObjectBase;
-extern StructRNA RNA_ObstacleFluidSettings;
-extern StructRNA RNA_Operator;
-extern StructRNA RNA_OperatorFileListElement;
-extern StructRNA RNA_OperatorMousePath;
-extern StructRNA RNA_OperatorProperties;
-extern StructRNA RNA_OperatorStrokeElement;
-extern StructRNA RNA_OperatorTypeMacro;
-extern StructRNA RNA_OrController;
-extern StructRNA RNA_OutflowFluidSettings;
-extern StructRNA RNA_PackedFile;
-extern StructRNA RNA_Paint;
-extern StructRNA RNA_Panel;
-extern StructRNA RNA_Particle;
-extern StructRNA RNA_ParticleBrush;
-extern StructRNA RNA_ParticleDupliWeight;
-extern StructRNA RNA_ParticleEdit;
-extern StructRNA RNA_ParticleFluidSettings;
-extern StructRNA RNA_ParticleHairKey;
-extern StructRNA RNA_ParticleInstanceModifier;
-extern StructRNA RNA_ParticleKey;
-extern StructRNA RNA_ParticleSettings;
-extern StructRNA RNA_ParticleSettingsTextureSlot;
-extern StructRNA RNA_ParticleSystem;
-extern StructRNA RNA_ParticleSystemModifier;
-extern StructRNA RNA_ParticleTarget;
-extern StructRNA RNA_PivotConstraint;
-extern StructRNA RNA_PluginSequence;
-extern StructRNA RNA_PluginTexture;
-extern StructRNA RNA_PointCache;
-extern StructRNA RNA_PointDensity;
-extern StructRNA RNA_PointDensityTexture;
-extern StructRNA RNA_PointLamp;
-extern StructRNA RNA_PointerProperty;
-extern StructRNA RNA_Pose;
-extern StructRNA RNA_PoseBone;
-extern StructRNA RNA_Property;
-extern StructRNA RNA_PropertyGroup;
-extern StructRNA RNA_PropertyGroupItem;
-extern StructRNA RNA_PropertySensor;
-extern StructRNA RNA_PythonConstraint;
-extern StructRNA RNA_PythonController;
-extern StructRNA RNA_RGBANodeSocket;
-extern StructRNA RNA_RadarSensor;
-extern StructRNA RNA_RandomSensor;
-extern StructRNA RNA_RaySensor;
-extern StructRNA RNA_Region;
-extern StructRNA RNA_RenderEngine;
-extern StructRNA RNA_RenderLayer;
-extern StructRNA RNA_RenderPass;
-extern StructRNA RNA_RenderResult;
-extern StructRNA RNA_RenderSettings;
-extern StructRNA RNA_RigidBodyJointConstraint;
-extern StructRNA RNA_SPHFluidSettings;
-extern StructRNA RNA_Scene;
-extern StructRNA RNA_SceneGameData;
-extern StructRNA RNA_SceneRenderLayer;
-extern StructRNA RNA_SceneSequence;
-extern StructRNA RNA_Scopes;
-extern StructRNA RNA_Screen;
-extern StructRNA RNA_ScrewModifier;
-extern StructRNA RNA_Sculpt;
-extern StructRNA RNA_Sensor;
-extern StructRNA RNA_Sequence;
-extern StructRNA RNA_SequenceColorBalance;
-extern StructRNA RNA_SequenceCrop;
-extern StructRNA RNA_SequenceEditor;
-extern StructRNA RNA_SequenceElement;
-extern StructRNA RNA_SequenceProxy;
-extern StructRNA RNA_SequenceTransform;
-extern StructRNA RNA_ShaderNode;
-extern StructRNA RNA_ShaderNodeCameraData;
-extern StructRNA RNA_ShaderNodeCombineRGB;
-extern StructRNA RNA_ShaderNodeExtendedMaterial;
-extern StructRNA RNA_ShaderNodeGeometry;
-extern StructRNA RNA_ShaderNodeHueSaturation;
-extern StructRNA RNA_ShaderNodeInvert;
-extern StructRNA RNA_ShaderNodeMapping;
-extern StructRNA RNA_ShaderNodeMaterial;
-extern StructRNA RNA_ShaderNodeMath;
-extern StructRNA RNA_ShaderNodeMixRGB;
-extern StructRNA RNA_ShaderNodeNormal;
-extern StructRNA RNA_ShaderNodeOutput;
-extern StructRNA RNA_ShaderNodeRGB;
-extern StructRNA RNA_ShaderNodeRGBCurve;
-extern StructRNA RNA_ShaderNodeRGBToBW;
-extern StructRNA RNA_ShaderNodeSeparateRGB;
-extern StructRNA RNA_ShaderNodeSqueeze;
-extern StructRNA RNA_ShaderNodeTexture;
-extern StructRNA RNA_ShaderNodeTree;
-extern StructRNA RNA_ShaderNodeValToRGB;
-extern StructRNA RNA_ShaderNodeValue;
-extern StructRNA RNA_ShaderNodeVectorCurve;
-extern StructRNA RNA_ShaderNodeVectorMath;
-extern StructRNA RNA_ShapeKey;
-extern StructRNA RNA_ShapeKeyBezierPoint;
-extern StructRNA RNA_ShapeKeyCurvePoint;
-extern StructRNA RNA_ShapeKeyPoint;
-extern StructRNA RNA_ShrinkwrapConstraint;
-extern StructRNA RNA_ShrinkwrapModifier;
-extern StructRNA RNA_SimpleDeformModifier;
-extern StructRNA RNA_SmokeCollSettings;
-extern StructRNA RNA_SmokeDomainSettings;
-extern StructRNA RNA_SmokeFlowSettings;
-extern StructRNA RNA_SmokeModifier;
-extern StructRNA RNA_SmoothModifier;
-extern StructRNA RNA_SoftBodyModifier;
-extern StructRNA RNA_SoftBodySettings;
-extern StructRNA RNA_SolidifyModifier;
-extern StructRNA RNA_Sound;
-extern StructRNA RNA_SoundSequence;
-extern StructRNA RNA_Space;
-extern StructRNA RNA_SpaceConsole;
-extern StructRNA RNA_SpaceDopeSheetEditor;
-extern StructRNA RNA_SpaceFileBrowser;
-extern StructRNA RNA_SpaceGraphEditor;
-extern StructRNA RNA_SpaceImageEditor;
-extern StructRNA RNA_SpaceInfo;
-extern StructRNA RNA_SpaceLogicEditor;
-extern StructRNA RNA_SpaceNLA;
-extern StructRNA RNA_SpaceNodeEditor;
-extern StructRNA RNA_SpaceOutliner;
-extern StructRNA RNA_SpaceProperties;
-extern StructRNA RNA_SpaceSequenceEditor;
-extern StructRNA RNA_SpaceTextEditor;
-extern StructRNA RNA_SpaceTimeline;
-extern StructRNA RNA_SpaceUVEditor;
-extern StructRNA RNA_SpaceUserPreferences;
-extern StructRNA RNA_SpaceView3D;
-extern StructRNA RNA_SpeedControlSequence;
-extern StructRNA RNA_Spline;
-extern StructRNA RNA_SplineIKConstraint;
-extern StructRNA RNA_SpotLamp;
-extern StructRNA RNA_StretchToConstraint;
-extern StructRNA RNA_StringProperty;
-extern StructRNA RNA_Struct;
-extern StructRNA RNA_StucciTexture;
-extern StructRNA RNA_SubsurfModifier;
-extern StructRNA RNA_SunLamp;
-extern StructRNA RNA_SurfaceCurve;
-extern StructRNA RNA_SurfaceModifier;
-extern StructRNA RNA_TexMapping;
-extern StructRNA RNA_Text;
-extern StructRNA RNA_TextBox;
-extern StructRNA RNA_TextCharacterFormat;
-extern StructRNA RNA_TextCurve;
-extern StructRNA RNA_TextLine;
-extern StructRNA RNA_TextMarker;
-extern StructRNA RNA_Texture;
-extern StructRNA RNA_TextureNode;
-extern StructRNA RNA_TextureNodeBricks;
-extern StructRNA RNA_TextureNodeChecker;
-extern StructRNA RNA_TextureNodeCompose;
-extern StructRNA RNA_TextureNodeCoordinates;
-extern StructRNA RNA_TextureNodeCurveRGB;
-extern StructRNA RNA_TextureNodeCurveTime;
-extern StructRNA RNA_TextureNodeDecompose;
-extern StructRNA RNA_TextureNodeDistance;
-extern StructRNA RNA_TextureNodeHueSaturation;
-extern StructRNA RNA_TextureNodeImage;
-extern StructRNA RNA_TextureNodeInvert;
-extern StructRNA RNA_TextureNodeMath;
-extern StructRNA RNA_TextureNodeMixRGB;
-extern StructRNA RNA_TextureNodeOutput;
-extern StructRNA RNA_TextureNodeRGBToBW;
-extern StructRNA RNA_TextureNodeRotate;
-extern StructRNA RNA_TextureNodeScale;
-extern StructRNA RNA_TextureNodeTexture;
-extern StructRNA RNA_TextureNodeTranslate;
-extern StructRNA RNA_TextureNodeTree;
-extern StructRNA RNA_TextureNodeValToNor;
-extern StructRNA RNA_TextureNodeValToRGB;
-extern StructRNA RNA_TextureNodeViewer;
-extern StructRNA RNA_TextureSlot;
-extern StructRNA RNA_Theme;
-extern StructRNA RNA_ThemeAudioWindow;
-extern StructRNA RNA_ThemeBoneColorSet;
-extern StructRNA RNA_ThemeConsole;
-extern StructRNA RNA_ThemeDopeSheet;
-extern StructRNA RNA_ThemeFileBrowser;
-extern StructRNA RNA_ThemeFontStyle;
-extern StructRNA RNA_ThemeGraphEditor;
-extern StructRNA RNA_ThemeImageEditor;
-extern StructRNA RNA_ThemeInfo;
-extern StructRNA RNA_ThemeLogicEditor;
-extern StructRNA RNA_ThemeNLAEditor;
-extern StructRNA RNA_ThemeNodeEditor;
-extern StructRNA RNA_ThemeOutliner;
-extern StructRNA RNA_ThemeProperties;
-extern StructRNA RNA_ThemeSequenceEditor;
-extern StructRNA RNA_ThemeStyle;
-extern StructRNA RNA_ThemeTextEditor;
-extern StructRNA RNA_ThemeTimeline;
-extern StructRNA RNA_ThemeUserInterface;
-extern StructRNA RNA_ThemeUserPreferences;
-extern StructRNA RNA_ThemeView3D;
-extern StructRNA RNA_ThemeWidgetColors;
-extern StructRNA RNA_ThemeWidgetStateColors;
-extern StructRNA RNA_TimelineMarker;
-extern StructRNA RNA_Timer;
-extern StructRNA RNA_ToolSettings;
-extern StructRNA RNA_TouchSensor;
-extern StructRNA RNA_TrackToConstraint;
-extern StructRNA RNA_TransformConstraint;
-extern StructRNA RNA_TransformSequence;
-extern StructRNA RNA_UILayout;
-extern StructRNA RNA_UIListItem;
-extern StructRNA RNA_UVProjectModifier;
-extern StructRNA RNA_UVProjector;
-extern StructRNA RNA_UnitSettings;
-extern StructRNA RNA_UnknownType;
-extern StructRNA RNA_UserPreferences;
-extern StructRNA RNA_UserPreferencesEdit;
-extern StructRNA RNA_UserPreferencesFilePaths;
-extern StructRNA RNA_UserPreferencesSystem;
-extern StructRNA RNA_UserPreferencesView;
-extern StructRNA RNA_UserSolidLight;
-extern StructRNA RNA_ValueNodeSocket;
-extern StructRNA RNA_VectorFont;
-extern StructRNA RNA_VectorNodeSocket;
-extern StructRNA RNA_VertexGroup;
-extern StructRNA RNA_VertexGroupElement;
-extern StructRNA RNA_VertexPaint;
-extern StructRNA RNA_VoronoiTexture;
-extern StructRNA RNA_VoxelData;
-extern StructRNA RNA_VoxelDataTexture;
-extern StructRNA RNA_WarpModifier;
-extern StructRNA RNA_WaveModifier;
-extern StructRNA RNA_Window;
-extern StructRNA RNA_WindowManager;
-extern StructRNA RNA_WipeSequence;
-extern StructRNA RNA_WoodTexture;
-extern StructRNA RNA_World;
-extern StructRNA RNA_WorldAmbientOcclusion;
-extern StructRNA RNA_WorldMistSettings;
-extern StructRNA RNA_WorldStarsSettings;
-extern StructRNA RNA_WorldTextureSlot;
-extern StructRNA RNA_XnorController;
-extern StructRNA RNA_XorController;
-
+extern LIBEXPORT StructRNA RNA_Action;
+extern LIBEXPORT StructRNA RNA_ActionConstraint;
+extern LIBEXPORT StructRNA RNA_ActionGroup;
+extern LIBEXPORT StructRNA RNA_Actuator;
+extern LIBEXPORT StructRNA RNA_ActuatorSensor;
+extern LIBEXPORT StructRNA RNA_Addon;
+extern LIBEXPORT StructRNA RNA_AlwaysSensor;
+extern LIBEXPORT StructRNA RNA_AndController;
+extern LIBEXPORT StructRNA RNA_AnimData;
+extern LIBEXPORT StructRNA RNA_AnimViz;
+extern LIBEXPORT StructRNA RNA_AnimVizMotionPaths;
+extern LIBEXPORT StructRNA RNA_AnimVizOnionSkinning;
+extern LIBEXPORT StructRNA RNA_AnyType;
+extern LIBEXPORT StructRNA RNA_Area;
+extern LIBEXPORT StructRNA RNA_AreaLamp;
+extern LIBEXPORT StructRNA RNA_Armature;
+extern LIBEXPORT StructRNA RNA_ArmatureModifier;
+extern LIBEXPORT StructRNA RNA_ArmatureSensor;
+extern LIBEXPORT StructRNA RNA_ArrayModifier;
+extern LIBEXPORT StructRNA RNA_BackgroundImage;
+extern LIBEXPORT StructRNA RNA_BevelModifier;
+extern LIBEXPORT StructRNA RNA_BezierSplinePoint;
+extern LIBEXPORT StructRNA RNA_BlendData;
+extern LIBEXPORT StructRNA RNA_BlendTexture;
+extern LIBEXPORT StructRNA RNA_BlenderRNA;
+extern LIBEXPORT StructRNA RNA_BoidRule;
+extern LIBEXPORT StructRNA RNA_BoidRuleAverageSpeed;
+extern LIBEXPORT StructRNA RNA_BoidRuleAvoid;
+extern LIBEXPORT StructRNA RNA_BoidRuleAvoidCollision;
+extern LIBEXPORT StructRNA RNA_BoidRuleFight;
+extern LIBEXPORT StructRNA RNA_BoidRuleFollowLeader;
+extern LIBEXPORT StructRNA RNA_BoidRuleGoal;
+extern LIBEXPORT StructRNA RNA_BoidSettings;
+extern LIBEXPORT StructRNA RNA_BoidState;
+extern LIBEXPORT StructRNA RNA_Bone;
+extern LIBEXPORT StructRNA RNA_BoneGroup;
+extern LIBEXPORT StructRNA RNA_BooleanModifier;
+extern LIBEXPORT StructRNA RNA_BooleanProperty;
+extern LIBEXPORT StructRNA RNA_Brush;
+extern LIBEXPORT StructRNA RNA_BrushTextureSlot;
+extern LIBEXPORT StructRNA RNA_BuildModifier;
+extern LIBEXPORT StructRNA RNA_Camera;
+extern LIBEXPORT StructRNA RNA_CastModifier;
+extern LIBEXPORT StructRNA RNA_ChildOfConstraint;
+extern LIBEXPORT StructRNA RNA_ChildParticle;
+extern LIBEXPORT StructRNA RNA_ClampToConstraint;
+extern LIBEXPORT StructRNA RNA_ClothCollisionSettings;
+extern LIBEXPORT StructRNA RNA_ClothModifier;
+extern LIBEXPORT StructRNA RNA_ClothSettings;
+extern LIBEXPORT StructRNA RNA_CloudsTexture;
+extern LIBEXPORT StructRNA RNA_CollectionProperty;
+extern LIBEXPORT StructRNA RNA_CollisionModifier;
+extern LIBEXPORT StructRNA RNA_CollisionSensor;
+extern LIBEXPORT StructRNA RNA_CollisionSettings;
+extern LIBEXPORT StructRNA RNA_ColorRamp;
+extern LIBEXPORT StructRNA RNA_ColorRampElement;
+extern LIBEXPORT StructRNA RNA_ColorSequence;
+extern LIBEXPORT StructRNA RNA_CompositorNode;
+extern LIBEXPORT StructRNA RNA_CompositorNodeAlphaOver;
+extern LIBEXPORT StructRNA RNA_CompositorNodeBilateralblur;
+extern LIBEXPORT StructRNA RNA_CompositorNodeBlur;
+extern LIBEXPORT StructRNA RNA_CompositorNodeBrightContrast;
+extern LIBEXPORT StructRNA RNA_CompositorNodeChannelMatte;
+extern LIBEXPORT StructRNA RNA_CompositorNodeChromaMatte;
+extern LIBEXPORT StructRNA RNA_CompositorNodeColorMatte;
+extern LIBEXPORT StructRNA RNA_CompositorNodeColorSpill;
+extern LIBEXPORT StructRNA RNA_CompositorNodeCombHSVA;
+extern LIBEXPORT StructRNA RNA_CompositorNodeCombRGBA;
+extern LIBEXPORT StructRNA RNA_CompositorNodeCombYCCA;
+extern LIBEXPORT StructRNA RNA_CompositorNodeCombYUVA;
+extern LIBEXPORT StructRNA RNA_CompositorNodeComposite;
+extern LIBEXPORT StructRNA RNA_CompositorNodeCrop;
+extern LIBEXPORT StructRNA RNA_CompositorNodeCurveRGB;
+extern LIBEXPORT StructRNA RNA_CompositorNodeCurveVec;
+extern LIBEXPORT StructRNA RNA_CompositorNodeDBlur;
+extern LIBEXPORT StructRNA RNA_CompositorNodeDefocus;
+extern LIBEXPORT StructRNA RNA_CompositorNodeDiffMatte;
+extern LIBEXPORT StructRNA RNA_CompositorNodeDilateErode;
+extern LIBEXPORT StructRNA RNA_CompositorNodeDisplace;
+extern LIBEXPORT StructRNA RNA_CompositorNodeDistanceMatte;
+extern LIBEXPORT StructRNA RNA_CompositorNodeFilter;
+extern LIBEXPORT StructRNA RNA_CompositorNodeFlip;
+extern LIBEXPORT StructRNA RNA_CompositorNodeGamma;
+extern LIBEXPORT StructRNA RNA_CompositorNodeGlare;
+extern LIBEXPORT StructRNA RNA_CompositorNodeHueSat;
+extern LIBEXPORT StructRNA RNA_CompositorNodeIDMask;
+extern LIBEXPORT StructRNA RNA_CompositorNodeImage;
+extern LIBEXPORT StructRNA RNA_CompositorNodeInvert;
+extern LIBEXPORT StructRNA RNA_CompositorNodeLensdist;
+extern LIBEXPORT StructRNA RNA_CompositorNodeLevels;
+extern LIBEXPORT StructRNA RNA_CompositorNodeLumaMatte;
+extern LIBEXPORT StructRNA RNA_CompositorNodeMapUV;
+extern LIBEXPORT StructRNA RNA_CompositorNodeMapValue;
+extern LIBEXPORT StructRNA RNA_CompositorNodeMath;
+extern LIBEXPORT StructRNA RNA_CompositorNodeMixRGB;
+extern LIBEXPORT StructRNA RNA_CompositorNodeNormal;
+extern LIBEXPORT StructRNA RNA_CompositorNodeNormalize;
+extern LIBEXPORT StructRNA RNA_CompositorNodeOutputFile;
+extern LIBEXPORT StructRNA RNA_CompositorNodePremulKey;
+extern LIBEXPORT StructRNA RNA_CompositorNodeRGB;
+extern LIBEXPORT StructRNA RNA_CompositorNodeRGBToBW;
+extern LIBEXPORT StructRNA RNA_CompositorNodeRLayers;
+extern LIBEXPORT StructRNA RNA_CompositorNodeRotate;
+extern LIBEXPORT StructRNA RNA_CompositorNodeScale;
+extern LIBEXPORT StructRNA RNA_CompositorNodeSepHSVA;
+extern LIBEXPORT StructRNA RNA_CompositorNodeSepRGBA;
+extern LIBEXPORT StructRNA RNA_CompositorNodeSepYCCA;
+extern LIBEXPORT StructRNA RNA_CompositorNodeSepYUVA;
+extern LIBEXPORT StructRNA RNA_CompositorNodeSetAlpha;
+extern LIBEXPORT StructRNA RNA_CompositorNodeSplitViewer;
+extern LIBEXPORT StructRNA RNA_CompositorNodeTexture;
+extern LIBEXPORT StructRNA RNA_CompositorNodeTime;
+extern LIBEXPORT StructRNA RNA_CompositorNodeTonemap;
+extern LIBEXPORT StructRNA RNA_CompositorNodeTranslate;
+extern LIBEXPORT StructRNA RNA_CompositorNodeTree;
+extern LIBEXPORT StructRNA RNA_CompositorNodeValToRGB;
+extern LIBEXPORT StructRNA RNA_CompositorNodeValue;
+extern LIBEXPORT StructRNA RNA_CompositorNodeVecBlur;
+extern LIBEXPORT StructRNA RNA_CompositorNodeViewer;
+extern LIBEXPORT StructRNA RNA_CompositorNodeZcombine;
+extern LIBEXPORT StructRNA RNA_ConsoleLine;
+extern LIBEXPORT StructRNA RNA_Constraint;
+extern LIBEXPORT StructRNA RNA_ConstraintTarget;
+extern LIBEXPORT StructRNA RNA_Context;
+extern LIBEXPORT StructRNA RNA_ControlFluidSettings;
+extern LIBEXPORT StructRNA RNA_Controller;
+extern LIBEXPORT StructRNA RNA_CopyLocationConstraint;
+extern LIBEXPORT StructRNA RNA_CopyRotationConstraint;
+extern LIBEXPORT StructRNA RNA_CopyScaleConstraint;
+extern LIBEXPORT StructRNA RNA_CopyTransformsConstraint;
+extern LIBEXPORT StructRNA RNA_Curve;
+extern LIBEXPORT StructRNA RNA_CurveMap;
+extern LIBEXPORT StructRNA RNA_CurveMapPoint;
+extern LIBEXPORT StructRNA RNA_CurveMapping;
+extern LIBEXPORT StructRNA RNA_CurveModifier;
+extern LIBEXPORT StructRNA RNA_CurvePoint;
+extern LIBEXPORT StructRNA RNA_DampedTrackConstraint;
+extern LIBEXPORT StructRNA RNA_DecimateModifier;
+extern LIBEXPORT StructRNA RNA_DelaySensor;
+extern LIBEXPORT StructRNA RNA_DisplaceModifier;
+extern LIBEXPORT StructRNA RNA_DistortedNoiseTexture;
+extern LIBEXPORT StructRNA RNA_DomainFluidSettings;
+extern LIBEXPORT StructRNA RNA_Driver;
+extern LIBEXPORT StructRNA RNA_DriverTarget;
+extern LIBEXPORT StructRNA RNA_DriverVariable;
+extern LIBEXPORT StructRNA RNA_DupliObject;
+extern LIBEXPORT StructRNA RNA_EdgeSplitModifier;
+extern LIBEXPORT StructRNA RNA_EditBone;
+extern LIBEXPORT StructRNA RNA_EffectSequence;
+extern LIBEXPORT StructRNA RNA_EffectorWeights;
+extern LIBEXPORT StructRNA RNA_EnumProperty;
+extern LIBEXPORT StructRNA RNA_EnumPropertyItem;
+extern LIBEXPORT StructRNA RNA_EnvironmentMap;
+extern LIBEXPORT StructRNA RNA_EnvironmentMapTexture;
+extern LIBEXPORT StructRNA RNA_Event;
+extern LIBEXPORT StructRNA RNA_ExplodeModifier;
+extern LIBEXPORT StructRNA RNA_ExpressionController;
+extern LIBEXPORT StructRNA RNA_FCurve;
+extern LIBEXPORT StructRNA RNA_FCurveSample;
+extern LIBEXPORT StructRNA RNA_FModifier;
+extern LIBEXPORT StructRNA RNA_FModifierCycles;
+extern LIBEXPORT StructRNA RNA_FModifierEnvelope;
+extern LIBEXPORT StructRNA RNA_FModifierEnvelopeControlPoint;
+extern LIBEXPORT StructRNA RNA_FModifierFunctionGenerator;
+extern LIBEXPORT StructRNA RNA_FModifierGenerator;
+extern LIBEXPORT StructRNA RNA_FModifierLimits;
+extern LIBEXPORT StructRNA RNA_FModifierNoise;
+extern LIBEXPORT StructRNA RNA_FModifierPython;
+extern LIBEXPORT StructRNA RNA_FModifierStepped;
+extern LIBEXPORT StructRNA RNA_FieldSettings;
+extern LIBEXPORT StructRNA RNA_FileSelectParams;
+extern LIBEXPORT StructRNA RNA_FloatProperty;
+extern LIBEXPORT StructRNA RNA_FloorConstraint;
+extern LIBEXPORT StructRNA RNA_FluidFluidSettings;
+extern LIBEXPORT StructRNA RNA_FluidSettings;
+extern LIBEXPORT StructRNA RNA_FluidSimulationModifier;
+extern LIBEXPORT StructRNA RNA_FollowPathConstraint;
+extern LIBEXPORT StructRNA RNA_Function;
+extern LIBEXPORT StructRNA RNA_GPencilFrame;
+extern LIBEXPORT StructRNA RNA_GPencilLayer;
+extern LIBEXPORT StructRNA RNA_GPencilStroke;
+extern LIBEXPORT StructRNA RNA_GPencilStrokePoint;
+extern LIBEXPORT StructRNA RNA_GameBooleanProperty;
+extern LIBEXPORT StructRNA RNA_GameFloatProperty;
+extern LIBEXPORT StructRNA RNA_GameIntProperty;
+extern LIBEXPORT StructRNA RNA_GameObjectSettings;
+extern LIBEXPORT StructRNA RNA_GameProperty;
+extern LIBEXPORT StructRNA RNA_GameSoftBodySettings;
+extern LIBEXPORT StructRNA RNA_GameStringProperty;
+extern LIBEXPORT StructRNA RNA_GameTimerProperty;
+extern LIBEXPORT StructRNA RNA_GlowSequence;
+extern LIBEXPORT StructRNA RNA_GreasePencil;
+extern LIBEXPORT StructRNA RNA_Group;
+extern LIBEXPORT StructRNA RNA_Header;
+extern LIBEXPORT StructRNA RNA_HemiLamp;
+extern LIBEXPORT StructRNA RNA_Histogram;
+extern LIBEXPORT StructRNA RNA_HookModifier;
+extern LIBEXPORT StructRNA RNA_ID;
+extern LIBEXPORT StructRNA RNA_IKParam;
+extern LIBEXPORT StructRNA RNA_Image;
+extern LIBEXPORT StructRNA RNA_ImagePaint;
+extern LIBEXPORT StructRNA RNA_ImageSequence;
+extern LIBEXPORT StructRNA RNA_ImageTexture;
+extern LIBEXPORT StructRNA RNA_ImageUser;
+extern LIBEXPORT StructRNA RNA_InflowFluidSettings;
+extern LIBEXPORT StructRNA RNA_IntProperty;
+extern LIBEXPORT StructRNA RNA_Itasc;
+extern LIBEXPORT StructRNA RNA_JoystickSensor;
+extern LIBEXPORT StructRNA RNA_Key;
+extern LIBEXPORT StructRNA RNA_KeyConfig;
+extern LIBEXPORT StructRNA RNA_KeyMap;
+extern LIBEXPORT StructRNA RNA_KeyMapItem;
+extern LIBEXPORT StructRNA RNA_KeyboardSensor;
+extern LIBEXPORT StructRNA RNA_Keyframe;
+extern LIBEXPORT StructRNA RNA_KeyingSet;
+extern LIBEXPORT StructRNA RNA_KeyingSetInfo;
+extern LIBEXPORT StructRNA RNA_KeyingSetPath;
+extern LIBEXPORT StructRNA RNA_KinematicConstraint;
+extern LIBEXPORT StructRNA RNA_Lamp;
+extern LIBEXPORT StructRNA RNA_LampSkySettings;
+extern LIBEXPORT StructRNA RNA_LampTextureSlot;
+extern LIBEXPORT StructRNA RNA_Lattice;
+extern LIBEXPORT StructRNA RNA_LatticeModifier;
+extern LIBEXPORT StructRNA RNA_LatticePoint;
+extern LIBEXPORT StructRNA RNA_Library;
+extern LIBEXPORT StructRNA RNA_LimitDistanceConstraint;
+extern LIBEXPORT StructRNA RNA_LimitLocationConstraint;
+extern LIBEXPORT StructRNA RNA_LimitRotationConstraint;
+extern LIBEXPORT StructRNA RNA_LimitScaleConstraint;
+extern LIBEXPORT StructRNA RNA_LockedTrackConstraint;
+extern LIBEXPORT StructRNA RNA_Macro;
+extern LIBEXPORT StructRNA RNA_MagicTexture;
+extern LIBEXPORT StructRNA RNA_MarbleTexture;
+extern LIBEXPORT StructRNA RNA_MaskModifier;
+extern LIBEXPORT StructRNA RNA_Material;
+extern LIBEXPORT StructRNA RNA_MaterialHalo;
+extern LIBEXPORT StructRNA RNA_MaterialPhysics;
+extern LIBEXPORT StructRNA RNA_MaterialRaytraceMirror;
+extern LIBEXPORT StructRNA RNA_MaterialRaytraceTransparency;
+extern LIBEXPORT StructRNA RNA_MaterialSlot;
+extern LIBEXPORT StructRNA RNA_MaterialStrand;
+extern LIBEXPORT StructRNA RNA_MaterialSubsurfaceScattering;
+extern LIBEXPORT StructRNA RNA_MaterialTextureSlot;
+extern LIBEXPORT StructRNA RNA_MaterialVolume;
+extern LIBEXPORT StructRNA RNA_Menu;
+extern LIBEXPORT StructRNA RNA_Mesh;
+extern LIBEXPORT StructRNA RNA_MeshColor;
+extern LIBEXPORT StructRNA RNA_MeshColorLayer;
+extern LIBEXPORT StructRNA RNA_MeshDeformModifier;
+extern LIBEXPORT StructRNA RNA_MeshEdge;
+extern LIBEXPORT StructRNA RNA_MeshFace;
+extern LIBEXPORT StructRNA RNA_MeshFloatProperty;
+extern LIBEXPORT StructRNA RNA_MeshFloatPropertyLayer;
+extern LIBEXPORT StructRNA RNA_MeshIntProperty;
+extern LIBEXPORT StructRNA RNA_MeshIntPropertyLayer;
+extern LIBEXPORT StructRNA RNA_MeshSticky;
+extern LIBEXPORT StructRNA RNA_MeshStringProperty;
+extern LIBEXPORT StructRNA RNA_MeshStringPropertyLayer;
+extern LIBEXPORT StructRNA RNA_MeshTextureFace;
+extern LIBEXPORT StructRNA RNA_MeshTextureFaceLayer;
+extern LIBEXPORT StructRNA RNA_MeshVertex;
+extern LIBEXPORT StructRNA RNA_MessageSensor;
+extern LIBEXPORT StructRNA RNA_MetaBall;
+extern LIBEXPORT StructRNA RNA_MetaElement;
+extern LIBEXPORT StructRNA RNA_MetaSequence;
+extern LIBEXPORT StructRNA RNA_MirrorModifier;
+extern LIBEXPORT StructRNA RNA_Modifier;
+extern LIBEXPORT StructRNA RNA_MotionPath;
+extern LIBEXPORT StructRNA RNA_MotionPathVert;
+extern LIBEXPORT StructRNA RNA_MouseSensor;
+extern LIBEXPORT StructRNA RNA_MovieSequence;
+extern LIBEXPORT StructRNA RNA_MulticamSequence;
+extern LIBEXPORT StructRNA RNA_MultiresModifier;
+extern LIBEXPORT StructRNA RNA_MusgraveTexture;
+extern LIBEXPORT StructRNA RNA_NandController;
+extern LIBEXPORT StructRNA RNA_NearSensor;
+extern LIBEXPORT StructRNA RNA_NlaStrip;
+extern LIBEXPORT StructRNA RNA_NlaTrack;
+extern LIBEXPORT StructRNA RNA_Node;
+extern LIBEXPORT StructRNA RNA_NodeGroup;
+extern LIBEXPORT StructRNA RNA_NodeLink;
+extern LIBEXPORT StructRNA RNA_NodeSocket;
+extern LIBEXPORT StructRNA RNA_NodeTree;
+extern LIBEXPORT StructRNA RNA_NoiseTexture;
+extern LIBEXPORT StructRNA RNA_NorController;
+extern LIBEXPORT StructRNA RNA_Object;
+extern LIBEXPORT StructRNA RNA_ObjectBase;
+extern LIBEXPORT StructRNA RNA_ObstacleFluidSettings;
+extern LIBEXPORT StructRNA RNA_Operator;
+extern LIBEXPORT StructRNA RNA_OperatorFileListElement;
+extern LIBEXPORT StructRNA RNA_OperatorMousePath;
+extern LIBEXPORT StructRNA RNA_OperatorProperties;
+extern LIBEXPORT StructRNA RNA_OperatorStrokeElement;
+extern LIBEXPORT StructRNA RNA_OperatorTypeMacro;
+extern LIBEXPORT StructRNA RNA_OrController;
+extern LIBEXPORT StructRNA RNA_OutflowFluidSettings;
+extern LIBEXPORT StructRNA RNA_PackedFile;
+extern LIBEXPORT StructRNA RNA_Paint;
+extern LIBEXPORT StructRNA RNA_Panel;
+extern LIBEXPORT StructRNA RNA_Particle;
+extern LIBEXPORT StructRNA RNA_ParticleBrush;
+extern LIBEXPORT StructRNA RNA_ParticleDupliWeight;
+extern LIBEXPORT StructRNA RNA_ParticleEdit;
+extern LIBEXPORT StructRNA RNA_ParticleFluidSettings;
+extern LIBEXPORT StructRNA RNA_ParticleHairKey;
+extern LIBEXPORT StructRNA RNA_ParticleInstanceModifier;
+extern LIBEXPORT StructRNA RNA_ParticleKey;
+extern LIBEXPORT StructRNA RNA_ParticleSettings;
+extern LIBEXPORT StructRNA RNA_ParticleSettingsTextureSlot;
+extern LIBEXPORT StructRNA RNA_ParticleSystem;
+extern LIBEXPORT StructRNA RNA_ParticleSystemModifier;
+extern LIBEXPORT StructRNA RNA_ParticleTarget;
+extern LIBEXPORT StructRNA RNA_PivotConstraint;
+extern LIBEXPORT StructRNA RNA_PluginSequence;
+extern LIBEXPORT StructRNA RNA_PluginTexture;
+extern LIBEXPORT StructRNA RNA_PointCache;
+extern LIBEXPORT StructRNA RNA_PointDensity;
+extern LIBEXPORT StructRNA RNA_PointDensityTexture;
+extern LIBEXPORT StructRNA RNA_PointLamp;
+extern LIBEXPORT StructRNA RNA_PointerProperty;
+extern LIBEXPORT StructRNA RNA_Pose;
+extern LIBEXPORT StructRNA RNA_PoseBone;
+extern LIBEXPORT StructRNA RNA_Property;
+extern LIBEXPORT StructRNA RNA_PropertyGroup;
+extern LIBEXPORT StructRNA RNA_PropertyGroupItem;
+extern LIBEXPORT StructRNA RNA_PropertySensor;
+extern LIBEXPORT StructRNA RNA_PythonConstraint;
+extern LIBEXPORT StructRNA RNA_PythonController;
+extern LIBEXPORT StructRNA RNA_RGBANodeSocket;
+extern LIBEXPORT StructRNA RNA_RadarSensor;
+extern LIBEXPORT StructRNA RNA_RandomSensor;
+extern LIBEXPORT StructRNA RNA_RaySensor;
+extern LIBEXPORT StructRNA RNA_Region;
+extern LIBEXPORT StructRNA RNA_RenderEngine;
+extern LIBEXPORT StructRNA RNA_RenderLayer;
+extern LIBEXPORT StructRNA RNA_RenderPass;
+extern LIBEXPORT StructRNA RNA_RenderResult;
+extern LIBEXPORT StructRNA RNA_RenderSettings;
+extern LIBEXPORT StructRNA RNA_RigidBodyJointConstraint;
+extern LIBEXPORT StructRNA RNA_SPHFluidSettings;
+extern LIBEXPORT StructRNA RNA_Scene;
+extern LIBEXPORT StructRNA RNA_SceneGameData;
+extern LIBEXPORT StructRNA RNA_SceneRenderLayer;
+extern LIBEXPORT StructRNA RNA_SceneSequence;
+extern LIBEXPORT StructRNA RNA_Scopes;
+extern LIBEXPORT StructRNA RNA_Screen;
+extern LIBEXPORT StructRNA RNA_ScrewModifier;
+extern LIBEXPORT StructRNA RNA_Sculpt;
+extern LIBEXPORT StructRNA RNA_Sensor;
+extern LIBEXPORT StructRNA RNA_Sequence;
+extern LIBEXPORT StructRNA RNA_SequenceColorBalance;
+extern LIBEXPORT StructRNA RNA_SequenceCrop;
+extern LIBEXPORT StructRNA RNA_SequenceEditor;
+extern LIBEXPORT StructRNA RNA_SequenceElement;
+extern LIBEXPORT StructRNA RNA_SequenceProxy;
+extern LIBEXPORT StructRNA RNA_SequenceTransform;
+extern LIBEXPORT StructRNA RNA_ShaderNode;
+extern LIBEXPORT StructRNA RNA_ShaderNodeCameraData;
+extern LIBEXPORT StructRNA RNA_ShaderNodeCombineRGB;
+extern LIBEXPORT StructRNA RNA_ShaderNodeExtendedMaterial;
+extern LIBEXPORT StructRNA RNA_ShaderNodeGeometry;
+extern LIBEXPORT StructRNA RNA_ShaderNodeHueSaturation;
+extern LIBEXPORT StructRNA RNA_ShaderNodeInvert;
+extern LIBEXPORT StructRNA RNA_ShaderNodeMapping;
+extern LIBEXPORT StructRNA RNA_ShaderNodeMaterial;
+extern LIBEXPORT StructRNA RNA_ShaderNodeMath;
+extern LIBEXPORT StructRNA RNA_ShaderNodeMixRGB;
+extern LIBEXPORT StructRNA RNA_ShaderNodeNormal;
+extern LIBEXPORT StructRNA RNA_ShaderNodeOutput;
+extern LIBEXPORT StructRNA RNA_ShaderNodeRGB;
+extern LIBEXPORT StructRNA RNA_ShaderNodeRGBCurve;
+extern LIBEXPORT StructRNA RNA_ShaderNodeRGBToBW;
+extern LIBEXPORT StructRNA RNA_ShaderNodeSeparateRGB;
+extern LIBEXPORT StructRNA RNA_ShaderNodeSqueeze;
+extern LIBEXPORT StructRNA RNA_ShaderNodeTexture;
+extern LIBEXPORT StructRNA RNA_ShaderNodeTree;
+extern LIBEXPORT StructRNA RNA_ShaderNodeValToRGB;
+extern LIBEXPORT StructRNA RNA_ShaderNodeValue;
+extern LIBEXPORT StructRNA RNA_ShaderNodeVectorCurve;
+extern LIBEXPORT StructRNA RNA_ShaderNodeVectorMath;
+extern LIBEXPORT StructRNA RNA_ShapeKey;
+extern LIBEXPORT StructRNA RNA_ShapeKeyBezierPoint;
+extern LIBEXPORT StructRNA RNA_ShapeKeyCurvePoint;
+extern LIBEXPORT StructRNA RNA_ShapeKeyPoint;
+extern LIBEXPORT StructRNA RNA_ShrinkwrapConstraint;
+extern LIBEXPORT StructRNA RNA_ShrinkwrapModifier;
+extern LIBEXPORT StructRNA RNA_SimpleDeformModifier;
+extern LIBEXPORT StructRNA RNA_SmokeCollSettings;
+extern LIBEXPORT StructRNA RNA_SmokeDomainSettings;
+extern LIBEXPORT StructRNA RNA_SmokeFlowSettings;
+extern LIBEXPORT StructRNA RNA_SmokeModifier;
+extern LIBEXPORT StructRNA RNA_SmoothModifier;
+extern LIBEXPORT StructRNA RNA_SoftBodyModifier;
+extern LIBEXPORT StructRNA RNA_SoftBodySettings;
+extern LIBEXPORT StructRNA RNA_SolidifyModifier;
+extern LIBEXPORT StructRNA RNA_Sound;
+extern LIBEXPORT StructRNA RNA_SoundSequence;
+extern LIBEXPORT StructRNA RNA_Space;
+extern LIBEXPORT StructRNA RNA_SpaceConsole;
+extern LIBEXPORT StructRNA RNA_SpaceDopeSheetEditor;
+extern LIBEXPORT StructRNA RNA_SpaceFileBrowser;
+extern LIBEXPORT StructRNA RNA_SpaceGraphEditor;
+extern LIBEXPORT StructRNA RNA_SpaceImageEditor;
+extern LIBEXPORT StructRNA RNA_SpaceInfo;
+extern LIBEXPORT StructRNA RNA_SpaceLogicEditor;
+extern LIBEXPORT StructRNA RNA_SpaceNLA;
+extern LIBEXPORT StructRNA RNA_SpaceNodeEditor;
+extern LIBEXPORT StructRNA RNA_SpaceOutliner;
+extern LIBEXPORT StructRNA RNA_SpaceProperties;
+extern LIBEXPORT StructRNA RNA_SpaceSequenceEditor;
+extern LIBEXPORT StructRNA RNA_SpaceTextEditor;
+extern LIBEXPORT StructRNA RNA_SpaceTimeline;
+extern LIBEXPORT StructRNA RNA_SpaceUVEditor;
+extern LIBEXPORT StructRNA RNA_SpaceUserPreferences;
+extern LIBEXPORT StructRNA RNA_SpaceView3D;
+extern LIBEXPORT StructRNA RNA_SpeedControlSequence;
+extern LIBEXPORT StructRNA RNA_Spline;
+extern LIBEXPORT StructRNA RNA_SplineIKConstraint;
+extern LIBEXPORT StructRNA RNA_SpotLamp;
+extern LIBEXPORT StructRNA RNA_StretchToConstraint;
+extern LIBEXPORT StructRNA RNA_StringProperty;
+extern LIBEXPORT StructRNA RNA_Struct;
+extern LIBEXPORT StructRNA RNA_StucciTexture;
+extern LIBEXPORT StructRNA RNA_SubsurfModifier;
+extern LIBEXPORT StructRNA RNA_SunLamp;
+extern LIBEXPORT StructRNA RNA_SurfaceCurve;
+extern LIBEXPORT StructRNA RNA_SurfaceModifier;
+extern LIBEXPORT StructRNA RNA_TexMapping;
+extern LIBEXPORT StructRNA RNA_Text;
+extern LIBEXPORT StructRNA RNA_TextBox;
+extern LIBEXPORT StructRNA RNA_TextCharacterFormat;
+extern LIBEXPORT StructRNA RNA_TextCurve;
+extern LIBEXPORT StructRNA RNA_TextLine;
+extern LIBEXPORT StructRNA RNA_TextMarker;
+extern LIBEXPORT StructRNA RNA_Texture;
+extern LIBEXPORT StructRNA RNA_TextureNode;
+extern LIBEXPORT StructRNA RNA_TextureNodeBricks;
+extern LIBEXPORT StructRNA RNA_TextureNodeChecker;
+extern LIBEXPORT StructRNA RNA_TextureNodeCompose;
+extern LIBEXPORT StructRNA RNA_TextureNodeCoordinates;
+extern LIBEXPORT StructRNA RNA_TextureNodeCurveRGB;
+extern LIBEXPORT StructRNA RNA_TextureNodeCurveTime;
+extern LIBEXPORT StructRNA RNA_TextureNodeDecompose;
+extern LIBEXPORT StructRNA RNA_TextureNodeDistance;
+extern LIBEXPORT StructRNA RNA_TextureNodeHueSaturation;
+extern LIBEXPORT StructRNA RNA_TextureNodeImage;
+extern LIBEXPORT StructRNA RNA_TextureNodeInvert;
+extern LIBEXPORT StructRNA RNA_TextureNodeMath;
+extern LIBEXPORT StructRNA RNA_TextureNodeMixRGB;
+extern LIBEXPORT StructRNA RNA_TextureNodeOutput;
+extern LIBEXPORT StructRNA RNA_TextureNodeRGBToBW;
+extern LIBEXPORT StructRNA RNA_TextureNodeRotate;
+extern LIBEXPORT StructRNA RNA_TextureNodeScale;
+extern LIBEXPORT StructRNA RNA_TextureNodeTexture;
+extern LIBEXPORT StructRNA RNA_TextureNodeTranslate;
+extern LIBEXPORT StructRNA RNA_TextureNodeTree;
+extern LIBEXPORT StructRNA RNA_TextureNodeValToNor;
+extern LIBEXPORT StructRNA RNA_TextureNodeValToRGB;
+extern LIBEXPORT StructRNA RNA_TextureNodeViewer;
+extern LIBEXPORT StructRNA RNA_TextureSlot;
+extern LIBEXPORT StructRNA RNA_Theme;
+extern LIBEXPORT StructRNA RNA_ThemeAudioWindow;
+extern LIBEXPORT StructRNA RNA_ThemeBoneColorSet;
+extern LIBEXPORT StructRNA RNA_ThemeConsole;
+extern LIBEXPORT StructRNA RNA_ThemeDopeSheet;
+extern LIBEXPORT StructRNA RNA_ThemeFileBrowser;
+extern LIBEXPORT StructRNA RNA_ThemeFontStyle;
+extern LIBEXPORT StructRNA RNA_ThemeGraphEditor;
+extern LIBEXPORT StructRNA RNA_ThemeImageEditor;
+extern LIBEXPORT StructRNA RNA_ThemeInfo;
+extern LIBEXPORT StructRNA RNA_ThemeLogicEditor;
+extern LIBEXPORT StructRNA RNA_ThemeNLAEditor;
+extern LIBEXPORT StructRNA RNA_ThemeNodeEditor;
+extern LIBEXPORT StructRNA RNA_ThemeOutliner;
+extern LIBEXPORT StructRNA RNA_ThemeProperties;
+extern LIBEXPORT StructRNA RNA_ThemeSequenceEditor;
+extern LIBEXPORT StructRNA RNA_ThemeStyle;
+extern LIBEXPORT StructRNA RNA_ThemeTextEditor;
+extern LIBEXPORT StructRNA RNA_ThemeTimeline;
+extern LIBEXPORT StructRNA RNA_ThemeUserInterface;
+extern LIBEXPORT StructRNA RNA_ThemeUserPreferences;
+extern LIBEXPORT StructRNA RNA_ThemeView3D;
+extern LIBEXPORT StructRNA RNA_ThemeWidgetColors;
+extern LIBEXPORT StructRNA RNA_ThemeWidgetStateColors;
+extern LIBEXPORT StructRNA RNA_TimelineMarker;
+extern LIBEXPORT StructRNA RNA_Timer;
+extern LIBEXPORT StructRNA RNA_ToolSettings;
+extern LIBEXPORT StructRNA RNA_TouchSensor;
+extern LIBEXPORT StructRNA RNA_TrackToConstraint;
+extern LIBEXPORT StructRNA RNA_TransformConstraint;
+extern LIBEXPORT StructRNA RNA_TransformSequence;
+extern LIBEXPORT StructRNA RNA_UILayout;
+extern LIBEXPORT StructRNA RNA_UIListItem;
+extern LIBEXPORT StructRNA RNA_UVProjectModifier;
+extern LIBEXPORT StructRNA RNA_UVProjector;
+extern LIBEXPORT StructRNA RNA_UnitSettings;
+extern LIBEXPORT StructRNA RNA_UnknownType;
+extern LIBEXPORT StructRNA RNA_UserPreferences;
+extern LIBEXPORT StructRNA RNA_UserPreferencesEdit;
+extern LIBEXPORT StructRNA RNA_UserPreferencesFilePaths;
+extern LIBEXPORT StructRNA RNA_UserPreferencesSystem;
+extern LIBEXPORT StructRNA RNA_UserPreferencesView;
+extern LIBEXPORT StructRNA RNA_UserSolidLight;
+extern LIBEXPORT StructRNA RNA_ValueNodeSocket;
+extern LIBEXPORT StructRNA RNA_VectorFont;
+extern LIBEXPORT StructRNA RNA_VectorNodeSocket;
+extern LIBEXPORT StructRNA RNA_VertexGroup;
+extern LIBEXPORT StructRNA RNA_VertexGroupElement;
+extern LIBEXPORT StructRNA RNA_VertexPaint;
+extern LIBEXPORT StructRNA RNA_VoronoiTexture;
+extern LIBEXPORT StructRNA RNA_VoxelData;
+extern LIBEXPORT StructRNA RNA_VoxelDataTexture;
++extern LIBEXPORT StructRNA RNA_WarpModifier;
+extern LIBEXPORT StructRNA RNA_WaveModifier;
+extern LIBEXPORT StructRNA RNA_Window;
+extern LIBEXPORT StructRNA RNA_WindowManager;
+extern LIBEXPORT StructRNA RNA_WipeSequence;
+extern LIBEXPORT StructRNA RNA_WoodTexture;
+extern LIBEXPORT StructRNA RNA_World;
+extern LIBEXPORT StructRNA RNA_WorldAmbientOcclusion;
+extern LIBEXPORT StructRNA RNA_WorldMistSettings;
+extern LIBEXPORT StructRNA RNA_WorldStarsSettings;
+extern LIBEXPORT StructRNA RNA_WorldTextureSlot;
+extern LIBEXPORT StructRNA RNA_XnorController;
+extern LIBEXPORT StructRNA RNA_XorController;
/* Pointer
*
/* Structs */
-const char *RNA_struct_identifier(StructRNA *type);
-const char *RNA_struct_ui_name(StructRNA *type);
-const char *RNA_struct_ui_description(StructRNA *type);
-int RNA_struct_ui_icon(StructRNA *type);
+LIBEXPORT const char *RNA_struct_identifier(StructRNA *type);
+LIBEXPORT const char *RNA_struct_ui_name(StructRNA *type);
+LIBEXPORT const char *RNA_struct_ui_description(StructRNA *type);
+LIBEXPORT int RNA_struct_ui_icon(StructRNA *type);
-PropertyRNA *RNA_struct_name_property(StructRNA *type);
-PropertyRNA *RNA_struct_iterator_property(StructRNA *type);
-StructRNA *RNA_struct_base(StructRNA *type);
+LIBEXPORT PropertyRNA *RNA_struct_name_property(StructRNA *type);
+LIBEXPORT PropertyRNA *RNA_struct_iterator_property(StructRNA *type);
+LIBEXPORT StructRNA *RNA_struct_base(StructRNA *type);
-int RNA_struct_is_ID(StructRNA *type);
-int RNA_struct_is_a(StructRNA *type, StructRNA *srna);
+LIBEXPORT int RNA_struct_is_ID(StructRNA *type);
+LIBEXPORT int RNA_struct_is_a(StructRNA *type, StructRNA *srna);
-StructRegisterFunc RNA_struct_register(StructRNA *type);
-StructUnregisterFunc RNA_struct_unregister(StructRNA *type);
+LIBEXPORT StructRegisterFunc RNA_struct_register(StructRNA *type);
+LIBEXPORT StructUnregisterFunc RNA_struct_unregister(StructRNA *type);
+LIBEXPORT void **RNA_struct_instance(PointerRNA *ptr);
-void *RNA_struct_py_type_get(StructRNA *srna);
-void RNA_struct_py_type_set(StructRNA *srna, void *py_type);
+LIBEXPORT void *RNA_struct_py_type_get(StructRNA *srna);
+LIBEXPORT void RNA_struct_py_type_set(StructRNA *srna, void *py_type);
-void *RNA_struct_blender_type_get(StructRNA *srna);
-void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type);
+LIBEXPORT void *RNA_struct_blender_type_get(StructRNA *srna);
+LIBEXPORT void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type);
-struct IDProperty *RNA_struct_idprops(PointerRNA *ptr, int create);
-int RNA_struct_idprops_check(StructRNA *srna);
-int RNA_struct_idprops_register_check(StructRNA *type);
+LIBEXPORT struct IDProperty *RNA_struct_idprops(PointerRNA *ptr, int create);
+LIBEXPORT int RNA_struct_idprops_check(StructRNA *srna);
+LIBEXPORT int RNA_struct_idprops_register_check(StructRNA *type);
-
+ int RNA_struct_idprops_unset(PointerRNA *ptr, const char *identifier);
-PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier);
-int RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test);
+LIBEXPORT PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier);
+LIBEXPORT int RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test);
/* lower level functions for access to type properties */
-const struct ListBase *RNA_struct_type_properties(StructRNA *srna);
-PropertyRNA *RNA_struct_type_find_property(StructRNA *srna, const char *identifier);
+LIBEXPORT const struct ListBase *RNA_struct_type_properties(StructRNA *srna);
+LIBEXPORT PropertyRNA *RNA_struct_type_find_property(StructRNA *srna, const char *identifier);
-FunctionRNA *RNA_struct_find_function(PointerRNA *ptr, const char *identifier);
-const struct ListBase *RNA_struct_type_functions(StructRNA *srna);
+LIBEXPORT FunctionRNA *RNA_struct_find_function(PointerRNA *ptr, const char *identifier);
+LIBEXPORT const struct ListBase *RNA_struct_type_functions(StructRNA *srna);
-char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen);
+LIBEXPORT char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen);
/* Properties
*
--- /dev/null
-* $Id$
+ /*
++* $Id: MOD_warp.c 36420 2011-05-01 23:16:16Z gsrb3d $
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Campbell Barton
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ *
+ */
+
+ #include <string.h>
+
+ #include "MEM_guardedalloc.h"
+
+ #include "BLI_math.h"
+ #include "BLI_utildefines.h"
+
+ #include "BKE_cdderivedmesh.h"
+ #include "BKE_modifier.h"
+ #include "BKE_deform.h"
+ #include "BKE_texture.h"
+ #include "BKE_colortools.h"
+
+ #include "DNA_object_types.h"
+ #include "DNA_meshdata_types.h"
+
+ #include "depsgraph_private.h"
+
+ #include "RE_shader_ext.h"
+
+ #include "MOD_util.h"
+
+
+ static void initData(ModifierData *md)
+ {
+ WarpModifierData *wmd = (WarpModifierData*) md;
+
+ wmd->curfalloff = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
+ wmd->texture = NULL;
+ wmd->strength = 1.0f;
+ wmd->falloff_radius = 1.0f;
+ wmd->falloff_type = eWarp_Falloff_Smooth;
+ wmd->flag = 0;
+ }
+
+ static void copyData(ModifierData *md, ModifierData *target)
+ {
+ WarpModifierData *wmd = (WarpModifierData*) md;
+ WarpModifierData *twmd = (WarpModifierData*) target;
+
+ twmd->object_from = wmd->object_from;
+ twmd->object_to = wmd->object_to;
+
+ twmd->strength = wmd->strength;
+ twmd->falloff_radius = wmd->falloff_radius;
+ twmd->falloff_type = wmd->falloff_type;
+ strncpy(twmd->defgrp_name, wmd->defgrp_name, sizeof(twmd->defgrp_name));
+ twmd->curfalloff = curvemapping_copy(wmd->curfalloff);
+
+ /* map info */
+ twmd->texture = wmd->texture;
+ twmd->map_object = wmd->map_object;
+ strncpy(twmd->uvlayer_name, wmd->uvlayer_name, sizeof(twmd->uvlayer_name));
+ twmd->texmapping= wmd->texmapping;
+ }
+
+ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
+ {
+ WarpModifierData *wmd = (WarpModifierData *)md;
+ CustomDataMask dataMask = 0;
+
+ /* ask for vertexgroups if we need them */
+ if(wmd->defgrp_name[0]) dataMask |= (1 << CD_MDEFORMVERT);
+ dataMask |= (1 << CD_MDEFORMVERT);
+
+ /* ask for UV coordinates if we need them */
+ if(wmd->texmapping == MOD_DISP_MAP_UV) dataMask |= (1 << CD_MTFACE);
+
+ return dataMask;
+ }
+
+ static int dependsOnTime(ModifierData *md)
+ {
+ WarpModifierData *wmd = (WarpModifierData *)md;
+
+ if(wmd->texture) {
+ return BKE_texture_dependsOnTime(wmd->texture);
+ }
+ else {
+ return 0;
+ }
+ }
+
+ static void freeData(ModifierData *md)
+ {
+ WarpModifierData *wmd = (WarpModifierData *) md;
+ curvemapping_free(wmd->curfalloff);
+ }
+
+
+ static int isDisabled(ModifierData *md, int UNUSED(userRenderParams))
+ {
+ WarpModifierData *wmd = (WarpModifierData*) md;
+
+ return !(wmd->object_from && wmd->object_to);
+ }
+
+ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
+ {
+ WarpModifierData *wmd = (WarpModifierData*) md;
+
+ walk(userData, ob, &wmd->object_from);
+ walk(userData, ob, &wmd->object_to);
+ walk(userData, ob, &wmd->map_object);
+ }
+
+ static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
+ {
+ WarpModifierData *wmd = (WarpModifierData*) md;
+
+ walk(userData, ob, (ID **)&wmd->texture);
+
+ walk(userData, ob, (ID **)&wmd->object_from);
+ walk(userData, ob, (ID **)&wmd->object_to);
+ walk(userData, ob, (ID **)&wmd->map_object);
+ }
+
+ static void updateDepgraph(ModifierData *md, DagForest *forest, struct Scene *UNUSED(scene),
+ Object *UNUSED(ob), DagNode *obNode)
+ {
+ WarpModifierData *wmd = (WarpModifierData*) md;
+
+ if(wmd->object_from && wmd->object_to) {
+ DagNode *fromNode = dag_get_node(forest, wmd->object_from);
+ DagNode *toNode = dag_get_node(forest, wmd->object_to);
+
+ dag_add_relation(forest, fromNode, obNode, DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "Warp Modifier1");
+ dag_add_relation(forest, toNode, obNode, DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "Warp Modifier2");
+ }
+
+ if((wmd->texmapping == MOD_DISP_MAP_OBJECT) && wmd->map_object) {
+ DagNode *curNode = dag_get_node(forest, wmd->map_object);
+ dag_add_relation(forest, curNode, obNode, DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "Warp Modifier3");
+ }
+ }
+
+ static void warpModifier_do(WarpModifierData *wmd, Object *ob,
+ DerivedMesh *dm, float (*vertexCos)[3], int numVerts)
+ {
+ float obinv[4][4];
+ float mat_from[4][4];
+ float mat_from_inv[4][4];
+ float mat_to[4][4];
+ float mat_unit[4][4];
+ float mat_final[4][4];
+
+ float tmat[4][4];
+
+ float strength = wmd->strength;
+ float fac = 1.0f, weight;
+ int i;
+ int defgrp_index = defgroup_name_index(ob, wmd->defgrp_name);
+ MDeformVert *dv= NULL;
+
+ float (*tex_co)[3]= NULL;
+
+ if(!(wmd->object_from && wmd->object_to))
+ return;
+
+ if(wmd->curfalloff==NULL) /* should never happen, but bad lib linking could cause it */
+ wmd->curfalloff = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
+
+ invert_m4_m4(obinv, ob->obmat);
+
+ mul_m4_m4m4(mat_from, wmd->object_from->obmat, obinv);
+ mul_m4_m4m4(mat_to, wmd->object_to->obmat, obinv);
+
+ invert_m4_m4(tmat, mat_from); // swap?
+ mul_m4_m4m4(mat_final, mat_to, tmat);
+
+ invert_m4_m4(mat_from_inv, mat_from);
+
+ unit_m4(mat_unit);
+
+ if(strength < 0.0f) {
+ float loc[3];
+ strength = -strength;
+
+ /* inverted location is not useful, just use the negative */
+ copy_v3_v3(loc, mat_final[3]);
+ invert_m4(mat_final);
+ negate_v3_v3(mat_final[3], loc);
+
+ }
+ weight= strength;
+
+ if(wmd->texture) {
+ tex_co = MEM_mallocN(sizeof(*tex_co) * numVerts, "warpModifier_do tex_co");
+ get_texture_coords((MappingInfoModifierData *)wmd, ob, dm, vertexCos, tex_co, numVerts);
+ }
+
+ for(i = 0; i < numVerts; i++) {
+ float *co = vertexCos[i];
+
+ if(wmd->falloff_type==eWarp_Falloff_None ||
+ ((fac=len_v3v3(co, mat_from[3])) < wmd->falloff_radius && (fac=(wmd->falloff_radius-fac)/wmd->falloff_radius)) ) {
+
+ /* skip if no vert group found */
+ if(defgrp_index >= 0) {
+ dv = dm->getVertData(dm, i, CD_MDEFORMVERT);
+
+ if(dv) {
+ weight = defvert_find_weight(dv, defgrp_index) * wmd->strength;
+ if(weight <= 0.0f)
+ continue;
+ }
+ }
+
+
+ /* closely match PROP_SMOOTH and similar */
+ switch(wmd->falloff_type) {
+ case eWarp_Falloff_None:
+ fac = 1.0f;
+ break;
+ case eWarp_Falloff_Curve:
+ fac = curvemapping_evaluateF(wmd->curfalloff, 0, fac);
+ break;
+ case eWarp_Falloff_Sharp:
+ fac = fac*fac;
+ break;
+ case eWarp_Falloff_Smooth:
+ fac = 3.0f*fac*fac - 2.0f*fac*fac*fac;
+ break;
+ case eWarp_Falloff_Root:
+ fac = (float)sqrt(fac);
+ break;
+ case eWarp_Falloff_Linear:
+ /* pass */
+ break;
+ case eWarp_Falloff_Const:
+ fac = 1.0f;
+ break;
+ case eWarp_Falloff_Sphere:
+ fac = (float)sqrt(2*fac - fac * fac);
+ break;
+ }
+
+ fac *= weight;
+
+ if(tex_co) {
+ TexResult texres;
+ texres.nor = NULL;
+ get_texture_value(wmd->texture, tex_co[i], &texres);
+ fac *= texres.tin;
+ }
+
+ /* into the 'from' objects space */
+ mul_m4_v3(mat_from_inv, co);
+
+ if(fac >= 1.0f) {
+ mul_m4_v3(mat_final, co);
+ }
+ else if(fac > 0.0f) {
+ if(wmd->flag & MOD_WARP_VOLUME_PRESERVE) {
+ /* interpolate the matrix for nicer locations */
+ blend_m4_m4m4(tmat, mat_unit, mat_final, fac);
+ mul_m4_v3(tmat, co);
+ }
+ else {
+ float tvec[3];
+ mul_v3_m4v3(tvec, mat_final, co);
+ interp_v3_v3v3(co, co, tvec, fac);
+ }
+ }
+
+ /* out of the 'from' objects space */
+ mul_m4_v3(mat_from, co);
+ }
+ }
+
+ if(tex_co)
+ MEM_freeN(tex_co);
+
+ }
+
+ static int warp_needs_dm(WarpModifierData *wmd)
+ {
+ return wmd->texture || wmd->defgrp_name[0];
+ }
+
+ static void deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData,
+ float (*vertexCos)[3], int numVerts, int UNUSED(useRenderParams), int UNUSED(isFinalCalc))
+ {
+ DerivedMesh *dm= NULL;
+ int use_dm= warp_needs_dm((WarpModifierData *)md);
+
+ if(use_dm) {
+ dm= get_cddm(ob, NULL, derivedData, vertexCos);
+ }
+
+ warpModifier_do((WarpModifierData *)md, ob, dm, vertexCos, numVerts);
+
+ if(use_dm) {
+ if(dm != derivedData) dm->release(dm);
+ }
+ }
+
+ static void deformVertsEM(ModifierData *md, Object *ob, struct EditMesh *editData,
+ DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+ {
+ DerivedMesh *dm = derivedData;
+ int use_dm= warp_needs_dm((WarpModifierData *)md);
+
+ if(use_dm) {
+ if(!derivedData)
+ dm = CDDM_from_editmesh(editData, ob->data);
+ }
+
+ deformVerts(md, ob, dm, vertexCos, numVerts, 0, 0);
+
+ if(use_dm) {
+ if(!derivedData) dm->release(dm);
+ }
+ }
+
+
+ ModifierTypeInfo modifierType_Warp = {
+ /* name */ "Warp",
+ /* structName */ "WarpModifierData",
+ /* structSize */ sizeof(WarpModifierData),
+ /* type */ eModifierTypeType_OnlyDeform,
+ /* flags */ eModifierTypeFlag_AcceptsCVs
+ | eModifierTypeFlag_SupportsEditmode,
+ /* copyData */ copyData,
+ /* deformVerts */ deformVerts,
+ /* deformMatrices */ NULL,
+ /* deformVertsEM */ deformVertsEM,
+ /* deformMatricesEM */ NULL,
+ /* applyModifier */ 0,
+ /* applyModifierEM */ 0,
+ /* initData */ initData,
+ /* requiredDataMask */ requiredDataMask,
+ /* freeData */ freeData,
+ /* isDisabled */ isDisabled,
+ /* updateDepgraph */ updateDepgraph,
+ /* dependsOnTime */ dependsOnTime,
+ /* dependsOnNormals */ NULL,
+ /* foreachObjectLink */ foreachObjectLink,
+ /* foreachIDLink */ foreachIDLink,
+ };