Commit: 0b931cb3b736ae2f6f3b45eb0146adae17ddb3eb
Author: Bastien Montagne
Date:   Tue Aug 26 12:24:53 2014 +0200
Branches: testbuild
https://developer.blender.org/rB0b931cb3b736ae2f6f3b45eb0146adae17ddb3eb

Revert "Merge branch 'hair_system_squash' into testbuild"

This reverts commit 381b87312254b8512a594a38ed9d83401bef4d7f, reversing
changes made to 3af6c89e6e1803b4c9c8ab73497933d89dc7bd77.

===================================================================

M       build_files/cmake/macros.cmake
M       intern/cycles/blender/addon/ui.py
M       intern/cycles/blender/blender_curves.cpp
M       intern/cycles/blender/blender_sync.h
M       intern/rigidbody/CMakeLists.txt
M       intern/rigidbody/RBI_api.h
M       intern/rigidbody/rb_bullet_api.cpp
D       intern/rigidbody/rb_internal_types.h
M       release/scripts/startup/bl_ui/__init__.py
M       release/scripts/startup/bl_ui/properties_data_modifier.py
M       release/scripts/startup/bl_ui/properties_particle.py
M       release/scripts/startup/bl_ui/properties_physics_common.py
D       release/scripts/startup/bl_ui/properties_physics_hair.py
M       source/blender/CMakeLists.txt
M       source/blender/SConscript
D       source/blender/blenkernel/BKE_hair.h
D       source/blender/blenkernel/BKE_mesh_sample.h
M       source/blender/blenkernel/BKE_object.h
M       source/blender/blenkernel/BKE_particle.h
M       source/blender/blenkernel/BKE_rigidbody.h
M       source/blender/blenkernel/CMakeLists.txt
M       source/blender/blenkernel/SConscript
D       source/blender/blenkernel/intern/hair.c
D       source/blender/blenkernel/intern/mesh_sample.c
M       source/blender/blenkernel/intern/object.c
M       source/blender/blenkernel/intern/particle.c
M       source/blender/blenkernel/intern/particle_system.c
M       source/blender/blenkernel/intern/pointcache.c
M       source/blender/blenkernel/intern/rigidbody.c
D       source/blender/blenkernel/intern/rigidbody_objects.c
M       source/blender/blenkernel/intern/scene.c
M       source/blender/blenloader/intern/readfile.c
M       source/blender/blenloader/intern/writefile.c
M       source/blender/editors/object/CMakeLists.txt
M       source/blender/editors/object/SConscript
M       source/blender/editors/object/object_modifier.c
M       source/blender/editors/physics/CMakeLists.txt
M       source/blender/editors/physics/SConscript
D       source/blender/editors/physics/hair_ops.c
M       source/blender/editors/physics/physics_intern.h
M       source/blender/editors/physics/physics_ops.c
M       source/blender/editors/space_buttons/buttons_context.c
M       source/blender/editors/space_view3d/CMakeLists.txt
M       source/blender/editors/space_view3d/SConscript
D       source/blender/editors/space_view3d/drawhair.c
M       source/blender/editors/space_view3d/drawobject.c
M       source/blender/editors/space_view3d/view3d_intern.h
M       source/blender/editors/transform/transform_conversions.c
D       source/blender/hair/CMakeLists.txt
D       source/blender/hair/HAIR_capi.cpp
D       source/blender/hair/HAIR_capi.h
D       source/blender/hair/HAIR_debug_types.h
D       source/blender/hair/SConscript
D       source/blender/hair/intern/HAIR_collision.cpp
D       source/blender/hair/intern/HAIR_curve.cpp
D       source/blender/hair/intern/HAIR_curve.h
D       source/blender/hair/intern/HAIR_debug.cpp
D       source/blender/hair/intern/HAIR_debug.h
D       source/blender/hair/intern/HAIR_math.cpp
D       source/blender/hair/intern/HAIR_math.h
D       source/blender/hair/intern/HAIR_memalloc.h
D       source/blender/hair/intern/HAIR_scene.cpp
D       source/blender/hair/intern/HAIR_scene.h
D       source/blender/hair/intern/HAIR_smoothing.cpp
D       source/blender/hair/intern/HAIR_smoothing.h
D       source/blender/hair/intern/HAIR_solver.cpp
D       source/blender/hair/intern/HAIR_solver.h
D       source/blender/hair/intern/HAIR_types.cpp
D       source/blender/hair/intern/HAIR_types.h
D       source/blender/hair/intern/HAIR_util_hash.h
D       source/blender/makesdna/DNA_hair_types.h
M       source/blender/makesdna/DNA_meshdata_types.h
M       source/blender/makesdna/DNA_modifier_types.h
M       source/blender/makesdna/DNA_particle_types.h
M       source/blender/makesdna/DNA_rigidbody_types.h
M       source/blender/makesdna/intern/makesdna.c
M       source/blender/makesrna/RNA_access.h
M       source/blender/makesrna/SConscript
M       source/blender/makesrna/intern/CMakeLists.txt
M       source/blender/makesrna/intern/SConscript
M       source/blender/makesrna/intern/makesrna.c
D       source/blender/makesrna/intern/rna_hair.c
M       source/blender/makesrna/intern/rna_internal.h
D       source/blender/makesrna/intern/rna_mesh_sample.c
M       source/blender/makesrna/intern/rna_modifier.c
M       source/blender/makesrna/intern/rna_particle.c
M       source/blender/makesrna/intern/rna_rigidbody.c
M       source/blender/modifiers/CMakeLists.txt
M       source/blender/modifiers/MOD_modifiertypes.h
M       source/blender/modifiers/SConscript
D       source/blender/modifiers/intern/MOD_hair.c
M       source/blender/modifiers/intern/MOD_util.c

===================================================================

diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 788a359..adbba81 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -496,7 +496,6 @@ macro(SETUP_BLENDER_SORTED_LIBS)
                bf_freestyle
                bf_ikplugin
                bf_modifiers
-               bf_hair
                bf_bmesh
                bf_blenkernel
                bf_nodes
diff --git a/intern/cycles/blender/addon/ui.py 
b/intern/cycles/blender/addon/ui.py
index 6a1c2a5..057b592 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -1195,10 +1195,15 @@ class CyclesParticle_PT_textures(CyclesButtonsPanel, 
Panel):
             layout.template_ID(slot, "texture", new="texture.new")
 
 
-# generic curve rendering panel base class,
-# used for both particles and hair systems
-class CyclesCurveRenderingPanel(CyclesButtonsPanel):
+class CyclesRender_PT_CurveRendering(CyclesButtonsPanel, Panel):
     bl_label = "Cycles Hair Rendering"
+    bl_context = "particle"
+
+    @classmethod
+    def poll(cls, context):
+        scene = context.scene
+        psys = context.particle_system
+        return CyclesButtonsPanel.poll(context) and psys and 
psys.settings.type == 'HAIR'
 
     def draw_header(self, context):
         ccscene = context.scene.cycles_curves
@@ -1228,24 +1233,6 @@ class CyclesCurveRenderingPanel(CyclesButtonsPanel):
         row.prop(ccscene, "maximum_width", text="Max Ext.")
 
 
-class CyclesRender_PT_ParticleCurves(CyclesCurveRenderingPanel, Panel):
-    bl_context = "particle"
-
-    @classmethod
-    def poll(cls, context):
-        scene = context.scene
-        psys = context.particle_system
-        return CyclesButtonsPanel.poll(context) and psys and 
psys.settings.type == 'HAIR'
-
-
-class CyclesRender_PT_HairCurves(CyclesCurveRenderingPanel, Panel):
-    bl_context = "physics"
-
-    @classmethod
-    def poll(cls, context):
-        return CyclesButtonsPanel.poll(context) and context.hair
-
-
 class CyclesRender_PT_bake(CyclesButtonsPanel, Panel):
     bl_label = "Bake"
     bl_context = "render"
diff --git a/intern/cycles/blender/blender_curves.cpp 
b/intern/cycles/blender/blender_curves.cpp
index d4597dd..7b1a8ec 100644
--- a/intern/cycles/blender/blender_curves.cpp
+++ b/intern/cycles/blender/blender_curves.cpp
@@ -38,10 +38,11 @@ void InterpolateKeySegments(int seg, int segno, int key, 
int curve, float3 *keyl
 bool ObtainCacheParticleUV(Mesh *mesh, BL::Mesh *b_mesh, BL::Object *b_ob, 
ParticleCurveData *CData, bool background, int uv_num);
 bool ObtainCacheParticleVcol(Mesh *mesh, BL::Mesh *b_mesh, BL::Object *b_ob, 
ParticleCurveData *CData, bool background, int vcol_num);
 bool ObtainCacheParticleData(Mesh *mesh, BL::Mesh *b_mesh, BL::Object *b_ob, 
ParticleCurveData *CData, bool background);
-void ExportParticleCurveTrianglePlanes(Mesh *mesh, ParticleCurveData *CData, 
float3 RotCam);
-void ExportParticleCurveTriangleGeometry(Mesh *mesh, ParticleCurveData *CData, 
int resolution);
-void ExportParticleCurveTriangleUV(Mesh *mesh, ParticleCurveData *CData, int 
vert_offset, int resol, float3 *uvdata);
-void ExportParticleCurveTriangleVcol(Mesh *mesh, ParticleCurveData *CData, int 
vert_offset, int resol, uchar4 *cdata);
+void ExportCurveSegments(Scene *scene, Mesh *mesh, ParticleCurveData *CData);
+void ExportCurveTrianglePlanes(Mesh *mesh, ParticleCurveData *CData, float3 
RotCam);
+void ExportCurveTriangleGeometry(Mesh *mesh, ParticleCurveData *CData, int 
resolution);
+void ExportCurveTriangleUV(Mesh *mesh, ParticleCurveData *CData, int 
vert_offset, int resol, float3 *uvdata);
+void ExportCurveTriangleVcol(Mesh *mesh, ParticleCurveData *CData, int 
vert_offset, int resol, uchar4 *cdata);
 
 ParticleCurveData::ParticleCurveData()
 {
@@ -327,7 +328,7 @@ static void set_resolution(Mesh *mesh, BL::Mesh *b_mesh, 
BL::Object *b_ob, BL::S
        }
 }
 
-void ExportParticleCurveTrianglePlanes(Mesh *mesh, ParticleCurveData *CData, 
float3 RotCam)
+void ExportCurveTrianglePlanes(Mesh *mesh, ParticleCurveData *CData, float3 
RotCam)
 {
        int vertexno = mesh->verts.size();
        int vertexindex = vertexno;
@@ -407,7 +408,7 @@ void ExportParticleCurveTrianglePlanes(Mesh *mesh, 
ParticleCurveData *CData, flo
        /* texture coords still needed */
 }
 
-void ExportParticleCurveTriangleGeometry(Mesh *mesh, ParticleCurveData *CData, 
int resolution)
+void ExportCurveTriangleGeometry(Mesh *mesh, ParticleCurveData *CData, int 
resolution)
 {
        int vertexno = mesh->verts.size();
        int vertexindex = vertexno;
@@ -543,7 +544,7 @@ void ExportParticleCurveTriangleGeometry(Mesh *mesh, 
ParticleCurveData *CData, i
        /* texture coords still needed */
 }
 
-static void ExportParticleCurveSegments(Scene *scene, Mesh *mesh, 
ParticleCurveData *CData)
+void ExportCurveSegments(Scene *scene, Mesh *mesh, ParticleCurveData *CData)
 {
        int num_keys = 0;
        int num_curves = 0;
@@ -611,7 +612,7 @@ static void ExportParticleCurveSegments(Scene *scene, Mesh 
*mesh, ParticleCurveD
        }
 }
 
-static void ExportParticleCurveSegmentsMotion(Scene *scene, Mesh *mesh, 
ParticleCurveData *CData, int time_index)
+static void ExportCurveSegmentsMotion(Scene *scene, Mesh *mesh, 
ParticleCurveData *CData, int time_index)
 {
        /* find attribute */
        Attribute *attr_mP = 
mesh->curve_attributes.find(ATTR_STD_MOTION_VERTEX_POSITION);
@@ -680,348 +681,7 @@ static void ExportParticleCurveSegmentsMotion(Scene 
*scene, Mesh *mesh, Particle
        }
 }
 
-static void hair_step_iter_eval(BL::HairRenderStepIterator b_step_iter, float3 
&co, float3 frame[3], float &param)
-{
-       float fco[3], fnor[3], ftan[3], fcotan[3], fhair_radius;
-       
-       param = b_step_iter.parameter();
-       
-       b_step_iter.eval(fco, &fhair_radius);
-       co = make_float3(fco[0], fco[1], fco[2]);
-       
-       b_step_iter.eval_frame(fnor, ftan, fcotan);
-       frame[0] = make_float3(fnor[0], fnor[1], fnor[2]);
-       frame[1] = make_float3(ftan[0], ftan[1], ftan[2]);
-       frame[2] = make_float3(fcotan[0], fcotan[1], fcotan[2]);
-}
-
-/* evaluate curve at each step:
- *   v_p, v, v_n:       previous/current/next location
- *   d, d_n:            current/next direction
- *   param, param_n:    current/next curve parameter
- */
-static void hair_curve_triangle_step(int step, BL::HairRenderStepIterator 
b_step_iter, float3 &v_p, float3 &v, float3 &v_n, float3 &d, float3 &d_n,
-                                     float &param, float &param_n, float3 
frame[3], float3 frame_n[3])
-{
-       if (step == 0) {
-               hair_step_iter_eval(b_step_iter, v, frame, param);
-               v_p         = v;
-               b_step_iter.next();
-               
-               hair_step_iter_eval(b_step_iter, v_n, frame_n, param_n);
-               d = d_n     = v_n - v;
-               b_step_iter.next();
-       }
-       else if (step < b_step_iter.totsteps() - 1) {
-               v_p         = v;
-               v           = v_n;
-               param       = param_n;
-               d           = d_n;
-               
-               hair_step_iter_eval(b_step_iter, v_n, frame_n, param_n);
-               d_n         = v_n - v;
-               b_step_iter.next();
-       }
-       else {
-               param       = param_n;
-               v_p         = v;
-               v           = v_n;
-               d           = d_n;
-       }
-}
-
-static void ExportHairCurveTrianglePlanes(Mesh *mesh, BL::HairSystem b_hsys, 
float3 RotCam)
-{
-       BL::HairRenderSettings b_render(b_hsys.params().render());
-       float shape = b_render.shape();
-       float root_width = b_render.root_width() * b_render.radius_scale();
-       float tip_width = b_render.tip_width() * b_render.radius_scale();
-       bool closetip = b_render.use_closetip();
-       int shader = mesh->used_shaders[clamp(b_render.material_slot()-1, 0, 
mesh->used_shaders.size()-1)];
-       
-       int vertexno = mesh->verts.size();
-       int vertexindex = vertexno;
-       int numverts = 0, numtris = 0;
-       
-       BL::HairRenderIterator b_hair_iter = b_hsys.render_iterator();
-       b_hair_iter.init();
-       
-       /* compute and reserve size of arrays */
-       int num_curves, num_keys;
-       b_hair_iter.count(&num_curves, &num_keys);
-       numverts += 2 + (num_keys - 1)*2;
-       numtris += (num_keys - 1)*2;
-       
-       mesh->verts.reserve(mesh->verts.size() + numverts);
-       mesh->triangles.reserve(mesh->triangles.size() + numtris);
-       mesh->shader.reserve(mesh->shader.size() + numtris);
-       mesh->smooth.reserve(mesh->smooth.size() + numtris);
-       
-       /* actually export */
-       for (; b_hair_iter.valid(); b_hair_iter.next()) {
-               BL::HairRenderStepIterator b_step_iter = 
b_hair_iter.step_init();
-               int totsteps = b_step_iter.totsteps();
-               if (totsteps <= 1)
-                       continue;
-               
-               float3 v_p, v, v_n, d, d_n, frame[3], frame_n[3];
-               float param, param_n;
-               
-               for (int step = 0; step < totsteps; ++step) {
-                       hair_curve_triangle_step(step, b_step_iter, v_p, v, 
v_n, d, d_n, param, param_n, frame, frame_n);
-                       
-                       float radius = shaperadius(shape, root_width, 
tip_width, param);
-                       if (closetip && step == totsteps - 1)
-                               radius = 0.0f;
-                       
-                       float3 ickey_loc = v;
-                       float3 xbasis = normalize(cross(RotCam - ickey_loc, d));
-                       float3 ickey_loc_shfl = ickey_loc - radius * xbasis;
-                       float3 ickey_loc_shfr = ickey_loc + radius * xbasis;
-                       mesh->verts.push_back(ickey_loc_shfl);
-                       mesh->verts.push_back(ickey_loc_shfr);
-                       if (step > 0) {
-                               mesh->add_triangle(vertexindex-2, vertexindex, 
vertexindex-1, shader, true);
-                               mesh->add_triangle(vertexindex+1, 
vertexindex-1, vertexindex, shader, true);
-                       }
-                       vertexindex += 2;
-               }
-       }
-       b_hair_iter.end();
-
-       mesh->reserve(mesh->verts.size(), mesh->triangles.size(), 0, 0);
-       mesh->attributes.remove(ATTR_STD_VERTEX_NORMAL);
-       mesh->attributes.remove(ATTR_STD_FACE_NORMAL);
-       mesh->add_face_normals();
-       mesh->add_vertex_normals();
-       mesh->attributes.remove(ATTR_STD_FACE_NORMAL);
-
-       /* texture coords still needed */
-}
-
-static void ExportHairCurveTriangleGeometry(Mesh *mesh, BL::HairSystem b_hsys, 
int resolution)
-{
-       BL::HairRenderSettings b_render(b_hsys.params().render());
-       float shape = b_render.shape();
-       float root_width = b_render.root_width() * b_render.radius_scale();
-       float tip_width = b_render.tip_width() * b_render.radius_scale();
-       bool closetip = b_render.use_closetip();
-       int shader = mesh->used_shaders[clamp(b_render.material_slot()-1, 0, 
mesh->used_shaders.size()-1)];
-       
-       int vertexno = mesh->verts.size();
-       int vertexindex = vertexno;
-       int numverts = 0, numtris = 0;
-       
-       BL::HairRenderIterator b_hair_iter = b_hsys.render_iterator();
-       b_hair_iter.init();
-       
-       /* compute and reserve size of arrays */
-       int num_curves, num_keys;
-       b_hair_iter.count(&num

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to