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: 1266d2efb6e6885129e0dffb6adc5d8b9f275b47 (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
128
129
130
131
132
133
134
135
# 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 dupliOffset: Object offset when instanced as a dupligroup
	@type dupliOffset: vector
	@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
		"""
	def copy ():
		"""
		Make a copy of this group
		@rtype: Group
		@return:  a copy of this group
		"""

import id_generics
Group.__doc__ += id_generics.attributes