glTF exporter: Export DEF bones only, without animation, is now possible
[blender-addons.git] / io_export_dxf / primitive_exporters / camera_exporter.py
blobd447f50658d00353abda1c4b3b4b3ccd19ae0010
1 # SPDX-License-Identifier: GPL-2.0-or-later
3 from .base_exporter import BasePrimitiveDXFExporter
6 class CameraDXFExporter(BasePrimitiveDXFExporter):
7 pass
10 #-----------------------------------------------------
11 def exportCamera(ob, mx, mw, **common):
12 """converts Camera-Object to desired projection and representation(DXF-Entity type)
13 """
14 location = mathutils.Vector(ob.loc)
15 [location] = projected_co([location], mx)
16 [location] = toGlobalOrigin([location])
17 view_name=validDXFr12name(('CAM_'+ ob.name))
19 camera = Camera.Get(ob.getData(name_only=True))
20 #print 'deb: camera=', dir(camera) #------------------
21 if camera.type=='persp':
22 mode = 1+2+4+16
23 # mode flags: 1=persp, 2=frontclip, 4=backclip,16=FrontZ
24 elif camera.type=='ortho':
25 mode = 0+2+4+16
27 leftBottom=(0.0,0.0) # default
28 rightTop=(1.0,1.0) # default
29 center=(0.0,0.0) # default
31 direction = mathutils.Vector(0.0,0.0,1.0) * mx.to_euler().to_matrix() # in W-C-S
32 direction.normalize()
33 target=mathutils.Vector(ob.loc) - direction # in W-C-S
34 #ratio=1.0
35 width=height= camera.scale # for ortho-camera
36 lens = camera.lens # for persp-camera
37 frontClipping = -(camera.clipStart - 1.0)
38 backClipping = -(camera.clipEnd - 1.0)
40 entities, vport, view = [], None, None
41 c = camera_as_list[GUI_A['camera_as'].val]
42 if c=="POINT": # export as POINT
43 dxfPOINT = DXF.Point(points=[location],**common)
44 entities.append(dxfPOINT)
45 elif c=="VIEW": # export as VIEW
46 view = DXF.View(name=view_name,
47 center=center, width=width, height=height,
48 frontClipping=frontClipping,backClipping=backClipping,
49 direction=direction,target=target,lens=lens,mode=mode
51 elif c=="VPORT": # export as VPORT
52 vport = DXF.VPort(name=view_name,
53 center=center, ratio=1.0, height=height,
54 frontClipping=frontClipping,backClipping=backClipping,
55 direction=direction,target=target,lens=lens,mode=mode
57 return entities, vport, view