// Update is called once per frame void Update() { rotateRayDir = Quaternion.AngleAxis(degPerSec * Time.deltaTime, crossProduct) * rotateRayDir; rotRay.origin = transform.position; rotRay.direction = rotateRayDir; SetCrossProduct(); FlagRenderer.DrawRay(crossProductRayObj, cpRay, cpRayColor); FlagRenderer.DrawRay(rotateRayObj, rotRay); }
public override void Decorate() { // Find Centerline Bend Marks var centerline = m_Conduit.centerline; var indices = m_Conduit.centerlineBendIndices; var conduitRadius = Engine.conduitDiameterM * 0.5f; var bi = 0; for (int i = 0; i < indices.Count; ++i) { if (indices[i].type == BendMarkType.Start || indices[i].type == BendMarkType.End) { bendIndices[bi++] = indices[i].index; } } if (bi < 6) { // Rays Off ToggleRays(false); return; } ToggleRays(true); // Arrow locations are dependent on Bend Method var bend = m_Conduit.bend; var centerAngle = (float)bend.GetInputParameter(EBendParameterName.CenterAngleDegrees).value; //var bendMethod = (GlobalEnum.ESaddle3BendMethod) bend.GetInputParameter(EBendParameterName.Saddle3Method).value; //if(bendMethod == GlobalEnum.ESaddle3BendMethod.Notch) //{ // Determine Points int centerOfCenterBend = (bendIndices[3] - bendIndices[2]) / 2 + bendIndices[2]; Vector3 bend1Dir = centerline[bendIndices[1]].radialDir; Vector3 bend2Dir = transform.up; Vector3 bend3Dir = centerline[bendIndices[4]].radialDir; bendPoints[0] = m_Conduit.transform.TransformPoint(centerline[bendIndices[1]].point) + bend1Dir * conduitRadius; bendPoints[1] = m_Conduit.transform.TransformPoint(centerline[centerOfCenterBend].point) + bend2Dir * conduitRadius; bendPoints[2] = m_Conduit.transform.TransformPoint(centerline[bendIndices[4]].point) + bend3Dir * conduitRadius; // Draw Arrows FlagRenderer.DrawRay(rays[0], -bend1Dir, bendPoints[0]); FlagRenderer.DrawRay(rays[1], -bend2Dir, bendPoints[1]); FlagRenderer.DrawRay(rays[2], -bend3Dir, bendPoints[2]); //} //else if(bendMethod == GlobalEnum.ESaddle3BendMethod.Arrow) //{ // // Determine Points // Vector3 bend1Dir = centerline[ bendIndices[ 1 ] ].radialDir; // Vector3 bend2Dir = -centerline[ bendIndices[ 2 ] ].radialDir; // Vector3 bend3Dir = centerline[ bendIndices[ 4 ] ].radialDir; // bendPoints[ 0 ] = m_Conduit.transform.TransformPoint( centerline[ bendIndices[ 1 ] ].point ) + bend1Dir * conduitRadius; // bendPoints[ 1 ] = m_Conduit.transform.TransformPoint( centerline[ bendIndices[ 2 ] ].point ) + bend2Dir * conduitRadius; // bendPoints[ 2 ] = m_Conduit.transform.TransformPoint( centerline[ bendIndices[ 4 ] ].point ) + bend3Dir * conduitRadius; // // Draw Arrows // FlagRenderer.DrawRay( rays[ 0 ], -bend1Dir, bendPoints[ 0 ] ); // FlagRenderer.DrawRay( rays[ 1 ], -bend2Dir, bendPoints[ 1 ] ); // FlagRenderer.DrawRay( rays[ 2 ], -bend3Dir, bendPoints[ 2 ] ); //} }