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

Group.py « doc « api2_2x « python « blender « source - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: aca7c56b4a52c8bb0a9fa155518a40f0b60c740f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# Blender.Group module and the Group PyType object

"""
The Blender.Group submodule.

Group
=====

This module provides access to B{Group} data in Blender.

Example::

	# Make Dupli's Real, as a python script.

	from Blender import *

	scn= Scene.GetCurrent()
	for ob in scn.objects:
		print 'Object Group Settings'
		print ob.name, ob.type
		print 'enableDupVerts:', ob.enableDupVerts
		print 'enableDupFrames:', ob.enableDupFrames
		print 'enableDupGroup:', ob.enableDupGroup
		print 'DupGroup:', ob.DupGroup
		dupe_obs= ob.DupObjects
		print 'num dup obs:', len(dupe_obs)

		for dup_ob, dup_matrix in dupe_obs:
			print '\tDupOb', dup_ob.name
			scn.objects.new(dup_ob.data)
			new_ob.setMatrix(dup_matrix)
			new_ob.sel= 1 # select all real instances.

		ob.sel=0 # Desel the original object

	Window.RedrawAll()

Example::

	# Make a new group with the selected objects, and add an instance of this group.

	from Blender import *
	
	scn= Scene.GetCurrent()
	
	# New Group
	grp= Group.New('mygroup')
	grp.objects= scn.objects
	
	# Instance the group at an empty using dupligroups
	ob= scn.objects.new(None)
	ob.enableDupGroup= True
	ob.DupGroup= grp
	Window.RedrawAll()
	
	
Example::

	# Remove all non mesh objects from a group.

	from Blender import *
	
	scn= Scene.GetCurrent()
	
	# New Group
	grp= Group.Get('mygroup')
	for ob in list(grp.objects): # Convert to a list before looping because we are removing items
		if ob.type != 'Mesh':
			grp.objects.unlink(ob)
"""

def New (name = None):
	"""
	Make a new empty group, name optional, default is "Group"
	@type name: string
	@param name: The name of the new group.
	@rtype:  Blender Group
	@return: A Empty Blender Group object
	"""

def Get (name = None):
	"""
	Get the Group object(s) from Blender.
	@type name: string
	@param name: The name of the Group object.
	@rtype: Blender Group or a list of Blender Groups
	@return: It depends on the I{name} parameter:
			- (name): The Group object called I{name}, Exception if it is not found.
			- (): A list with all Group objects in the current blend file.
	"""

def Unlink (group):
	"""
	Unlink (delete) this group from Blender.
	@Note: No objects will be removed, just the group that references them.
	@type group: group
	@param group: A group to remove from this blend file, does not remove objects that this group uses.
	"""


class Group:
	"""
	The Group object
	================
		This object gives access to Groups in Blender.
	@ivar layers: Layer bitmask for this group.
	@type layers: int
	@ivar objects: Objects that this group uses.
		This is a sequence with-list like access so use list(grp.objects) if you need to use a list (where grp is a group).
		The groups objects can be set by assigning a list or iterator of objects to the groups objects.
		objects.link() and objects.unlink() also work with the the objects iterator just like with lists.

		B{Note}: append() and remove() have been deprecated and replaced by link() and unlink(),
		after Blender 2.43 append() and remove() will not be available.
	@type objects: custom object sequence
	"""

	def __copy__ ():
		"""
		Make a copy of this group
		@rtype: Group
		@return:  a copy of this group
		"""

import id_generics
Group.__doc__ += id_generics.attributes