protected override bool TrangleCheckAndProcess(TTrangle tri) { var vertices = tri.Vertices.ToArray(); float[] weight; if (TCameraUtility.IsInsideTrangle(vertices, Target.position, out weight)) { if (PowerOn) { if (CurrentTrangle != tri) { var etri = tri as TEventTrangle; if (!etri.AnyRelationship(CurrentTrangle as TEventTrangle)) { tri.OnEnterTrangle(); } } } return(true); } return(false); }
protected override bool TrangleCheckAndProcess(TTrangle tri) { var vertices = tri.Vertices.ToArray(); float[] weight; if (TCameraUtility.IsInsideTrangle(vertices, Target.position, out weight)) { if (PowerOn) { var tVertices = tri.vertices; var eulerAngles = (tVertices[0] as TCameraVertex).EularAngle * weight[0] + (tVertices[1] as TCameraVertex).EularAngle * weight[1] + (tVertices[2] as TCameraVertex).EularAngle * weight[2]; var pivotPosition = (tVertices[0] as TCameraVertex).PivotPosition * weight[0] + (tVertices[1] as TCameraVertex).PivotPosition * weight[1] + (tVertices[2] as TCameraVertex).PivotPosition * weight[2]; //Add Other args if (OnPositionChanged != null) { OnPositionChanged.Invoke(eulerAngles, pivotPosition); } if (OnPositionChangedWithSplitArgs != null) { OnPositionChangedWithSplitArgs.Invoke(eulerAngles.x, eulerAngles.y, eulerAngles.z); } if (OnComplexEvent != null) { OnComplexEvent.Invoke(eulerAngles, pivotPosition, weight); } } return(true); } return(false); }