Ejemplo n.º 1
0
    def getCreationBuffer(self, parent_id):

        buffer = blender_cave.buffer.Buffer()
        item_id = self.getItemID()

        if not self._created:
            buffer.command(self.getParent().CREATE_ITEM)
            buffer.itemID(parent_id)
            buffer.itemID(item_id)
            item_name = self.getItemName()
            buffer.string(item_name)
            try:
                if self._item.parent is not None:
                    parent_name = str(self._item.parent)
                else:
                    parent_name = item_name
            except AttributeError:
                parent_name = item_name
            buffer.string(parent_name)
            self._created = True
            if not self.getParent()._firstCreation:
                self.activate(True, True)

        for item in self._getSubItems():
            item = self.getParent().getItem(item)
            buffer += item.getCreationBuffer(item_id)
        return buffer
Ejemplo n.º 2
0
    def getCreationBuffer(self, parent_id):

        buffer = blender_cave.buffer.Buffer()
        item_id = self.getItemID()

        if not self._created:
            buffer.command(self.getParent().CREATE_ITEM)
            buffer.itemID(parent_id)
            buffer.itemID(item_id)
            item_name = self.getItemName()
            buffer.string(item_name)
            try:
                if self._item.parent is not None:
                    parent_name = str(self._item.parent)
                else:
                    parent_name = item_name
            except AttributeError:
                parent_name = item_name
            buffer.string(parent_name)
            self._created = True
            if not self.getParent()._firstCreation:
                self.activate(True, True)

        for item in self._getSubItems():
            item = self.getParent().getItem(item)
            buffer += item.getCreationBuffer(item_id)
        return buffer
Ejemplo n.º 3
0
    def getBuffer(self):
        buffer = blender_cave.buffer.Buffer()

        # Create new objects affectations ...
        newObjects = blender_cave.buffer.Buffer()
        while len(self._synchronizedObjectsToAdd) > 0:
            object = self._synchronizedObjectsToAdd.pop()
            objects_id = id(object)
            self._synchronizedObjects[objects_id] = object
            newObjects.itemID(objects_id)
            newObjects.string(object._synchronize_object_name)
        if not newObjects.isEmpty():
            buffer.command(self.NEW_OBJECT)
            buffer.subBuffer(newObjects)

        # Then update objects attributs
        for objects_id, object in self._synchronizedObjects.items():
            object_data_buffer = object.getSynchronizerBuffer()
            if (object_data_buffer
                    is not None) and (not object_data_buffer.isEmpty()):
                buffer.command(self.OBJECT)
                buffer.itemID(objects_id)
                buffer.subBuffer(object_data_buffer)

        return buffer
Ejemplo n.º 4
0
    def getBuffer(self):
        buffer = blender_cave.buffer.Buffer()

        # Create new objects affectations ...
        newObjects = blender_cave.buffer.Buffer()
        while len(self._synchronizedObjectsToAdd) > 0:
            object = self._synchronizedObjectsToAdd.pop()
            objects_id = id(object)
            self._synchronizedObjects[objects_id] = object
            newObjects.itemID(objects_id)
            newObjects.string(object._synchronize_object_name)
        if not newObjects.isEmpty():
            buffer.command(self.NEW_OBJECT)
            buffer.subBuffer(newObjects)

        # Then update objects attributs
        for objects_id, object in self._synchronizedObjects.items():
            object_data_buffer = object.getSynchronizerBuffer()
            if (object_data_buffer is not None) and (not object_data_buffer.isEmpty()):
                buffer.command(self.OBJECT)
                buffer.itemID(objects_id)
                buffer.subBuffer(object_data_buffer)

        return buffer
Ejemplo n.º 5
0
    def process(self, buffer):
        while not buffer.isEmpty():
            command = buffer.command()

            if command == self.NEW_OBJECT:
                new_objects_buffer = buffer.subBuffer()
                while not new_objects_buffer.isEmpty():
                    objects_id   = new_objects_buffer.itemID()
                    objects_name = new_objects_buffer.string()
                    for i in range(len(self._synchronizedObjectsToAdd)):
                        if self._synchronizedObjectsToAdd[i]._synchronize_object_name == objects_name:
                            object = self._synchronizedObjectsToAdd.pop(i)
                            self._synchronizedObjects[objects_id] = object
                            break

            elif command == self.OBJECT:
                objects_id   = buffer.itemID()
                objectBuffer = buffer.subBuffer()
                if objects_id in self._synchronizedObjects:
                    self._synchronizedObjects[objects_id].processSynchronizerBuffer(objectBuffer)
Ejemplo n.º 6
0
    def process(self, buffer):
        while not buffer.isEmpty():
            command = buffer.command()

            if command == self.NEW_OBJECT:
                new_objects_buffer = buffer.subBuffer()
                while not new_objects_buffer.isEmpty():
                    objects_id = new_objects_buffer.itemID()
                    objects_name = new_objects_buffer.string()
                    for i in range(len(self._synchronizedObjectsToAdd)):
                        if self._synchronizedObjectsToAdd[
                                i]._synchronize_object_name == objects_name:
                            object = self._synchronizedObjectsToAdd.pop(i)
                            self._synchronizedObjects[objects_id] = object
                            break

            elif command == self.OBJECT:
                objects_id = buffer.itemID()
                objectBuffer = buffer.subBuffer()
                if objects_id in self._synchronizedObjects:
                    self._synchronizedObjects[
                        objects_id].processSynchronizerBuffer(objectBuffer)