public void TestTwoTransforms() { this.Reset(); ActiveConfig.XmlConfig.Transforms.Add(new TypeConverterTransform() { ID = "test1" }); ActiveConfig.XmlConfig.Transforms.Add(new TypeConverterTransform() { ID = "test2" }); string transformString = "test1>>test2"; TransformParser t = new TransformParser(transformString); if (t.HasErrors) { foreach (TokenError e in t.Errors) { Debug.WriteLine("Error: " + e); } Assert.Fail("The tokenizer returned an unexpected error"); } CollectionAssert.AreEqual(t.Transforms.Select(u => u.ID).ToList(), new List <string>() { "test1", "test2" }); }
public TextureController(Separator root, Separator[] bones, TransformParser parser) { _root = root; _bones = bones; _parser = parser; if (parser == null) { _textureControl = null; return; } _transformHashtables = parser.getArrayOfTransformHashtables(); _textureControl = new TextureControl(parser.getArrayOfAllignmentSteps()); _fullWristControl = new FullWristControl(); _fullWristControl.setupControl(WristFilesystem.LongBoneNames, false); _mainControlPanel = new WristPanelLayoutControl(); _mainControlPanel.addControl(_textureControl); _mainControlPanel.addControl(_fullWristControl); _editableTransforms = parser.getArrayOfOptimizedBothTransforms(); setupListeners(); //set the current editable transform _textureControl_SelectedTransformChanged(); }
public void TestTwoTransformsWithInvalidOperator3() { this.Reset(); ActiveConfig.XmlConfig.Transforms.Add(new TypeConverterTransform() { ID = "test1" }); ActiveConfig.XmlConfig.Transforms.Add(new TypeConverterTransform() { ID = "test2" }); string transformString = "test1 test2"; TransformParser t = new TransformParser(transformString); foreach (TokenError e in t.Errors) { Debug.WriteLine("Error: " + e); } if (!t.HasErrors) { Assert.Fail("The tokenizer did not return an error"); } }
private void ValidateDeclaration() { if (this.textMarkerService == null) { return; } this.textMarkerService.Clear(); TransformParser t = new TransformParser(this.baseText); foreach (TokenError error in t.Errors) { this.DisplayValidationError(error.Description, error.ColumnNumber, error.LineNumber); } }
void _textureControl_SelectedTransformChanged() { int newIndex = _textureControl.selectedTransformIndex; //setup control for current transform.... if (String.IsNullOrEmpty(_editableTransforms[newIndex].boneName)) { _textureControl.clearEditableTransform(); } else { _textureControl.setEditableTransform(_editableTransforms[newIndex].CenterRotation, _editableTransforms[newIndex].Rotation, _editableTransforms[newIndex].Translation); } for (int i = 0; i < TextureSettings.ShortBNames.Length; i++) { //remove the old transform first if (_bones[i].hasTransform()) { _bones[i].removeTransform(); } //try and load transforms if (_transformHashtables[newIndex] != null && _transformHashtables[newIndex].ContainsKey(TextureSettings.TransformBNames[i])) { Transform tfrm = new Transform(); TransformParser.addTfmMatrixtoTransform((TransformMatrix)_transformHashtables[newIndex][TextureSettings.TransformBNames[i]], tfrm); //now add the new one _bones[i].addTransform(tfrm); } //check if this is the editable transform if (_editableTransforms[newIndex].boneName == TextureSettings.TransformBNames[i]) { _editableTransforms[newIndex].boneIndex = i; } } //reset the center of the centerball resetCenterball(); }
public void ParseIsSkippedIfModelIsMissing(TransformParser parser, ILogger logger, MigrationContext context, AzureIntegrationServicesModel model, Exception e) { "Given a model" .x(() => { model = new AzureIntegrationServicesModel(); }); "And a logger" .x(() => logger = new Mock <ILogger>().Object); "And a context" .x(() => context = new MigrationContext()); "And a parser" .x(() => parser = new TransformParser(model, context, logger)); "When parsing" .x(() => e = Record.Exception(() => parser.Parse())); "Then the code should not throw an exception" .x(() => e.Should().BeNull()); }
public void ConstructWithSuccess(IBizTalkParser parser, ILogger logger, IApplicationModel model, MigrationContext context, Exception e) { "Given a parser" .x(() => parser.Should().BeNull()); "And a logger" .x(() => logger = new Mock <ILogger>().Object); "And a model" .x(() => model = new AzureIntegrationServicesModel()); "And a context" .x(() => context = new MigrationContext()); "When constructing" .x(() => e = Record.Exception(() => parser = new TransformParser(model, context, logger))); "Then the parser constructor should succeed" .x(() => { e.Should().BeNull(); parser.Should().NotBeNull(); }); }
private CT run() { _bones = new Separator[TextureSettings.ShortBNames.Length]; _subjectPath = textBoxSubjectDirectory.Text.Trim(); //TODO: Figure out the image type.... parseCropValues(); CT mri; //check if we have this MRI saved!!!, dirty cache //TODO: Check if the crop values are compatable!!! if (false && _LastImagePath.ToLower().Equals(textBoxImageFile.Text.Trim().ToLower())) { mri = _LastMRI; } else { //pass crop values now, for faster read :) mri = CT.SmartLoad(textBoxImageFile.Text); mri.setCrop(_minX, _maxX, _minY, _maxY, _minZ, _maxZ); if (mri.Layers == 1) //the default case, we want to load the only layer, echo 0 { mri.loadImageData(); } else //for other cases, we should try and load layer 5, the layer used by the Wrist Registration Code. { mri.loadImageData(5); //TODO: Option for loading different image layers, check for at least 6, etc. } _LastMRI = mri; _LastImagePath = textBoxImageFile.Text.Trim(); //save filename, to use in cache } Byte[][] voxels = mri.getCroppedRegionScaledToBytes((mri.Layers == 1) ? 0 : 5); int min = 1000; int max = -10; for (int i = 0; i < voxels[0].Length; i++) { if (voxels[0][i] < min) { min = voxels[0][i]; } if (voxels[0][i] > max) { max = voxels[0][i]; } } Hashtable transforms = null; _transformParser = null; if (File.Exists(textBoxKinematicFilename.Text)) { switch (_kinematicFileType) { case KinematicFileTypes.AUTO_REGISTR: _transformParser = new TransformParser(textBoxKinematicFilename.Text); transforms = _transformParser.getFinalTransforms(); break; case KinematicFileTypes.OUT_RT: throw new NotImplementedException("Can't yet read OutRT files"); case KinematicFileTypes.MOTION: throw new NotImplementedException("Can't yet read Motion files"); } } //lets load each bone for (int i = 0; i < TextureSettings.ShortBNames.Length; i++) { double[][] pts = DatParser.parseDatFile(getBoneFileName(TextureSettings.ShortBNames[i])); _bones[i] = Texture.createPointsFileObject(pts, TextureSettings.BoneColors[i]); //try and load transforms if (transforms != null && transforms.ContainsKey(TextureSettings.TransformBNames[i])) { Transform tfrm = new Transform(); TransformParser.addTfmMatrixtoTransform((TransformMatrix)transforms[TextureSettings.TransformBNames[i]], tfrm); _bones[i].addTransform(tfrm); } _root.addChild(_bones[i]); } _texture = new Texture(_side == WristFilesystem.Sides.LEFT ? Texture.Sides.LEFT : Texture.Sides.RIGHT, mri.Cropped_SizeX, mri.Cropped_SizeY, mri.Cropped_SizeZ, mri.voxelSizeX, mri.voxelSizeY, mri.voxelSizeZ); Separator plane1 = _texture.makeDragerAndTexture(voxels, Texture.Planes.XY_PLANE); Separator plane2 = _texture.makeDragerAndTexture(voxels, Texture.Planes.YZ_PLANE); _root.addChild(plane1); _root.addChild(plane2); _root.addChild(_texture.createKeyboardCallbackObject(_viewer.Parent_HWND)); //returning mri in order to pass it into the texture controller, to contrust a texture for volume rendering return(mri); }
public void ParseFailsWhenTransformDefinitionIsMissing(TransformParser parser, ILogger logger, MigrationContext context, AzureIntegrationServicesModel model, ParsedBizTalkApplicationGroup group, Exception e) { var missingResourceDefinitionKey = "missingResourceDefinitionKey"; "Given a model with a transform and missing its definition" .x(() => { model = new AzureIntegrationServicesModel(); group = new ParsedBizTalkApplicationGroup(); model.MigrationSource.MigrationSourceModel = group; var msiContainer = new ResourceContainer() { Key = "TestMsi.Key", Name = "TestMsi", Type = ModelConstants.ResourceContainerMsi, ContainerLocation = @"C:\Test\Test.msi" }; model.MigrationSource.ResourceContainers.Add(msiContainer); var cabContainer = new ResourceContainer() { Key = "TestCab.Key", Name = "TestCab", Type = ModelConstants.ResourceContainerCab, ContainerLocation = @"C:\Test\Test.CAB" }; msiContainer.ResourceContainers.Add(cabContainer); var asmContainer = new ResourceContainer() { Key = "TestAssembly.Key", Name = "TestAssembly", Type = ModelConstants.ResourceContainerAssembly, ContainerLocation = @"C:\Test\Test.dll" }; cabContainer.ResourceContainers.Add(asmContainer); var transformResourceDefinition = new ResourceDefinition() { Key = "transformDefinitionKey", Name = "transformName", Type = ModelConstants.ResourceDefinitionMap }; asmContainer.ResourceDefinitions.Add(transformResourceDefinition); var application = new BizTalkApplication() { Name = "ApplicationOne" }; var transform = new Types.Entities.Transform { Name = "transformName", ResourceContainerKey = asmContainer.Key, ResourceDefinitionKey = missingResourceDefinitionKey }; application.Transforms.Add(transform); group.Applications.Add( new ParsedBizTalkApplication { Application = application }); }); "And a logger" .x(() => logger = new Mock <ILogger>().Object); "And a context" .x(() => context = new MigrationContext()); "And a parser" .x(() => parser = new TransformParser(model, context, logger)); "When parsing" .x(() => e = Record.Exception(() => parser.Parse())); "Then the code should not throw an exception" .x(() => e.Should().BeNull()); "And there should be an error logged" .x(() => { context.Errors.Should().NotBeNull(); context.Errors.Should().HaveCount(1); context.Errors[0].Message.Should().Contain(missingResourceDefinitionKey); context.Errors[0].Message.Should().Contain(ModelConstants.ResourceDefinitionMap); }); }
public void ParseTransformWithSuccess(TransformParser parser, ILogger logger, MigrationContext context, AzureIntegrationServicesModel model, ParsedBizTalkApplicationGroup group, Exception e) { "Given a model with a transform" .x(() => { model = new AzureIntegrationServicesModel(); group = new ParsedBizTalkApplicationGroup(); model.MigrationSource.MigrationSourceModel = group; var msiContainer = new ResourceContainer() { Key = "TestMsi.Key", Name = "TestMsi", Type = ModelConstants.ResourceContainerMsi, ContainerLocation = @"C:\Test\Test.msi" }; model.MigrationSource.ResourceContainers.Add(msiContainer); var cabContainer = new ResourceContainer() { Key = "TestCab.Key", Name = "TestCab", Type = ModelConstants.ResourceContainerCab, ContainerLocation = @"C:\Test\Test.CAB" }; msiContainer.ResourceContainers.Add(cabContainer); var asmContainer = new ResourceContainer() { Key = "TestAssembly.Key", Name = "TestAssembly", Type = ModelConstants.ResourceContainerAssembly, ContainerLocation = @"C:\Test\Test.dll" }; cabContainer.ResourceContainers.Add(asmContainer); var transformResourceDefinition = new ResourceDefinition() { Key = "transformDefinitionKey", Name = "transformName", Type = ModelConstants.ResourceDefinitionMap }; asmContainer.ResourceDefinitions.Add(transformResourceDefinition); var application = new BizTalkApplication() { Name = "ApplicationOne" }; var transform = new Types.Entities.Transform { Name = "transformName", ResourceContainerKey = asmContainer.Key, ResourceDefinitionKey = transformResourceDefinition.Key }; application.Transforms.Add(transform); group.Applications.Add( new ParsedBizTalkApplication { Application = application }); }); "And a logger" .x(() => logger = new Mock <ILogger>().Object); "And a context" .x(() => context = new MigrationContext()); "And a parser" .x(() => parser = new TransformParser(model, context, logger)); "When parsing" .x(() => e = Record.Exception(() => parser.Parse())); "Then the code should not throw an exception" .x(() => e.Should().BeNull()); "And the resources should be set." .x(() => { var appModel = (AzureIntegrationServicesModel)model; // Check the transform resource has been created. appModel.MigrationSource.ResourceContainers[0].ResourceContainers[0].ResourceContainers[0].ResourceDefinitions[0].Resources.Should().NotBeNullOrEmpty(); appModel.MigrationSource.ResourceContainers[0].ResourceContainers[0].ResourceContainers[0].ResourceDefinitions[0].Resources.Should().HaveCount(1); var transformResourceDefinition = appModel.MigrationSource.ResourceContainers[0].ResourceContainers[0].ResourceContainers[0].ResourceDefinitions[0]; var transformResource = transformResourceDefinition.Resources[0]; // Get the transform. var transform = group.Applications[0].Application.Transforms[0]; // Validate the transform resource. transformResource.Should().NotBeNull(); transformResource.Key.Should().Be(transformResourceDefinition.Key + ":map"); transformResource.Name.Should().Be(transform.Name); transformResource.Type.Should().Be(ModelConstants.ResourceMap); transformResource.Description.Should().Be(transform.FullName); transform.Resource.Should().Be(transformResource); // The pointer to the resource should be set. transformResource.ParentRefId.Should().Be(transformResourceDefinition.RefId); // The parent ref ID should be set. transformResource.SourceObject.Should().Be(transform); // The resource should have a pointer to the source object. }); }
CT mri;//for getting the texture info public TextureController(Separator root, Separator[] bones, TransformParser parser, Boolean IsVolumeRenderEnabled) { isVolumeRenderEnabled = IsVolumeRenderEnabled; _root = root; _bones = bones; _parser = parser; currTranslation = new float[3]; currRotation = new float[3]; currTranslation[0] = 0; currRotation[0] = 0; currTranslation[1] = 0; currRotation[1] = 0; currTranslation[2] = 0; currRotation[2] = 0; if (parser == null) { _textureControl = null; return; } _transformHashtables = parser.getArrayOfTransformHashtables(); _textureControl = new TextureControl(parser.getArrayOfAllignmentSteps()); if (!isVolumeRenderEnabled) { _textureControl.disableVolumeItems(); } _fullWristControl = new FullWristControl(); _fullWristControl.setupControl(WristFilesystem.LongBoneNames, false); _mainControlPanel = new WristPanelLayoutControl(); _mainControlPanel.addControl(_textureControl); _mainControlPanel.addControl(_fullWristControl); _editableTransforms = parser.getArrayOfOptimizedBothTransforms(); setupListeners(); //set the current editable transform _textureControl_SelectedTransformChanged(); ///////////////////////////////////// float[] center = _textureControl.getCurrentCenterOfRotation(); float[] translate = _textureControl.getCurrentTranslation(); float[] rotation = _textureControl.getCurrentRotation(); currTranslation[0] = translate[0]; currRotation[0] = rotation[0]; currTranslation[1] = translate[1]; currRotation[1] = rotation[1]; currTranslation[2] = translate[2]; currRotation[2] = rotation[2]; _rootSeparator = new Separator(); _rootSeparator.reference(); root.addChild(_rootSeparator); _centerballVisible = true; Scale myScale = new Scale(); _centerballDragger = new CenterballDragger(); //get the center of rotation from the form elements center[0] += translate[0]; center[1] += translate[1]; center[2] += translate[2]; _rootSeparator.addNode(myScale); scaleValues = new float[3]; scaleValues[0] = scaleValues[1] = scaleValues[2] = 10; myScale.setScaleFactor(scaleValues[0], scaleValues[1], scaleValues[2]); _centerballDragger.setRotation(rotation[0], rotation[1], rotation[2]); _centerballDragger.setTranslation(center[0] / scaleValues[0], center[1] / scaleValues[1], center[2] / scaleValues[2]); _rootSeparator.addChild(_centerballDragger); beginningTranslation = _textureControl.getCurrentTranslation(); CenterballDragger.delFunc d = new CenterballDragger.delFunc(_textureControl_EditableTransformChangedFromCenterball); _centerballDragger.addCB(d); wasRotated(); }
public static TransformOperations Parse(string s) { return(TransformParser.Parse(s)); }