Skip to content

Commit

Permalink
minor edits
Browse files Browse the repository at this point in the history
- remove check if sensor width exists for chan files
- tag nuke chan files to be pep8
- remove unused import
  • Loading branch information
ideasman42 committed Dec 6, 2011
1 parent 07584de commit 5da257a
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 45 deletions.
6 changes: 1 addition & 5 deletions add_mesh_extra_objects/add_mesh_pyramid.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,9 @@


import bpy
from bpy.props import (FloatVectorProperty,
IntProperty,
FloatProperty,
BoolProperty)
from bpy.props import IntProperty, FloatProperty

from add_utils import AddObjectHelper, add_object_data
from mathutils import Vector


def makePyramid(initial_size, step_height, step_width, number_steps):
Expand Down
12 changes: 7 additions & 5 deletions io_anim_nuke_chan/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
#
# ##### END GPL LICENSE BLOCK #####

# <pep8-80 compliant>

bl_info = {
"name": "Nuke Animation Format (.chan)",
"author": "Michael Krupa",
Expand Down Expand Up @@ -50,7 +52,7 @@
EnumProperty)

# property shared by both operators
rot_ord = EnumProperty(
rotation_order = EnumProperty(
name="Rotation order",
description="Choose the export rotation order",
items=(('XYZ', "XYZ", "XYZ"),
Expand All @@ -73,7 +75,7 @@ class ImportChan(Operator, ImportHelper):

filter_glob = StringProperty(default="*.chan", options={'HIDDEN'})

rot_ord = rot_ord
rotation_order = rotation_order
z_up = BoolProperty(
name="Make Z up",
description="Switch the Y and Z axis",
Expand All @@ -88,7 +90,7 @@ def execute(self, context):
return import_nuke_chan.read_chan(context,
self.filepath,
self.z_up,
self.rot_ord)
self.rotation_order)


class ExportChan(Operator, ExportHelper):
Expand All @@ -103,7 +105,7 @@ class ExportChan(Operator, ExportHelper):
name="Make Y up",
description="Switch the Y and Z axis",
default=True)
rot_ord = rot_ord
rotation_order = rotation_order

@classmethod
def poll(cls, context):
Expand All @@ -114,7 +116,7 @@ def execute(self, context):
return export_nuke_chan.save_chan(context,
self.filepath,
self.y_up,
self.rot_ord)
self.rotation_order)


def menu_func_import(self, context):
Expand Down
26 changes: 11 additions & 15 deletions io_anim_nuke_chan/export_nuke_chan.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
#
# ##### END GPL LICENSE BLOCK #####

# <pep8-80 compliant>

""" This script is an exporter to the nuke's .chan files.
It takes the currently active object and writes it's transformation data
into a text file with .chan extension."""
Expand All @@ -29,6 +31,7 @@ def save_chan(context, filepath, y_up, rot_ord):
# get the active scene and object
scene = context.scene
obj = context.active_object
camera = obj.data if obj.type == 'CAMERA' else None

# get the range of an animation
f_start = scene.frame_start
Expand Down Expand Up @@ -72,28 +75,21 @@ def save_chan(context, filepath, y_up, rot_ord):
fw("%f\t%f\t%f\t" % (degrees(r[0]), degrees(r[1]), degrees(r[2])))

# if we have a camera, add the focal length
if obj.type == 'CAMERA':
sensor_x = 0
sensor_y = 0
if hasattr(obj.data, "sensor_width"): # Preserve compatibility
if obj.data.sensor_fit == 'VERTICAL':
sensor_x = obj.data.sensor_width
sensor_y = obj.data.sensor_height
else:
sensor_x = obj.data.sensor_width
sensor_y = sensor_x * res_ratio
if camera:
if camera.sensor_fit == 'VERTICAL':
sensor_x = camera.sensor_width
sensor_y = camera.sensor_height
else:
sensor_x = 32 # standard blender's sensor size
sensor_x = camera.sensor_width
sensor_y = sensor_x * res_ratio

cam_lens = obj.data.lens
cam_lens = camera.lens

# calculate the vertical field of view
# we know the vertical size of (virtual) sensor, the focal length
# of the camera so all we need to do is to feed this data to
# atan2 function whitch returns the degree (in radians) of
# atan2 function whitch returns the degree (in radians) of
# an angle formed by a triangle with two legs of a given lengths
vfov = degrees(atan2(sensor_y / 2, cam_lens))*2
vfov = degrees(atan2(sensor_y / 2, cam_lens)) * 2.0
fw("%f" % vfov)

fw("\n")
Expand Down
25 changes: 11 additions & 14 deletions io_anim_nuke_chan/import_nuke_chan.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
#
# ##### END GPL LICENSE BLOCK #####

# <pep8-80 compliant>

""" This script is an importer for the nuke's .chan files"""

from mathutils import Vector, Matrix, Euler
Expand All @@ -27,6 +29,7 @@ def read_chan(context, filepath, z_up, rot_ord):
# get the active object
scene = context.scene
obj = context.active_object
camera = obj.data if obj.type == 'CAMERA' else None

# get the resolution (needed to calculate the camera lens)
res_x = scene.render.resolution_x
Expand Down Expand Up @@ -104,23 +107,17 @@ def read_chan(context, filepath, z_up, rot_ord):


# check if the object is camera and fov data is present
if obj.type == 'CAMERA' and len(data) > 7:
if camera and len(data) > 7:
v_fov = float(data[7])
sensor_x = 0
sensor_y = 0
if hasattr(obj.data, "sensor_width"): # Preserve compatibility
if obj.data.sensor_fit == 'VERTICAL':
sensor_x = obj.data.sensor_width
sensor_y = obj.data.sensor_height
else:
sensor_x = obj.data.sensor_width
sensor_y = sensor_x * res_ratio
if camera.sensor_fit == 'VERTICAL':
sensor_x = camera.sensor_width
sensor_y = camera.sensor_height
else:
sensor_x = 32 # standard blender's sensor size
sensor_x = camera.sensor_width
sensor_y = sensor_x * res_ratio
lenslen = ((sensor_y / 2.0) / tan(radians(v_fov / 2.0)))
obj.data.lens = lenslen
obj.data.keyframe_insert("lens")

camera.lens = ((sensor_y / 2.0) / tan(radians(v_fov / 2.0)))
camera.keyframe_insert("lens")
filehandle.close()

return {'FINISHED'}
6 changes: 0 additions & 6 deletions modules/misc_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,13 @@
Miscellaneous helper methods.
'''



import bpy
from cursor_utils import *
from mathutils import Vector, Matrix



class BlenderFake:

@classmethod
Expand All @@ -47,7 +42,6 @@ def forceRedraw(cls):
CursorAccess.setCursor(CursorAccess.getCursor())



# Converts 3D coordinates in a 3DRegion
# into 2D screen coordinates for that region.
# Borrowed from Buerbaum Martin (Pontiac)
Expand Down

0 comments on commit 5da257a

Please sign in to comment.