diff options
author | Willian Padovani Germano <wpgermano@gmail.com> | 2005-01-22 05:48:03 +0300 |
---|---|---|
committer | Willian Padovani Germano <wpgermano@gmail.com> | 2005-01-22 05:48:03 +0300 |
commit | 1da3b9f517103f6e04312faf08ca7c71edf7d0dd (patch) | |
tree | 62fe0e630b657710eff98a11499d1a61ef77fb5e /source/blender/python/api2_2x/doc/NMesh.py | |
parent | 5822d4601d7cf93155442ab653b54d3e3c03cae5 (diff) |
BPython:
- Stephane Soppera added long missed support for edge data in Blender.NMesh + related doc;
- Michael Reimpell improved script registration (fixes bug report #2160) and the file and image selectors in Blender.Window (improved with suggestions from Yann Vernier). They now suppport methods as callbacks;
- World.get/setMode were not registered, so could not be directly called (reported by Ken Hughes). Still needs some work to improve things, including docs.
Scripts:
- Jean-Michel Soler updated his texture baker based on input from Appolux;
- Campbell and Jean-Michel improved the bvh importer: faster, better float units scaling (by Campbell); supports Poser 3.01 files (by jms).
Thanks guys!
Diffstat (limited to 'source/blender/python/api2_2x/doc/NMesh.py')
-rw-r--r-- | source/blender/python/api2_2x/doc/NMesh.py | 88 |
1 files changed, 86 insertions, 2 deletions
diff --git a/source/blender/python/api2_2x/doc/NMesh.py b/source/blender/python/api2_2x/doc/NMesh.py index ca2e42ccdbf..ed016880c24 100644 --- a/source/blender/python/api2_2x/doc/NMesh.py +++ b/source/blender/python/api2_2x/doc/NMesh.py @@ -66,6 +66,11 @@ Example:: - ADD - add to background (halo). - ALPHA - draw with transparency. - SUB - subtract from background. +@var EdgeFlags: The available edge flags. + - SELECT - selected. + - EDGEDRAW - edge is drawn out of edition mode. + - SEAM - edge is a seam for LSCM UV unwrapping + - FGON - edge is part of a F-Gon. """ def Col(col = [255, 255, 255, 255]): @@ -139,16 +144,18 @@ def GetRawFromObject(name): be created. """ -def PutRaw(nmesh, name = None, recalculate_normals = 1): +def PutRaw(nmesh, name = None, recalculate_normals = 1, store_edges = 0): """ Put an NMesh object back in Blender. @type nmesh: NMesh @type name: string @type recalculate_normals: int + @type store_edges: int @param name: The name of the mesh data object in Blender which will receive this nmesh data. It can be an existing mesh data object or a new one. @param recalculate_normals: If non-zero, the vertex normals for the mesh will be recalculated. + @param store_edges: if non-zero, the edges data are stored @rtype: None or Object @return: It depends on the 'name' parameter: - I{name} refers to an existing mesh data obj already linked to an @@ -193,6 +200,21 @@ class NMVert: each face can be independently mapped to any part of its texture. """ +class NMEdge: + """ + The NMEdge object + ================= + This object holds mesh edge data. + @type v1: NMVert + @cvar v1: The first vertex of the edge. + @type v2: NMVert + @cvar v2: The second vertex of the edge. + @type crease: int + @cvar crease: The crease value of the edge. It is in the range [0,255]. + @type flag: int + @cvar flag: The bitmask describing edge properties. See L{NMesh.EdgeFlags<EdgeFlags>}. + """ + class NMFace: """ The NMFace object @@ -264,11 +286,71 @@ class NMesh: @cvar verts: The list of NMesh vertices (NMVerts). @cvar users: The number of Objects using (linked to) this mesh. @cvar faces: The list of NMesh faces (NMFaces). + @cvar edges: None if mesh has no edge data, else a list of L{NMEdge} edges. Use L{addEdgesData} to create edge data if it do not exist. @cvar mode: The mode flags for this mesh. See L{setMode}. @cvar subDivLevels: The [display, rendering] subdivision levels in [1, 6]. @cvar maxSmoothAngle: The max angle for auto smoothing. See L{setMode}. """ + def addEdge(v1, v2): + """ + Create an edge between two vertices. + If an edge already exists between those vertices, it is returned. (in blender, only zero or one edge can link two vertices). + Created edge is automatically added to edges list. + You can only call this method if mesh has edge data. + @type v1: NMVert + @param v1: the first vertex of the edge. + @type v2: NMVert + @param v2: the second vertex of the edge. + @rtype: NMEdge + @return: The created or already existing edge. + """ + + def findEdge(v1, v2): + """ + Try to find an edge between two vertices. + If no edge exists between v1 and v2, None is returned. + You can only call this method if mesh has edge data. + @type v1: NMVert + @param v1: the first vertex of the edge. + @type v2: NMVert + @param v2: the second vertex of the edge. + @rtype: NMEdge + @return: The found edge. None if no edge was found. + """ + + def removeEdge(): + """ + remove an edge between two vertices. + All faces using this edge are removed from faces list. + You can only call this method if mesh has edge data. + @type v1: NMVert + @param v1: the first vertex of the edge. + @type v2: NMVert + @param v2: the second vertex of the edge. + """ + + def addFace(face): + """ + Add a face to face list and add to edge list (if edge data exists) necessary edges. + @type face: NMFace + @param face: the face to add to the mesh. + @rtype: list of NMEdge + @return: If mesh has edge data, return the list of face edges. + """ + + def removeFace(): + """ + Remove a face for face list and remove edges no more used by any other face (if edge data exists). + @type face: NMFace + @param face: the face to add to the mesh. + """ + + def addEdgesData(): + """ + If edge data does not exist for the mesh (ie L{edges}==None), then create them. + """ + def addMaterial(material): """ Add a new material to this NMesh's list of materials. This method is the @@ -412,7 +494,7 @@ class NMesh: add them. """ - def update(recalc_normals = 0): + def update(recalc_normals = 0, store_edges = 0): """ Update the mesh in Blender. The changes made are put back to the mesh in Blender, if available, or put in a newly created mesh object if this NMesh @@ -420,6 +502,8 @@ class NMesh: @type recalc_normals: int @param recalc_normals: If given and equal to 1, the vertex normals are recalculated. + @type store_edges: int + @param store_edges: if not 0, then edge data are stored. @note: if your mesh disappears after it's updated, try L{Object.Object.makeDisplayList}. 'Subsurf' meshes (see L{getMode}, L{setMode}) need their display lists updated, too. |