Commit 2817075f authored by Breno Rilho Lemos's avatar Breno Rilho Lemos 💬
Browse files

Delete scene_functions.py

parent f14ff304
def init(unique_id):
bcs = bpy.context.scene
# Configure Environment
bcs.world.light_settings.use_environment_light = False
bcs.world.light_settings.environment_energy = 0.1
# Configure Stamp
bpy.context.scene.render.use_stamp = True
bpy.context.scene.render.use_stamp_time = False
bpy.context.scene.render.use_stamp_date = False
bpy.context.scene.render.use_stamp_render_time = False
bpy.context.scene.render.use_stamp_frame = False
bpy.context.scene.render.use_stamp_scene = False
bpy.context.scene.render.use_stamp_camera = False
bpy.context.scene.render.use_stamp_filename = False
bpy.context.scene.render.stamp_note_text = unique_id
bpy.context.scene.render.use_stamp_note = True
# Cleanup
bpy.data.objects.remove(bpy.data.objects['Cube'])
bpy.data.objects.remove(bpy.data.objects['Camera'])
# Basic Objects
addCameras() # Add cameras
addALICE_TPC() # ALICE TPC
def addALICE_TPC():
print("Adding ALICE TPC")
bpy.data.materials.new(name="TPC")
bpy.data.materials["TPC"].diffuse_color = (0, 0.635632, 0.8)
bpy.data.materials["TPC"].use_shadows = False
bpy.data.materials["TPC"].use_cast_shadows = False
bpy.data.materials["TPC"].use_transparency = True
bpy.data.materials["TPC"].alpha = 1
bpy.data.materials["TPC"].specular_alpha = 0
bpy.data.materials["TPC"].raytrace_transparency.fresnel_factor = 5
bpy.data.materials["TPC"].raytrace_transparency.fresnel = 0.3
bpy.ops.mesh.primitive_cylinder_add(radius=2.5, depth=5, view_align=False, enter_editmode=False, location=(0, 0, 0))
TPC = bpy.context.object
TPC.name = "TPC"
TPC.data.materials.clear()
TPC.data.materials.append(bpy.data.materials["TPC"])
def addCameras():
# ForwardCamera
bpy.ops.object.camera_add(location = (0,0,20), rotation = (0, 0, 0))
bpy.context.object.name = "ForwardCamera"
camera_forward=bpy.data.objects['ForwardCamera']
camera_forward.data.type = 'ORTHO'
camera_forward.data.ortho_scale = 10
# OverviewCamera
bpy.ops.object.camera_add(location = (6.98591, -19.7115, 23.9696), rotation = (-0.281366, 0.683857, -1.65684))
bpy.context.object.name = "OverviewCamera"
bpy.context.object.data.lens = 66.78
# Barrel Camera
bpy.ops.object.camera_add(location = (6, 0, 0), rotation = (0, 1.5708, 0))
#bpy.context.object.rotation_euler[1] = 1.5708
bpy.context.object.name = "BarrelCamera"
# Function that creates Blender Objects from input list of particles.
## Returns a list of blender objects
def createSceneParticles(particles, createTracks = False):
# Associate particles and colors
particle_types = ["Electron","Pion","Muon","Proton","Kaon","Unknown"]
clRed = (1, 0, 0)
clGreen = (0, 1, 0)
clBlue = (0, 0, 1)
clMagenta = (0.75, 0, 1)
clYellow = (1, 1, 0)
clWhite = (255, 255, 255)
particle_colors = {"Electron":clRed, "Pion":clGreen, "Muon":clBlue, "Proton":clMagenta, "Kaon": clYellow, "Unknown": clWhite}
#Create Materials
for type in particle_types:
bpy.data.materials.new(name=type)
#bpy.context.object.active_material = (1, 0, 0)
bpy.data.materials[type].diffuse_color = particle_colors[type]
bpy.data.materials[type].use_shadows = False
bpy.data.materials[type].use_cast_shadows = False
# Create blender spheres (particles)
blender_particles=[]
n_particles=len(particles)
for particle in particles:
this_type=particle.p_type
print("Adding Sphere - Particle " + str(len(blender_particles))+" of "+str(n_particles-1)+" - "+this_type)
bpy.ops.mesh.primitive_uv_sphere_add()
this_particle = bpy.context.object
this_particle.name = "part"+str(particle.iDx)
this_particle.location = ((particle.x,particle.y,particle.z))
this_particle.delta_scale = (r_part,r_part,r_part)
this_particle.data.materials.clear()
this_particle.data.materials.append(bpy.data.materials[this_type])
blender_particles.append(this_particle)
# Create blender curves (tracks)
blender_tracks=[]
if createTracks:
for track in particles:
this_type=track.p_type #TO DO: make this not random, but according to file data
print("Adding Curve - Track " + str(len(blender_tracks))+" of "+str(n_particles-1)+" - "+this_type)
# create the Curve Datablock
curveTrack = bpy.data.curves.new('CurveTrack', type='CURVE')
curveTrack.dimensions = '3D'
curveTrack.resolution_u = 2
curveTrack.fill_mode = 'FULL'
curveTrack.bevel_depth = 0.02
curveTrack.bevel_resolution = 3
# map coords to spline
bcs = bpy.context.scene
polyline = curveTrack.splines.new('NURBS')
polyline.points.add(bcs.frame_end) # Add one point per frame
for i in range(bcs.frame_end):
polyline.points[i].co = (particle.x,particle.y,particle.z, 1)
# create Object
trackOB = bpy.data.objects.new('Track', curveTrack)
trackOB.data.materials.clear()
trackOB.data.materials.append(bpy.data.materials[this_type])
scn = bpy.context.scene
scn.objects.link(trackOB)
blender_tracks.append(trackOB)
return blender_particles, blender_tracks
# Function that animates the scene using the particle propagator class
def animate(objects, particles, driver):
bcs = bpy.context.scene
#Animate particles
for f in range(1, bcs.frame_end):
t = driver.delta_t*f
bcs.frame_current = f
print("Configuring particles in frame: "+str(f)+" of "+str(bcs.frame_end))
for i in range(0, len(objects)):
bcs.objects.active=objects[i]
objects[i].location=(particles[i].Propagate(t))
objects[i].keyframe_insert(data_path='location')
# Function that animates particle tracks using the particle propagator class
def animate_tracks(tracks, particles, driver):
bcs = bpy.context.scene
#Animate tracks
for f in range(1, bcs.frame_end):
t = driver.delta_t*f
bcs.frame_current = f
print("Configuring tracks in frame: "+ str(f) +" of "+ str(bcs.frame_end))
for point in range(f,bcs.frame_end):
for i in range(0, len(particles)):
#bcs.objects.active=tracks[i]
tracks[i].data.splines[0].points[point].keyframe_insert(data_path="co", frame = f)
x, y, z = particles[i].Propagate(t)
tracks[i].data.splines[0].points[point].co = (x, y, z, 1)
##polyline = curveTrack.splines.new('NURBS')
##polyline.points.add(len(coords))
##for i, coord in enumerate(coords):
## x,y,z = coord
## polyline.points[i].co = (x, y, z, 1)
#curve = bpy.data.objects["Track"]
#curve.data.splines[0].points[1].co
#point.keyframe_insert(data_path="co", frame = i)
# https://blender.stackexchange.com/questions/73630/animate-curves-by-changing-spline-data-using-a-python-script
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment