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

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'io_export_dxf/primitive_exporters/camera_exporter.py')
-rw-r--r--io_export_dxf/primitive_exporters/camera_exporter.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/io_export_dxf/primitive_exporters/camera_exporter.py b/io_export_dxf/primitive_exporters/camera_exporter.py
new file mode 100644
index 00000000..e31166ed
--- /dev/null
+++ b/io_export_dxf/primitive_exporters/camera_exporter.py
@@ -0,0 +1,55 @@
+from .base_exporter import BasePrimitiveDXFExporter
+
+
+class CameraDXFExporter(BasePrimitiveDXFExporter):
+ pass
+
+
+#-----------------------------------------------------
+def exportCamera(ob, mx, mw, **common):
+ """converts Camera-Object to desired projection and representation(DXF-Entity type)
+ """
+ location = mathutils.Vector(ob.loc)
+ [location] = projected_co([location], mx)
+ [location] = toGlobalOrigin([location])
+ view_name=validDXFr12name(('CAM_'+ ob.name))
+
+ camera = Camera.Get(ob.getData(name_only=True))
+ #print 'deb: camera=', dir(camera) #------------------
+ if camera.type=='persp':
+ mode = 1+2+4+16
+ # mode flags: 1=persp, 2=frontclip, 4=backclip,16=FrontZ
+ elif camera.type=='ortho':
+ mode = 0+2+4+16
+
+ leftBottom=(0.0,0.0) # default
+ rightTop=(1.0,1.0) # default
+ center=(0.0,0.0) # default
+
+ direction = mathutils.Vector(0.0,0.0,1.0) * mx.to_euler().to_matrix() # in W-C-S
+ direction.normalize()
+ target=mathutils.Vector(ob.loc) - direction # in W-C-S
+ #ratio=1.0
+ width=height= camera.scale # for ortho-camera
+ lens = camera.lens # for persp-camera
+ frontClipping = -(camera.clipStart - 1.0)
+ backClipping = -(camera.clipEnd - 1.0)
+
+ entities, vport, view = [], None, None
+ c = camera_as_list[GUI_A['camera_as'].val]
+ if c=="POINT": # export as POINT
+ dxfPOINT = DXF.Point(points=[location],**common)
+ entities.append(dxfPOINT)
+ elif c=="VIEW": # export as VIEW
+ view = DXF.View(name=view_name,
+ center=center, width=width, height=height,
+ frontClipping=frontClipping,backClipping=backClipping,
+ direction=direction,target=target,lens=lens,mode=mode
+ )
+ elif c=="VPORT": # export as VPORT
+ vport = DXF.VPort(name=view_name,
+ center=center, ratio=1.0, height=height,
+ frontClipping=frontClipping,backClipping=backClipping,
+ direction=direction,target=target,lens=lens,mode=mode
+ )
+ return entities, vport, view