
class DxfDrawing(object):
	"""
	Represents intermediate model of DXF drawing. It is useful in iterating
	through exported object and for easy change the DXF handling library.
	"""
	def __init__(self):
		self._entities = {}
		self._layers = {}
		self._views = []
		self._vports = []
		self._blocks = []

	def isEmpty(self):
		return len(self._entities) == 0

	def addEntity(self, type, **kwargs):
		if type not in self._entities:
			self._entities[type] = []
		self._entities[type].append(kwargs)

	def addLayer(self, name, color):
		self._layers[name] = color

	def containsLayer(self, name):
		return name in self._layers

	def addBlock(self, block):
		self._blocks.append(block)

	def containsBlock(self, blockname):
		return blockname in self._blocks

	def convert(self, **kwargs):
		""" Converts this drawing into DXF representation object """
		raise NotImplementedError()
