fixes
diff --git a/parser/CompConverter.js b/parser/CompConverter.js
index 2e6bcf0..8f69d3c 100644
--- a/parser/CompConverter.js
+++ b/parser/CompConverter.js
@@ -17,8 +17,8 @@
if(!renderCancelled){
var dataFile = new File(exportFolder.fullName+'/data.json');
dataFile.open('w','TEXT','????');
- //dataFile.write(JSON.stringify(compositionData)); //DO NOT ERASE, JSON UNFORMATTED
- dataFile.write(JSON.stringify(compositionData, null, ' ')); //DO NOT ERASE, JSON FORMATTED
+ dataFile.write(JSON.stringify(compositionData)); //DO NOT ERASE, JSON UNFORMATTED
+ //dataFile.write(JSON.stringify(compositionData, null, ' ')); //DO NOT ERASE, JSON FORMATTED
dataFile.close();
}
currentExportingComposition+=1;
@@ -104,8 +104,9 @@
currentExportingComposition+=1;
}
}
- //If we get here there are no more compositions to render and callback is executed
- helperFootage.remove();
+ //If it gets here there are no more compositions to render and callback is executed
+ //helperSolid.remove();
+ //helperFootage.remove();
endCallback.apply();
}
@@ -114,6 +115,14 @@
var helperImportOptions = new ImportOptions();
helperImportOptions.file = helperFile;
helperFootage = mainProject.importFile(helperImportOptions);
+ var helperFolder = helperFootage.item(2);
+ var helperComp = helperFootage.item(1);
+ //helperSolid = helperComp.layers.addSolid([1.0,1.0,0], "helperSolid", 10, 10, 1);
+ //helperSolid = helperComp.layers.addNull(2);
+ //helperSolid.layerInfo.transform['Anchor Point']
+ //helperSolid.transform['Anchor Point'].expression = "velocityAtTime(time)";
+ //helperSolid.parentFolder = helperFolder;
+
rqManager.setProject(app.project);
LayerConverter.setCallback(layersConverted);
currentExportingComposition = 0;
diff --git a/parser/DOMAnimationManager.js b/parser/DOMAnimationManager.js
index e103dca..b01d126 100644
--- a/parser/DOMAnimationManager.js
+++ b/parser/DOMAnimationManager.js
@@ -242,6 +242,9 @@
layerOb.ks.p = extrasInstance.roundNumber(layerInfo.transform.position.valueAtTime(0,false),3);
}
if(layerInfo.transform['Anchor Point'].numKeys>1){
+ /*if(lType == 'ShapeLayer'){
+ prepareHelperSolid(layerInfo.transform['Anchor Point']);
+ }*/
extrasInstance.convertToBezierValues(layerInfo.transform['Anchor Point'], frameRate, layerOb.ks,'a');
}else{
layerOb.ks.a = extrasInstance.roundNumber(layerInfo.transform['Anchor Point'].valueAtTime(0,false),3);
@@ -263,6 +266,23 @@
}
}
+ function prepareHelperSolid(property){
+ var helperAnchorPoint = helperSolid.transform["Anchor Point"];
+ var j,jLen = helperAnchorPoint.numKeys;
+ while(jLen > 0){
+ helperAnchorPoint.removeKey(1);
+ jLen -= 1;
+ }
+ jLen = property.numKeys;
+ for(j = 0;j<jLen; j += 1){
+ var keyIn = property.keyInTemporalEase(j+1);
+ var keyOut = property.keyOutTemporalEase(j+1);
+ helperAnchorPoint.addKey(property.keyTime(j+1));
+ helperAnchorPoint.setValueAtKey(j+1,property.keyValue(j+1));
+ //helperAnchorPoint.setTemporalEaseAtKey(j+1, keyIn, keyOut);
+ }
+ }
+
function createLayers(compo, layersData, frameRate){
var i, len = compo.layers.length;
for(i = 0;i<len;i++){
diff --git a/parser/extras.js b/parser/extras.js
index d795605..dbb4d63 100644
--- a/parser/extras.js
+++ b/parser/extras.js
@@ -545,10 +545,10 @@
if(property.propertyValueType == PropertyValueType.ThreeD_SPATIAL || property.propertyValueType == PropertyValueType.TwoD_SPATIAL || property.propertyValueType == PropertyValueType.SHAPE ){
property.expression = propertyExpression;
}
- bezierIn.x = extrasInstance.roundNumber(bezierIn.x,3);
+ /*bezierIn.x = extrasInstance.roundNumber(bezierIn.x,3);
bezierIn.y = extrasInstance.roundNumber(bezierIn.y,3);
bezierOut.x = extrasInstance.roundNumber(bezierOut.x,3);
- bezierOut.y = extrasInstance.roundNumber(bezierOut.y,3);
+ bezierOut.y = extrasInstance.roundNumber(bezierOut.y,3);*/
segmentOb.i = bezierIn;
segmentOb.o = bezierOut;
segmentOb.n = (bezierIn.x.toString()+'_'+bezierIn.y.toString()+'_'+bezierOut.x.toString()+'_'+bezierOut.y.toString()).replace(/\./g, 'p');
diff --git a/parser/global.js b/parser/global.js
index ac9dab9..3ca83c7 100644
--- a/parser/global.js
+++ b/parser/global.js
@@ -1,5 +1,7 @@
/****** INIT Var Declarations ******/
var helperFootage;
+//Solid for anchor point fix on shape layers
+var helperSolid;
//Destination export folder
var exportFolder;
//Interval objects container
diff --git a/player/index.html b/player/index.html
index 60c1ee9..a0416b8 100644
--- a/player/index.html
+++ b/player/index.html
@@ -4,6 +4,7 @@
<!-- build:js bodymovin.js -->
<script src="js/main.js"></script>
<script src="js/3rd_party/transformation-matrix.js"></script>
+ <script src="js/3rd_party/BezierEasing.js"></script>
<script src="js/utils/MatrixManager.js"></script>
<script src="js/utils/animationFramePolyFill.js"></script>
<script src="js/utils/common.js"></script>
diff --git a/player/js/elements/canvasElements/CVBaseElement.js b/player/js/elements/canvasElements/CVBaseElement.js
index b49059d..57c2c2b 100644
--- a/player/js/elements/canvasElements/CVBaseElement.js
+++ b/player/js/elements/canvasElements/CVBaseElement.js
@@ -59,7 +59,7 @@
ctx.globalAlpha = ctx.globalAlpha*this.currentAnimData.tr.o;
matrixValue = this.currentAnimData.matrixArray;
ctx.transform(matrixValue[0], matrixValue[1], matrixValue[2], matrixValue[3], matrixValue[4], matrixValue[5]);
- console.log('this.currentAnimData.tr.a: ',this.currentAnimData.tr.a);
+ ///console.log('this.currentAnimData.tr.a: ',this.currentAnimData.tr.a);
ctx.translate(-this.currentAnimData.tr.a[0],-this.currentAnimData.tr.a[1]);
if(this.data.hasMask){
this.maskManager.draw();
diff --git a/player/js/elements/canvasElements/CVShapeItemElement.js b/player/js/elements/canvasElements/CVShapeItemElement.js
index 241bb08..978d8b5 100644
--- a/player/js/elements/canvasElements/CVShapeItemElement.js
+++ b/player/js/elements/canvasElements/CVShapeItemElement.js
@@ -70,6 +70,7 @@
var matrixValue = tr.mtArr;
if(matrixValue[0] !== 1 || matrixValue[1] !== 0 || matrixValue[2] !== 0 || matrixValue[3] !== 1 || matrixValue[4] !== 0 || matrixValue[5] !== 0){
ctx.save();
+ console.log('matrixValue: ',matrixValue);
ctx.transform(matrixValue[0], matrixValue[1], matrixValue[2], matrixValue[3], matrixValue[4], matrixValue[5]);
flag = true;
}
diff --git a/player/js/utils/DataManager.js b/player/js/utils/DataManager.js
index ebeb75f..5347db6 100644
--- a/player/js/utils/DataManager.js
+++ b/player/js/utils/DataManager.js
@@ -669,9 +669,15 @@
keyData.__fnct = fnc;
}
perc = fnc('',(frameNum)-(keyData.t-offsetTime),0,1,(nextKeyData.t-offsetTime)-(keyData.t-offsetTime));
+ //var easing = new BezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y);
+ //var prePerc = ((frameNum)-(keyData.t-offsetTime))/((nextKeyData.t-offsetTime)-(keyData.t-offsetTime));
+ //console.log('prePerc: ',prePerc);
+ //console.log('easing: ',easing(prePerc));
///perc = 0;
///var distanceInLine = 0;
var distanceInLine = bezierData.segmentLength*perc;
+ //console.log('perc: ',perc);
+
var segmentPerc;
var addedLength = 0;
dir = 1;
@@ -701,8 +707,8 @@
}else{
propertyArray = bezierData.points[j].point;
}
- keyData.__lastPoint = j;
- keyData.__lastDistanceInLine = distanceInLine;
+ //keyData.__lastPoint = j;
+ //keyData.__lastDistanceInLine = distanceInLine;
break;
}else if(j == bezierData.points.length - 1){
if(interpolatedParams.type == 'p'){
@@ -954,7 +960,8 @@
interpolatedParams.arrayFlag = false;
interpolatedParams.type = 'default';
if(renderType == 'canvas'){
- renderedData.an.matrixArray = matrixInstance.getMatrixArrayFromParams(r,sx,sy,px,py);
+ //renderedData.an.matrixArray = matrixInstance.getMatrixArrayFromParams(r,sx,sy,px,py);
+ renderedData.an.matrixArray = matrixInstance.getMatrixArrayFromParams(matrixParams.r,matrixParams.sx,matrixParams.sy,matrixParams.px,matrixParams.py);
}else{
renderedData.an.matrixValue = matrixInstance.getMatrix2FromParams(r,sx,sy,px,py);
}
@@ -1097,7 +1104,8 @@
interpolatedParams.arrayFlag = false;
interpolatedParams.type = 'default';
if(renderType == 'canvas'){
- shapeTrOb.mtArr = matrixInstance.getMatrixArrayFromParams(r,sx,sy,px,py);
+ shapeTrOb.mtArr = matrixInstance.getMatrixArrayFromParams(matrixParams.r,matrixParams.sx,matrixParams.sy,matrixParams.px,matrixParams.py);
+ ///shapeTrOb.mtArr = matrixInstance.getMatrixArrayFromParams(r,sx,sy,px,py);
}else{
shapeTrOb.mt = matrixInstance.getMatrix2FromParams(r,sx,sy,px,py);
}