First release. All scripts in v1.
This commit is contained in:
56
xg_fill2d.py
Normal file
56
xg_fill2d.py
Normal file
@@ -0,0 +1,56 @@
|
||||
# 3DE4.script.hide: true
|
||||
# 3DE4.script.startup: false
|
||||
#
|
||||
# Giovanni Di Grezia 2016
|
||||
# http://www.xgiovio.com
|
||||
#
|
||||
|
||||
import itertools
|
||||
import tde4
|
||||
|
||||
|
||||
def average_each_2_points (dist = False):
|
||||
cam = tde4.getCurrentCamera()
|
||||
playback = tde4.getCameraPlaybackRange(cam)
|
||||
firstframe = playback[0]
|
||||
lastframe = playback[1]
|
||||
current_point_group = tde4.getCurrentPGroup()
|
||||
selected_points = tde4.getPointList (current_point_group,1)
|
||||
if (len(selected_points) < 2):
|
||||
tde4.postQuestionRequester("Info","You need to select 2 or more 2D points","OK")
|
||||
else:
|
||||
exit = 0
|
||||
tde4.postProgressRequesterAndContinue("Calculating","Computing Points",100,"Cancel")
|
||||
couples_selected_points = list(itertools.combinations(selected_points,2))
|
||||
counter = 0
|
||||
for i in couples_selected_points:
|
||||
if exit == 1:
|
||||
break
|
||||
avg = tde4.createPoint (current_point_group)
|
||||
aname = tde4.getPointName(current_point_group,i[0])
|
||||
bname = tde4.getPointName(current_point_group,i[1])
|
||||
tde4.setPointName(current_point_group,avg, "AVG_" + aname + "_" + bname)
|
||||
for frame in range (firstframe, lastframe + 1):
|
||||
counter+=1
|
||||
percentage = (100 * counter) / (len(couples_selected_points) * (lastframe + 1 - firstframe))
|
||||
status = tde4.updateProgressRequester(percentage,str(percentage) + " % - Frame " + str(frame) + " Point AVG_" + aname + "_" + bname)
|
||||
if status != -1:
|
||||
exit = 1
|
||||
break
|
||||
apos = tde4.getPointPosition2D (current_point_group,i[0],cam,frame)
|
||||
if dist:
|
||||
apos = tde4.removeDistortion2D(cam,frame,apos)
|
||||
avalid =tde4.isPointPos2DValid(current_point_group,i[0],cam,frame)
|
||||
aposx = apos[0]
|
||||
aposy = apos[1]
|
||||
bpos = tde4.getPointPosition2D (current_point_group,i[1],cam,frame)
|
||||
if dist:
|
||||
bpos = tde4.removeDistortion2D(cam,frame,bpos)
|
||||
bvalid =tde4.isPointPos2DValid(current_point_group,i[1],cam,frame)
|
||||
bposx = bpos[0]
|
||||
bposy = bpos[1]
|
||||
if avalid and bvalid:
|
||||
avgpos = [ aposx + ( (bposx - aposx) / 2 ) , aposy + ( (bposy - aposy) / 2 ) ]
|
||||
if dist:
|
||||
avgpos = tde4.applyDistortion2D(cam,frame,avgpos)
|
||||
tde4.setPointPosition2D (current_point_group,avg,cam,frame,avgpos)
|
||||
Reference in New Issue
Block a user