Esempio n. 1
0
    void Start()
    {
        int i = 0;

        cubes    = new CubeParams[8];
        cubes[i] = new CubeParams("red", cubeColors[i++], new int[]    { 0, 1, 3, 6, 9, 15 });
        cubes[i] = new CubeParams("green", cubeColors[i++], new int[]  { 2, 4, 7, 13, 19, 24 });
        cubes[i] = new CubeParams("blue", cubeColors[i++], new int[]   { 28, 5, 8, 10, 20, 47 });
        cubes[i] = new CubeParams("pink", cubeColors[i++], new int[]   { 33, 34, 11, 12, 17, 22 });
        cubes[i] = new CubeParams("yellow", cubeColors[i++], new int[] { 14, 16, 37, 27, 39, 41 });
        cubes[i] = new CubeParams("purple", cubeColors[i++], new int[] { 18, 21, 43, 44, 46, 23 });
        cubes[i] = new CubeParams("cyan", cubeColors[i++], new int[]   { 25, 26, 29, 35, 42, 38 });
        cubes[i] = new CubeParams("brown", cubeColors[i++], new int[]  { 30, 31, 32, 36, 45, 40 });

        i             = 0;
        rotation      = new RotationParams[6];
        rotation[i++] = new RotationParams(Axis4D.xy, 0f);
        rotation[i++] = new RotationParams(Axis4D.xz, 0f);
        rotation[i++] = new RotationParams(Axis4D.xw, 0f);
        rotation[i++] = new RotationParams(Axis4D.yz, 0f);
        rotation[i++] = new RotationParams(Axis4D.yw, 0f);
        rotation[i++] = new RotationParams(Axis4D.zw, 0f);

        ResetVertices();
        SetupLineRenderer();

        for (i = 0; i < faces.Length; i++)
        {
            FaceParams p = faces[i];

            DrawFace(rotatedVerts[p.a], rotatedVerts[p.b], rotatedVerts[p.c], rotatedVerts[p.d], Vector3.zero, i, p.faceColor, p.faceGroup, p);
        }
    }
Esempio n. 2
0
 void AddToRotationDictionary(Axis4D axis, float theta)
 {
     for (int i = 0; i < rotation.Length; i++)
     {
         RotationParams rp = rotation[i];
         if (rp.axis == axis)
         {
             rp.amount += theta;
             if (rp.amount > 360)
             {
                 rp.amount -= 360;
             }
         }
     }
 }
Esempio n. 3
0
        public UserDefinedFormatFactory(UserDefinedFactoryParams createParams)
            : base(createParams)
        {
            var formatSpecificNode = createParams.FormatSpecificNode;

            ReadPatterns(formatSpecificNode, patterns);
            var boundsNodes = formatSpecificNode.Elements("bounds").Take(1);
            var beginFinder = BoundFinder.CreateBoundFinder(boundsNodes.Select(n => n.Element("begin")).FirstOrDefault());
            var endFinder   = BoundFinder.CreateBoundFinder(boundsNodes.Select(n => n.Element("end")).FirstOrDefault());

            tempFilesManager       = createParams.TempFilesManager;
            fieldsProcessorFactory = createParams.FieldsProcessorFactory;
            regexFactory           = createParams.RegexFactory;
            traceSourceFactory     = createParams.TraceSourceFactory;
            fmtInfo = new Lazy <FormatInfo>(() =>
            {
                FieldsProcessor.IInitializationParams fieldsInitParams = fieldsProcessorFactory.CreateInitializationParams(
                    formatSpecificNode.Element("fields-config"), performChecks: true);
                MessagesReaderExtensions.XmlInitializationParams extensionsInitData = new MessagesReaderExtensions.XmlInitializationParams(
                    formatSpecificNode.Element("extensions"));
                DejitteringParams?dejitteringParams = DejitteringParams.FromConfigNode(
                    formatSpecificNode.Element("dejitter"));
                TextStreamPositioningParams textStreamPositioningParams = TextStreamPositioningParams.FromConfigNode(
                    formatSpecificNode);
                RotationParams rotationParams = RotationParams.FromConfigNode(
                    formatSpecificNode.Element("rotation"));
                FormatInfo.FormatFlags flags = FormatInfo.FormatFlags.None;
                if (formatSpecificNode.Element("plain-text-search-optimization").AttributeValue("allowed") == "yes")
                {
                    flags |= FormatInfo.FormatFlags.AllowPlainTextSearchOptimization;
                }
                return(new FormatInfo(
                           ReadRe(formatSpecificNode, "head-re", ReOptions.Multiline),
                           ReadRe(formatSpecificNode, "body-re", ReOptions.Singleline),
                           ReadParameter(formatSpecificNode, "encoding"),
                           fieldsInitParams,
                           extensionsInitData,
                           dejitteringParams,
                           textStreamPositioningParams,
                           flags,
                           rotationParams,
                           beginFinder,
                           endFinder
                           ));
            });
            uiKey = ReadParameter(formatSpecificNode, "ui-key");
        }
 public FormatInfo(
     LoadedRegex headRe, LoadedRegex bodyRe,
     string encoding, FieldsProcessor.InitializationParams fieldsParams,
     MessagesReaderExtensions.XmlInitializationParams extensionsInitData,
     DejitteringParams?dejitteringParams,
     TextStreamPositioningParams textStreamPositioningParams,
     FormatFlags flags,
     RotationParams rotationParams
     ) :
     base(extensionsInitData)
 {
     this.HeadRe   = headRe;
     this.BodyRe   = bodyRe;
     this.Encoding = encoding;
     this.FieldsProcessorParams       = fieldsParams;
     this.DejitteringParams           = dejitteringParams;
     this.TextStreamPositioningParams = textStreamPositioningParams;
     this.Flags          = flags;
     this.RotationParams = rotationParams;
 }
        public UserDefinedFormatFactory(UserDefinedFactoryParams createParams)
            : base(createParams)
        {
            var formatSpecificNode = createParams.FormatSpecificNode;

            ReadPatterns(formatSpecificNode, patterns);
            tempFilesManager = createParams.TempFilesManager;
            fmtInfo          = new Lazy <FormatInfo>(() =>
            {
                Type precompiledUserCode = ReadPrecompiledUserCode(createParams.RootNode);
                FieldsProcessor.InitializationParams fieldsInitParams = new FieldsProcessor.InitializationParams(
                    formatSpecificNode.Element("fields-config"), true, precompiledUserCode);
                MessagesReaderExtensions.XmlInitializationParams extensionsInitData = new MessagesReaderExtensions.XmlInitializationParams(
                    formatSpecificNode.Element("extensions"));
                DejitteringParams?dejitteringParams = DejitteringParams.FromConfigNode(
                    formatSpecificNode.Element("dejitter"));
                TextStreamPositioningParams textStreamPositioningParams = TextStreamPositioningParams.FromConfigNode(
                    formatSpecificNode);
                RotationParams rotationParams = RotationParams.FromConfigNode(
                    formatSpecificNode.Element("rotation"));
                FormatInfo.FormatFlags flags = FormatInfo.FormatFlags.None;
                if (formatSpecificNode.Element("plain-text-search-optimization").AttributeValue("allowed") == "yes")
                {
                    flags |= FormatInfo.FormatFlags.AllowPlainTextSearchOptimization;
                }
                return(new FormatInfo(
                           ReadRe(formatSpecificNode, "head-re", ReOptions.Multiline),
                           ReadRe(formatSpecificNode, "body-re", ReOptions.Singleline),
                           ReadParameter(formatSpecificNode, "encoding"),
                           fieldsInitParams,
                           extensionsInitData,
                           dejitteringParams,
                           textStreamPositioningParams,
                           flags,
                           rotationParams
                           ));
            });
            uiKey = ReadParameter(formatSpecificNode, "ui-key");
        }
Esempio n. 6
0
 internal void RotationParamChanged(RotationParams param, OpenMetaverse.Quaternion newValue)
 {
     // Update the active shadow copy.
     _props.ParamsRot[param] = newValue;
     _actor.WakeUp();
 }
Esempio n. 7
0
        /// <summary>
        /// Clamps a rotation param
        /// 
        /// WARNING: This code is almost always executed from outside the physics thread.
        /// </summary>
        /// <param name="param"></param>
        /// <param name="newValue"></param>
        /// <returns>clamped_newvalue</returns>
        internal static OpenMetaverse.Quaternion ClampRotationParam(RotationParams param, OpenMetaverse.Quaternion newValue)
        {
            if (float.IsNaN(newValue.X))    newValue.X = 0;
            if (float.IsNaN(newValue.Y))    newValue.Y = 0;
            if (float.IsNaN(newValue.Z))    newValue.Z = 0;
            if (float.IsNaN(newValue.W))    newValue.W = 0;

            switch (param)
            {
                case RotationParams.VehicleReferenceFrame:
                    newValue = OpenMetaverse.Quaternion.Normalize(newValue);
                    break;
            }

            return newValue;
        }
Esempio n. 8
0
        public override void SetVehicleRotationParam(RotationParams param, OpenMetaverse.Quaternion value)
        {
            _scene.QueueCommand(
                new Commands.GenericSyncCmd(this,
                       (PhysxScene scene) =>
                       {
                           value = Vehicle.VehicleDynamics.ClampRotationParam(param, value);
                           CheckCreateVehicleProperties();
                           _properties.VehicleProps.ParamsRot[param] = value;

                           CheckCreateVehicleDynamics();
                           _vehicleDynamics.RotationParamChanged(param, value);
                       }
                )
            );
        }