Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'release/scripts/unweld.py')
-rw-r--r--release/scripts/unweld.py247
1 files changed, 0 insertions, 247 deletions
diff --git a/release/scripts/unweld.py b/release/scripts/unweld.py
deleted file mode 100644
index 3385e66e2d8..00000000000
--- a/release/scripts/unweld.py
+++ /dev/null
@@ -1,247 +0,0 @@
-#!BPY
-""" Registration info for Blender menus: <- these words are ignored
-Name: 'Unweld vertex/ices'
-Blender: 243
-Group: 'Mesh'
-Tip: 'Unweld all faces from a (or several) selected and common vertex. Made vertex bevelling'
-"""
-
-__author__ = "Jean-Michel Soler (jms)"
-__url__ = ("blender", "blenderartists.org",
-"Script's homepage, http://jmsoler.free.fr/didacticiel/blender/tutor/cpl_faces2vertex.htm#exemple",
-"Communicate problems and errors, http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender")
-__version__ = "0.4.6 "
-__bpydoc__ = """\
-This script unwelds faces from one or several selected vertex/vertices.
-
-Usage:
-
-In edit mode Select at least one vertex, then run this script.
-
-The options are:
-
-- unbind points;<br>
- a new point is added to each face connected to the selected one.
-
-- with noise;<br>
- the new points location is varied with noise
-
-- middle face;<br>
- the new point is located at the center of face to which it is connected
-"""
-
-# ------------------------------------------
-# Un-Weld script 0.4.6
-# name="UnWeld"
-# Tip= 'Unweld all faces from a selected and common vertex.'
-# date='06/08/2006'
-# split all faces from one selected vertex
-# (c) 2004 J-M Soler released under GPL licence
-#----------------------------------------------
-# Official Page :
-# website = 'http://jmsoler.free.fr/didacticiel/blender/tutor/cpl_faces2vertex.htm#exemple'
-# Communicate problems and errors on:
-# community = 'http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender'
-#----------------------------------------------
-# Blender Artistic License
-# http://download.blender.org/documentation/html/x21254.html
-#---------------------------------------------
-# Changelog
-#----------------------------------------------
-# 25/05 :
-# -- separate choice, normal (same place) or spread at random, middle of the face
-# -- works on several vertices too
-# -- Quite vertex bevelling on <<lone>> vertex : create hole in faces around this
-# vertex
-# 03/06 :
-# -- a sort of "bevelled vertex" extrusion controled by horizontal mouse
-# displacement. just a beta test to the mouse control.
-# 08/08 :
-# -- minor correction to completely disconnect face.
-#----------------------------------------------
-# Page officielle :
-# http://jmsoler.free.fr/didacticiel/blender/tutor/cpl_faces2vertex.htm#exemple
-# Commsoler les problemes et erreurs sur:
-# http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender
-# Blender Artistic License
-# http://download.blender.org/documentation/html/x21254.html
-#---------------------------------------------
-# Changelog
-#----------------------------------------------
-# 25/05 :
-# -- separation du choix, normal ou dispersion hasardeuse,
-# milieu de face
-# -- sommets multiples /
-# -- presque unvertex bevelling sur un vertex solitaire : cree
-# un trou dans la facette autour du sommet
-# 03/06 :
-# -- une sorte de vertex extruder en biseau, controle par
-# movement horizontal de la souris
-# 08/08 :
-# -- correction mineure pour s'assurer que les faces soient
-# entierment deconnectees
-#----------------------------------------------
-
-import Blender
-from Blender import Noise
-from Blender.Draw import *
-from Blender.BGL import *
-import BPyMessages
-# $Id$
-
-NR=Noise.random
-DECAL=0.03
-t=[0.0,0.0,0.0]
-pl=[]
-orig=[]
-
-DEBUG = 0
-SUBSURF=0
-DIM=Create(1.0)
-
-def Buffer(v,t):
- if DEBUG : print dir(v)
- for n in range(len(v)): t[n]=t[n]+v[n]
- return t
-
-def freeBuffer(t):
- for n in range(3): t[n]=0.0
- return t
-
-def ModalBuffer(t,f):
- for n in range(3): t[n]/=len(f)
- return t
-
-def applyModalValue(v,t):
- for n in range(len(v)): v[n]=t[n]
- return v
-
-def docF(f0,f):
-
- if f0 and f:
- f0.mat=f.mat
- if f.uv :
- f0.uv=f.uv
- if f.col :
- f0.col=f.col
- if f.image :
- f0.image=f.image
- f0.smooth=f.smooth
- f0.mode=f.mode
- f0.flag=f.flag
- return f0
-
-
-def connectedFacesList(me,thegood):
- listf2v={}
- #tri des faces connectees aux sommets selectionnes
- for f in me.faces:
- for v in f.v:
- if v==thegood:
- if v.index not in listf2v: # .keys()
- listf2v[me.verts.index(v)]=[f]
- elif f not in listf2v[me.verts.index(v)]:
- listf2v[me.verts.index(v)].append(f)
- return listf2v
-
-
-def createAdditionalFace(me,thegood,listf2v):
- global t
- for f in listf2v[thegood.index]:
- f0=Blender.NMesh.Face()
- if result==3: t=freeBuffer(t)
- for v in f.v:
- if result==3: t=Buffer(v,t)
- if v!=thegood:
- f0.append(v)
- else:
- if result==2:
- nv=Blender.NMesh.Vert(thegood.co[0]+NR()*DECAL,
- thegood.co[1]+NR()*DECAL,
- thegood.co[2]+NR()*DECAL)
- else:
- nv=Blender.NMesh.Vert(thegood.co[0],
- thegood.co[1],
- thegood.co[2])
- nv.sel=1
- me.verts.append(nv)
- f0.append(me.verts[me.verts.index(nv)])
- localise=me.verts.index(nv)
- docF(f0,f)
- if result==3:
- t=ModalBuffer(t,f0.v)
- me.verts[localise]=applyModalValue(me.verts[localise],t)
- me.faces.append(f0)
- del me.verts[me.verts.index(thegood)]
- for f in listf2v[thegood.index]:
- del me.faces[me.faces.index(f)]
- return me
-
-def collecte_edge(listf2v,me,thegood):
- back=0
- edgelist = []
- vertlist = []
- if DEBUG : print listf2v
- for face in listf2v[thegood.index]:
- if len(face.v) == 4:
- vlist = [0,1,2,3,0]
- elif len(face.v) == 3:
- vlist = [0,1,2,0]
- else:
- vlist = [0,1]
- for i in xrange(len(vlist)-1):
- vert0 = min(face.v[vlist[i]].index,face.v[vlist[i+1]].index)
- vert1 = max(face.v[vlist[i]].index,face.v[vlist[i+1]].index)
- edgeinlist = 0
- if vert0==thegood.index or vert1==thegood.index:
- for edge in edgelist:
- if ((edge[0]==vert0) and (edge[1]==vert1)):
- edgeinlist = 1
- edge[2] = edge[2]+1
- edge.append(me.faces.index(face))
- break
- if edgeinlist==0:
- edge = [vert0,vert1,1,me.faces.index(face)]
- edgelist.append(edge)
-
- for i, edge in enumerate(edgelist):
- #print edge
- if len(edge)==4:
- del edgelist[i]
-
- edges=len(edgelist)
- if DEBUG : print 'number of edges : ',edges," Edge list : " ,edgelist
- return edges, edgelist
-
-import bpy
-OBJECT= bpy.data.scenes.active.objects.active
-
-if OBJECT and OBJECT.type=='Mesh':
- if OBJECT.getData(mesh=1).multires:
- BPyMessages.Error_NoMeshMultiresEdit()
- elif not BPyMessages.Warning_MeshDistroyLayers(OBJECT.getData(mesh=1)):
- pass
- else:
- EDITMODE=Blender.Window.EditMode()
- Blender.Window.EditMode(0)
- name = "Unweld %t|Unbind Points %x1|With Noise %x2|Middle Face %x3"
- result = Blender.Draw.PupMenu(name)
- if result:
- me=OBJECT.getData()
-
- for v in me.verts:
- if v.sel:
- thegood=v
- if DEBUG : print thegood
- listf2v=connectedFacesList(me,thegood)
- if listf2v:
- me=createAdditionalFace(me,thegood,listf2v)
- #OBJECT.link(me)
- me.update()
-
- OBJECT.makeDisplayList()
-
- Blender.Window.EditMode(EDITMODE)
-
-else:
- BPyMessages.Error_NoMeshActive()