public override void NewObjectSetDefaultConfiguration(bool createdFromNewObjectWindow = false) { base.NewObjectSetDefaultConfiguration(createdFromNewObjectWindow); //create surface var meshInSpace = CreateComponent <Component_MeshInSpace>(enabled: false); meshInSpace.Name = "Surface"; meshInSpace.CanBeSelected = false; var mesh = meshInSpace.CreateComponent <Component_Mesh>(); mesh.Name = "Mesh"; meshInSpace.Mesh = ReferenceUtility.MakeThisReference(meshInSpace, mesh); var geometry = mesh.CreateComponent <Component_MeshGeometry_Plane>(); geometry.Name = "Mesh Geometry"; geometry.Material = ReferenceUtility.MakeThisReference(geometry, this, "MaterialSurface"); var transformOffset = meshInSpace.CreateComponent <Component_TransformOffset>(); transformOffset.Name = "Attach Transform Offset"; transformOffset.PositionOffset = new Vector3(0, 0, 0.5); transformOffset.Source = ReferenceUtility.MakeThisReference(transformOffset, this, "Transform"); meshInSpace.Transform = ReferenceUtility.MakeThisReference(meshInSpace, transformOffset, "Result"); meshInSpace.Enabled = true; UpdateSettings(); }
public void Init() { var sample = CreateComponent <Component_ShaderTextureSample>(); sample.TextureType = Component_ShaderTextureSample.TextureTypeEnum.Mask; Opacity = ReferenceUtility.MakeThisReference(this, sample, "R"); }
public void UpdateOutput() { var groupOfObjects = GetOrCreateGroupOfObjects(); if (groupOfObjects != null) { var wasEnabled = groupOfObjects.Enabled; if (wasEnabled) { groupOfObjects.Enabled = false; } Component_GroupOfObjects.Object[] objects; var surface = Surface.Value; if (surface != null) { var element = groupOfObjects.GetComponent <Component_GroupOfObjectsElement_Surface>(); if (element == null) { element = groupOfObjects.CreateComponent <Component_GroupOfObjectsElement_Surface>(); element.Name = "Surface"; //!!!!? element.AutoAlign = false; element.Surface = ReferenceUtility.MakeThisReference(element, this, "Surface"); } objects = UpdateOutputDefault(surface, groupOfObjects); } else { objects = new Component_GroupOfObjects.Object[0]; } OnUpdateOutput(ref objects); UpdateOutputEvent?.Invoke(this, ref objects); groupOfObjects.ObjectsSet(objects); updatedForPointPositions = GetPointPositions(); if (wasEnabled) { groupOfObjects.Enabled = true; } } }
public override void NewObjectSetDefaultConfiguration(bool createdFromNewObjectWindow = false) { if (Components.Count == 0) { //Mesh { var mesh = CreateComponent <Component_Mesh>(); mesh.Name = "Mesh"; Mesh = ReferenceUtility.MakeThisReference(this, mesh); var geometry = mesh.CreateComponent <Component_MeshGeometry_Box>(); geometry.Name = "Mesh Geometry"; geometry.Dimensions = new Vector3(0.3, 0.3, 0.3); geometry.Material = ReferenceUtility.MakeReference("Base\\Materials\\White.material"); } } }
public override void NewObjectSetDefaultConfiguration(bool createdFromNewObjectWindow = false) { if (Components.Count == 0) { //Mesh { var mesh = CreateComponent <Component_Mesh>(); mesh.Name = "Mesh"; Mesh = ReferenceUtility.MakeThisReference(this, mesh); var geometry = mesh.CreateComponent <Component_MeshGeometry_Pipe>(); geometry.Name = "Mesh Geometry"; geometry.Axis = 0; geometry.Radius = 0.04; geometry.Thickness = 0.01; geometry.Material = ReferenceUtility.MakeReference("Base\\Materials\\White.material"); } //Stock { var meshInSpace = CreateComponent <Component_MeshInSpace>(); meshInSpace.Name = "Stock"; var mesh = meshInSpace.CreateComponent <Component_Mesh>(); mesh.Name = "Mesh"; meshInSpace.Mesh = ReferenceUtility.MakeThisReference(this, mesh); var geometry = mesh.CreateComponent <Component_MeshGeometry_Box>(); geometry.Name = "Mesh Geometry"; geometry.Dimensions = new Vector3(0.4, 0.05, 0.15); geometry.Material = ReferenceUtility.MakeReference("Base\\Materials\\White.material"); meshInSpace.Mesh = ReferenceUtility.MakeThisReference(meshInSpace, mesh); var transformOffset = meshInSpace.CreateComponent <Component_TransformOffset>(); transformOffset.Name = "Attach Transform Offset"; transformOffset.PositionOffset = new Vector3(-0.22, 0, -0.1); transformOffset.Source = ReferenceUtility.MakeThisReference(transformOffset, this, "Transform"); meshInSpace.Transform = ReferenceUtility.MakeThisReference(meshInSpace, transformOffset, "Result"); } } }
void NewObjectCreateShaderGraph() { var graph = CreateComponent <Component_FlowGraph>(); graph.Name = "Shader graph"; graph.Specialization = ReferenceUtility.MakeReference( MetadataManager.GetTypeOfNetType(typeof(Component_FlowGraphSpecialization_Shader)).Name + "|Instance"); var node = graph.CreateComponent <Component_FlowGraphNode>(); node.Name = "Node " + Name; node.Position = new Vector2I(10, -7); node.ControlledObject = ReferenceUtility.MakeThisReference(node, this); if (Parent == null) { var toSelect = new Component[] { this, graph }; EditorDocumentConfiguration = KryptonConfigGenerator.CreateEditorDocumentXmlConfiguration(toSelect, graph); } }
//protected virtual bool OnTextTypingFilter( EKeys key, char character, string newText ) //{ // if( TextTypingFilter != null ) // { // if( !TextTypingFilter( this, key, character, newText ) ) // return false; // } // return true; //} public override void NewObjectSetDefaultConfiguration(bool createdFromNewObjectWindow = false) { base.NewObjectSetDefaultConfiguration(createdFromNewObjectWindow); var obj = CreateComponent <UIText>(); obj.Name = "Text"; obj.Text = ReferenceUtility.MakeThisReference(obj, this, "DisplayText"); //"Text" ); obj.TextHorizontalAlignment = EHorizontalAlignment.Left; //obj.TextHorizontalAlignment = ReferenceUtility.MakeThisReference( obj, this, "TextHorizontalAlignment" ); obj.Size = new UIMeasureValueVector2(UIMeasure.Parent, 1, 1); obj.CanBeSelected = false; obj.HorizontalAlignment = EHorizontalAlignment.Stretch; obj.VerticalAlignment = EVerticalAlignment.Stretch; //obj.Offset = new UIMeasureValueVector2( UIMeasure.Units, 4, 0 ); obj.ClipRectangle = true; //UIStyle.EditTextMargin obj.Margin = new UIMeasureValueRectangle(UIMeasure.Units, 4, 2, 4, 2); //obj.Margin = new UIMeasureValueRectangle( UIMeasure.Units, 2, 2, 2, 2 ); }
//public override void UpdateParentVirtualMembers( ref List<Metadata.Member> members, ref Dictionary<string, Metadata.Member> memberBySignature ) //{ // base.UpdateParentVirtualMembers( ref members, ref memberBySignature ); // xx xx; // //create // if( createdMethod == null && Parent != null ) // { // createdMethod = CreateMethod(); // xx xx; // //!!!! // //Body.Value?.NeedUpdate(); // } // xx xx; // //add to parent // if( createdMethod != null ) // { // if( members == null ) // { // members = new List<Metadata.Member>(); // memberBySignature = new Dictionary<string, Metadata.Member>(); // } // members.Add( createdMethod ); // memberBySignature[ createdMethod.Signature ] = createdMethod; // } //} //public override Metadata.Member CreatedMember //{ // get // { // xx xx; // return createdMethod; // } //} void NewObjectCreateFlowGraph() { var graph = CreateComponent <Component_FlowGraph>(); graph.Name = "Flow Graph"; Component_MethodBody body; { var node = graph.CreateComponent <Component_FlowGraphNode>(); body = node.CreateComponent <Component_MethodBody>(); body.Name = body.BaseType.GetUserFriendlyNameForInstance(); node.Name = "Node " + body.Name; node.Position = new Vector2I(-25, -7); node.ControlledObject = ReferenceUtility.MakeThisReference(node, body); } Component_MethodBodyEnd bodyEnd; { var node = graph.CreateComponent <Component_FlowGraphNode>(); bodyEnd = node.CreateComponent <Component_MethodBodyEnd>(); bodyEnd.Name = bodyEnd.BaseType.GetUserFriendlyNameForInstance(); node.Name = "Node " + bodyEnd.Name; node.Position = new Vector2I(15, -7); node.ControlledObject = ReferenceUtility.MakeThisReference(node, bodyEnd); } Body = ReferenceUtility.MakeThisReference(this, body); body.Definition = ReferenceUtility.MakeThisReference(body, this); body.BodyEnd = ReferenceUtility.MakeThisReference(body, bodyEnd); bodyEnd.Body = ReferenceUtility.MakeThisReference(bodyEnd, body); //!!!!выделять, открывать созданные }
public override void NewObjectSetDefaultConfiguration(bool createdFromNewObjectWindow = false) { base.NewObjectSetDefaultConfiguration(createdFromNewObjectWindow); //Mesh var mesh = CreateComponent <Component_Mesh>(); mesh.Name = "Mesh"; Mesh = ReferenceUtility.MakeThisReference(this, mesh); var geometry = mesh.CreateComponent <Component_MeshGeometry_Plane>(); geometry.Name = "Mesh Geometry"; geometry.Axis = 0; geometry.Dimensions = new Vector2(1.333, 1); geometry.UVTilesInTotal = new Vector2(1, 1); //Material var material = CreateComponent <Component_Material>(); material.Name = "Material"; material.BaseColor = ReferenceUtility.MakeReference("this:$Shader graph\\$Node Shader Texture Sample 1\\$Shader Texture Sample\\RGBA"); material.Emissive = ReferenceUtility.MakeReference("this:$Shader graph\\$Node Invoke Member 1\\$Invoke Member\\__parameter_ReturnValue"); var flowGraph = material.CreateComponent <Component_FlowGraph>(); flowGraph.Name = "Shader graph"; flowGraph.Specialization = ReferenceUtility.MakeReference("NeoAxis.Component_FlowGraphSpecialization_Shader|Instance"); { var flowGraphNode = flowGraph.CreateComponent <Component_FlowGraphNode>(); flowGraphNode.Name = "Node Material"; flowGraphNode.Position = new Vector2I(10, -7); flowGraphNode.ControlledObject = ReferenceUtility.MakeReference("this:..\\.."); } { var flowGraphNode = flowGraph.CreateComponent <Component_FlowGraphNode>(); flowGraphNode.Name = "Node Shader Texture Sample 1"; flowGraphNode.Position = new Vector2I(-20, -9); flowGraphNode.ControlledObject = ReferenceUtility.MakeReference("this:$Shader Texture Sample"); var textureSample = flowGraphNode.CreateComponent <Component_ShaderTextureSample>(); textureSample.Name = "Shader Texture Sample"; textureSample.Texture = ReferenceUtility.MakeReference("this:..\\..\\..\\..\\CreatedImage"); } { var flowGraphNode = flowGraph.CreateComponent <Component_FlowGraphNode>(); flowGraphNode.Name = "Node Invoke Member 1"; flowGraphNode.Position = new Vector2I(-5, -2); flowGraphNode.ControlledObject = ReferenceUtility.MakeReference("this:$Invoke Member"); var invokeMember = flowGraphNode.CreateComponent <Component_InvokeMember>(); invokeMember.Name = "Invoke Member"; invokeMember.Member = ReferenceUtility.MakeReference("NeoAxis.ColorValue|method:op_Multiply(NeoAxis.ColorValue,System.Single)"); invokeMember.SetPropertyValue("property:__parameter_S", new Reference <float>(0.4f)); invokeMember.SetPropertyValue("property:__parameter_V", ReferenceUtility.MakeReference("this:..\\..\\$Node Shader Texture Sample 1\\$Shader Texture Sample\\RGBA")); } geometry.Material = ReferenceUtility.MakeThisReference(geometry, material); //Camera var camera = CreateComponent <Component_Camera>(); camera.Name = "Camera"; camera.Transform = ReferenceUtility.MakeReference("this:$Attach Transform Offset\\Result"); var transformOffet = camera.CreateComponent <Component_TransformOffset>(); transformOffet.Name = "Attach Transform Offset"; transformOffet.PositionOffset = new Vector3(0, 0, 0.55); transformOffet.Source = ReferenceUtility.MakeReference("this:..\\..\\Transform"); Camera = ReferenceUtility.MakeReference("this:$Camera"); }
public override void NewObjectSetDefaultConfiguration(bool createdFromNewObjectWindow = false) { base.NewObjectSetDefaultConfiguration(createdFromNewObjectWindow); { var obj = CreateComponent <UIEdit>(); obj.Name = "Text Control"; obj.Text = ReferenceUtility.MakeThisReference(obj, this, "DisplayText"); //obj.TextHorizontalAlignment = EHorizontalAlignment.Left; obj.Size = new UIMeasureValueVector2(UIMeasure.Parent, 1, 1); obj.CanBeSelected = false; obj.HorizontalAlignment = EHorizontalAlignment.Stretch; obj.VerticalAlignment = EVerticalAlignment.Stretch; obj.ReadOnly = true; //obj.Offset = new UIMeasureValueVector2( UIMeasure.Units, 4, 0 ); //obj.ClipRectangle = true; //UIStyle.EditTextMargin //obj.Margin = new UIMeasureValueRectangle( UIMeasure.Units, 4, 2, 4, 2 ); //obj.Margin = new UIMeasureValueRectangle( UIMeasure.Units, 2, 2, 2, 2 ); obj.NewObjectSetDefaultConfiguration(); obj.MouseDown += TextControl_MouseDown; obj.Touch += TextControl_Touch; //create down button { var image = obj.CreateComponent <UIImage>(); image.SourceImage = new Reference <Component_Image>(null, @"Base\UI\Images\ComboBoxButton.png"); image.HorizontalAlignment = EHorizontalAlignment.Right; image.Size = new UIMeasureValueVector2(UIMeasure.Screen, new Vector2(0, 0)); image.CanBeSelected = false; } } //{ // var obj = CreateComponent<UIButton>(); // obj.Name = "Down Button"; // //is not work. strange // //obj.Text = ReferenceUtility.MakeThisReference( obj, this, "DisplayText" );//"Text" ); // //obj.Margin = new UIMeasureValueRectangle(UIMeasure.Parent, // //obj.Size = new UIMeasureValueVector2( UIMeasure.Parent, 1, 1 ); // obj.CanBeSelected = false; // //obj.HorizontalAlignment = EHorizontalAlignment.Stretch; // //obj.VerticalAlignment = EVerticalAlignment.Stretch; // //obj.Offset = new UIMeasureValueVector2( UIMeasure.Units, 4, 0 ); // //UIStyle.EditTextMargin // //obj.Margin = new UIMeasureValueRectangle( UIMeasure.Units, 4, 2, 4, 2 ); // //obj.Margin = new UIMeasureValueRectangle( UIMeasure.Units, 2, 2, 2, 2 ); //} { var obj = CreateComponent <UIList>(); obj.Name = "Down List"; obj.Margin = new UIMeasureValueRectangle(UIMeasure.Parent, 0, 1, 1, 1); obj.Size = new UIMeasureValueVector2(UIMeasure.Screen, new Vector2(0, 0)); obj.CanBeSelected = false; obj.Visible = false; obj.TopMost = true; //obj.ZOrder = 1; obj.NewObjectSetDefaultConfiguration(); obj.SelectedIndexChanged += List_SelectedIndexChanged; //obj.MouseDown += List_MouseDown; //control to hide the list when clicked outside control { var obj2 = obj.CreateComponent <UIControl>(); obj2.Name = "Cover"; obj2.CanBeSelected = false; obj2.Margin = new UIMeasureValueRectangle(UIMeasure.Screen, 0, 0, 1, 1); obj2.Size = new UIMeasureValueVector2(UIMeasure.Screen, 1, 1); obj2.MouseDown += ListCover_MouseDown; obj2.Touch += ListCover_Touch; } } }
public override void NewObjectSetDefaultConfiguration(bool createdFromNewObjectWindow = false) { if (Components.Count == 0) { Color = new ColorValue(0.6784314, 0.6784314, 0.6784314); //Mesh { var mesh = CreateComponent <Component_Mesh>(); mesh.Name = "Mesh"; Mesh = ReferenceUtility.MakeThisReference(this, mesh); var geometry = mesh.CreateComponent <Component_MeshGeometry_Box>(); geometry.Name = "Mesh Geometry"; geometry.Dimensions = new Vector3(0.05, 0.3, 0.3); geometry.Material = ReferenceUtility.MakeReference("Base\\Materials\\White.material"); } //Button { var meshInSpace = CreateComponent <Component_MeshInSpace>(); meshInSpace.Name = "Button"; var mesh = meshInSpace.CreateComponent <Component_Mesh>(); mesh.Name = "Mesh"; meshInSpace.Mesh = ReferenceUtility.MakeThisReference(this, mesh); var geometry = mesh.CreateComponent <Component_MeshGeometry_Box>(); geometry.Name = "Mesh Geometry"; geometry.Dimensions = new Vector3(0.05, 0.15, 0.15); geometry.Material = ReferenceUtility.MakeReference("Base\\Materials\\White.material"); meshInSpace.Mesh = ReferenceUtility.MakeThisReference(meshInSpace, mesh); var transformOffset = meshInSpace.CreateComponent <Component_TransformOffset>(); transformOffset.Name = "Attach Transform Offset"; transformOffset.PositionOffset = new Vector3(0.05, 0, 0); transformOffset.Source = ReferenceUtility.MakeThisReference(transformOffset, this, "Transform"); meshInSpace.Transform = ReferenceUtility.MakeThisReference(meshInSpace, transformOffset, "Result"); } //Indicator { var meshInSpace = CreateComponent <Component_MeshInSpace>(); meshInSpace.Name = "Indicator"; meshInSpace.Color = new ColorValue(0, 1, 0); var mesh = meshInSpace.CreateComponent <Component_Mesh>(); mesh.Name = "Mesh"; meshInSpace.Mesh = ReferenceUtility.MakeThisReference(this, mesh); var geometry = mesh.CreateComponent <Component_MeshGeometry_Cylinder>(); geometry.Name = "Mesh Geometry"; geometry.Axis = 0; geometry.Radius = 0.02; geometry.Height = 0.02; geometry.Segments = 16; geometry.Material = ReferenceUtility.MakeReference("Base\\Materials\\White.material"); meshInSpace.Mesh = ReferenceUtility.MakeThisReference(meshInSpace, mesh); var transformOffset = meshInSpace.CreateComponent <Component_TransformOffset>(); transformOffset.Name = "Attach Transform Offset"; transformOffset.PositionOffset = new Vector3(0.03, 0, 0.12); transformOffset.Source = ReferenceUtility.MakeThisReference(transformOffset, this, "Transform"); meshInSpace.Transform = ReferenceUtility.MakeThisReference(meshInSpace, transformOffset, "Result"); } //C# Script { var script = CreateComponent <Component_CSharpScript>(); script.Name = "C# Script"; script.Code = "public void InteractiveObjectButton_UpdateEvent(NeoAxis.Component sender, float delta)\r\n{\r\n\tvar _this = sender as Component_ButtonInSpace;\r\n\tif (_this != null)\r\n\t{\r\n\t\tvar indicator = _this.GetComponent(\"Indicator\") as Component_MeshInSpace;\r\n\t\tif (indicator != null)\r\n\t\t\tindicator.Color = _this.Activated ? new ColorValue(0, 1, 0) : new ColorValue(0.5, 0.5, 0.5);\r\n\r\n\t\tvar buttonOffset = _this.Components.GetByPath(\"Button\\\\Attach Transform Offset\") as Component_TransformOffset;\r\n\t\tif (buttonOffset != null)\r\n\t\t{\r\n\t\t\tvar offsetPushed = 0.01;\r\n\t\t\tvar offsetDefault = 0.05;\r\n\r\n\t\t\tvar coef = 0.0;\r\n\t\t\tif (_this.Clicking && _this.ClickingTotalTime != 0)\r\n\t\t\t{\r\n\t\t\t\tvar timeFactor = MathEx.Saturate(_this.ClickingCurrentTime / _this.ClickingTotalTime);\r\n\r\n\t\t\t\tif(timeFactor < 0.5)\r\n\t\t\t\t\tcoef = timeFactor * 2;\r\n\t\t\t\telse\r\n\t\t\t\t\tcoef = (1.0f - timeFactor) * 2;\r\n\t\t\t}\r\n\r\n\t\t\tvar offset = MathEx.Lerp(offsetDefault, offsetPushed, coef);\r\n\t\t\tbuttonOffset.PositionOffset = new Vector3(offset, 0, 0);\r\n\t\t}\r\n\t}\r\n}"; var handler = script.CreateComponent <Component_EventHandler>(); handler.Name = "Event Handler UpdateEvent"; handler.WhenEnable = Component_EventHandler.WhenEnableEnum.Editor | Component_EventHandler.WhenEnableEnum.Simulation | Component_EventHandler.WhenEnableEnum.Instance; handler.Event = ReferenceUtility.MakeReference("this:..\\..\\event:UpdateEvent"); handler.HandlerMethod = ReferenceUtility.MakeReference("this:..\\method:InteractiveObjectButton_UpdateEvent(NeoAxis.Component,System.Single)"); } } }
public override void NewObjectSetDefaultConfiguration(bool createdFromNewObjectWindow = false) { if (Components.Count == 0) { Color = new ColorValue(0.6784314, 0.6784314, 0.6784314); //Mesh { var mesh = CreateComponent <Component_Mesh>(); mesh.Name = "Mesh"; Mesh = ReferenceUtility.MakeThisReference(this, mesh); var geometry = mesh.CreateComponent <Component_MeshGeometry_Box>(); geometry.Name = "Mesh Geometry"; geometry.Dimensions = new Vector3(0.05, 0.3, 0.3); geometry.Material = ReferenceUtility.MakeReference("Base\\Materials\\White.material"); } //Button { var meshInSpace = CreateComponent <Component_MeshInSpace>(); meshInSpace.Name = "Button"; var mesh = meshInSpace.CreateComponent <Component_Mesh>(); mesh.Name = "Mesh"; meshInSpace.Mesh = ReferenceUtility.MakeThisReference(this, mesh); var geometry = mesh.CreateComponent <Component_MeshGeometry_Cylinder>(); geometry.Name = "Mesh Geometry"; geometry.Axis = 0; geometry.Radius = 0.08; geometry.Height = 0.08; geometry.Material = ReferenceUtility.MakeReference("Base\\Materials\\White.material"); meshInSpace.Mesh = ReferenceUtility.MakeThisReference(meshInSpace, mesh); var transformOffset = meshInSpace.CreateComponent <Component_TransformOffset>(); transformOffset.Name = "Attach Transform Offset"; transformOffset.PositionOffset = new Vector3(0.05, 0, 0); transformOffset.Source = ReferenceUtility.MakeThisReference(transformOffset, this, "Transform"); meshInSpace.Transform = ReferenceUtility.MakeThisReference(meshInSpace, transformOffset, "Result"); } //Indicator Min { var meshInSpace = CreateComponent <Component_MeshInSpace>(); meshInSpace.Name = "Indicator Min"; meshInSpace.Color = new ColorValue(1, 0, 0); var mesh = meshInSpace.CreateComponent <Component_Mesh>(); mesh.Name = "Mesh"; meshInSpace.Mesh = ReferenceUtility.MakeThisReference(this, mesh); var geometry = mesh.CreateComponent <Component_MeshGeometry_Cylinder>(); geometry.Name = "Mesh Geometry"; geometry.Axis = 0; geometry.Radius = 0.02; geometry.Height = 0.02; geometry.Segments = 16; geometry.Material = ReferenceUtility.MakeReference("Base\\Materials\\White.material"); meshInSpace.Mesh = ReferenceUtility.MakeThisReference(meshInSpace, mesh); var transformOffset = meshInSpace.CreateComponent <Component_TransformOffset>(); transformOffset.Name = "Attach Transform Offset"; transformOffset.PositionOffset = new Vector3(0.03, -0.11, 0.11); transformOffset.Source = ReferenceUtility.MakeThisReference(transformOffset, this, "Transform"); meshInSpace.Transform = ReferenceUtility.MakeThisReference(meshInSpace, transformOffset, "Result"); } //Indicator Max { var meshInSpace = CreateComponent <Component_MeshInSpace>(); meshInSpace.Name = "Indicator Max"; meshInSpace.Color = new ColorValue(0, 1, 0); var mesh = meshInSpace.CreateComponent <Component_Mesh>(); mesh.Name = "Mesh"; meshInSpace.Mesh = ReferenceUtility.MakeThisReference(this, mesh); var geometry = mesh.CreateComponent <Component_MeshGeometry_Cylinder>(); geometry.Name = "Mesh Geometry"; geometry.Axis = 0; geometry.Radius = 0.02; geometry.Height = 0.02; geometry.Segments = 16; geometry.Material = ReferenceUtility.MakeReference("Base\\Materials\\White.material"); meshInSpace.Mesh = ReferenceUtility.MakeThisReference(meshInSpace, mesh); var transformOffset = meshInSpace.CreateComponent <Component_TransformOffset>(); transformOffset.Name = "Attach Transform Offset"; transformOffset.PositionOffset = new Vector3(0.03, 0.11, 0.11); transformOffset.Source = ReferenceUtility.MakeThisReference(transformOffset, this, "Transform"); meshInSpace.Transform = ReferenceUtility.MakeThisReference(meshInSpace, transformOffset, "Result"); } //Marker Min { var meshInSpace = CreateComponent <Component_MeshInSpace>(); meshInSpace.Name = "Marker Min"; meshInSpace.Color = new ColorValue(1, 0, 0); var mesh = meshInSpace.CreateComponent <Component_Mesh>(); mesh.Name = "Mesh"; meshInSpace.Mesh = ReferenceUtility.MakeThisReference(this, mesh); var geometry = mesh.CreateComponent <Component_MeshGeometry_Box>(); geometry.Name = "Mesh Geometry"; geometry.Dimensions = new Vector3(0.05, 0.14, 0.01); geometry.Material = ReferenceUtility.MakeReference("Base\\Materials\\White.material"); meshInSpace.Mesh = ReferenceUtility.MakeThisReference(meshInSpace, mesh); var transformOffset = meshInSpace.CreateComponent <Component_TransformOffset>(); transformOffset.Name = "Attach Transform Offset"; transformOffset.PositionOffset = new Vector3(0.01, 0, 0); transformOffset.Source = ReferenceUtility.MakeThisReference(transformOffset, this, "Transform"); meshInSpace.Transform = ReferenceUtility.MakeThisReference(meshInSpace, transformOffset, "Result"); } //Marker Max { var meshInSpace = CreateComponent <Component_MeshInSpace>(); meshInSpace.Name = "Marker Max"; meshInSpace.Color = new ColorValue(0, 1, 0); var mesh = meshInSpace.CreateComponent <Component_Mesh>(); mesh.Name = "Mesh"; meshInSpace.Mesh = ReferenceUtility.MakeThisReference(this, mesh); var geometry = mesh.CreateComponent <Component_MeshGeometry_Box>(); geometry.Name = "Mesh Geometry"; geometry.Dimensions = new Vector3(0.05, 0.14, 0.01); geometry.Material = ReferenceUtility.MakeReference("Base\\Materials\\White.material"); meshInSpace.Mesh = ReferenceUtility.MakeThisReference(meshInSpace, mesh); var transformOffset = meshInSpace.CreateComponent <Component_TransformOffset>(); transformOffset.Name = "Attach Transform Offset"; transformOffset.PositionOffset = new Vector3(0.01, 0, 0); transformOffset.Source = ReferenceUtility.MakeThisReference(transformOffset, this, "Transform"); meshInSpace.Transform = ReferenceUtility.MakeThisReference(meshInSpace, transformOffset, "Result"); } //Marker Current { var meshInSpace = CreateComponent <Component_MeshInSpace>(); meshInSpace.Name = "Marker Current"; meshInSpace.Color = new ColorValue(1, 1, 1); var mesh = meshInSpace.CreateComponent <Component_Mesh>(); mesh.Name = "Mesh"; meshInSpace.Mesh = ReferenceUtility.MakeThisReference(this, mesh); var geometry = mesh.CreateComponent <Component_MeshGeometry_Box>(); geometry.Name = "Mesh Geometry"; geometry.Dimensions = new Vector3(0.05, 0.14, 0.01); geometry.Material = ReferenceUtility.MakeReference("Base\\Materials\\White.material"); meshInSpace.Mesh = ReferenceUtility.MakeThisReference(meshInSpace, mesh); var transformOffset = meshInSpace.CreateComponent <Component_TransformOffset>(); transformOffset.Name = "Attach Transform Offset"; transformOffset.PositionOffset = new Vector3(0.06, 0, 0); transformOffset.Source = ReferenceUtility.MakeThisReference(transformOffset, this, "Transform"); meshInSpace.Transform = ReferenceUtility.MakeThisReference(meshInSpace, transformOffset, "Result"); } //C# Script { var script = CreateComponent <Component_CSharpScript>(); script.Name = "C# Script"; script.Code = "public void InteractiveObjectButton_UpdateEvent(NeoAxis.Component sender, float delta)\r\n{\r\n\tvar _this = sender as Component_RegulatorSwitchInSpace;\r\n\tif (_this != null)\r\n\t{\r\n\t\tvar indicatorMin = _this.GetComponent(\"Indicator Min\") as Component_MeshInSpace;\r\n\t\tif (indicatorMin != null)\r\n\t\t\tindicatorMin.Color = _this.Value.Value <= _this.ValueRange.Value.Minimum ? new ColorValue(1, 0, 0) : new ColorValue(0.5, 0.5, 0.5);\r\n\r\n\t\tvar indicatorMax = _this.GetComponent(\"Indicator Max\") as Component_MeshInSpace;\r\n\t\tif (indicatorMax != null)\r\n\t\t\tindicatorMax.Color = _this.Value.Value >= _this.ValueRange.Value.Maximum ? new ColorValue(0, 1, 0) : new ColorValue(0.5, 0.5, 0.5);\r\n\r\n\t\tvar button = _this.GetComponent(\"Button\");\r\n\t\tif (button != null)\r\n\t\t{\r\n\t\t\tvar offset = button.GetComponent<Component_TransformOffset>();\r\n\t\t\tif (offset != null)\r\n\t\t\t{\r\n\t\t\t\tvar angle = _this.GetValueAngle() - 90;\r\n\t\t\t\toffset.RotationOffset = new Angles(angle, 0, 0).ToQuaternion();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar markerMin = _this.GetComponent(\"Marker Min\");\r\n\t\tif (markerMin != null)\r\n\t\t{\r\n\t\t\tvar offset = markerMin.GetComponent<Component_TransformOffset>();\r\n\t\t\tif (offset != null)\r\n\t\t\t{\r\n\t\t\t\tvar angle = _this.AngleRange.Value.Minimum - 90;\r\n\t\t\t\tvar angleR = MathEx.DegreeToRadian(angle);\r\n\t\t\t\toffset.PositionOffset = new Vector3(0.01, Math.Cos(angleR) * 0.04, Math.Sin(-angleR) * 0.04);\r\n\t\t\t\toffset.RotationOffset = new Angles(angle, 0, 0).ToQuaternion();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar markerMax = _this.GetComponent(\"Marker Max\");\r\n\t\tif (markerMax != null)\r\n\t\t{\r\n\t\t\tvar offset = markerMax.GetComponent<Component_TransformOffset>();\r\n\t\t\tif (offset != null)\r\n\t\t\t{\r\n\t\t\t\tvar angle = _this.AngleRange.Value.Maximum - 90;\r\n\t\t\t\tvar angleR = MathEx.DegreeToRadian(angle);\r\n\t\t\t\toffset.PositionOffset = new Vector3(0.01, Math.Cos(angleR) * 0.04, Math.Sin(-angleR) * 0.04);\r\n\t\t\t\toffset.RotationOffset = new Angles(angle, 0, 0).ToQuaternion();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar markerCurrent = _this.GetComponent(\"Marker Current\");\r\n\t\tif (markerCurrent != null)\r\n\t\t{\r\n\t\t\tvar offset = markerCurrent.GetComponent<Component_TransformOffset>();\r\n\t\t\tif (offset != null)\r\n\t\t\t{\r\n\t\t\t\tvar angle = _this.GetValueAngle() - 90;\r\n\t\t\t\tvar angleR = MathEx.DegreeToRadian(angle);\r\n\t\t\t\toffset.PositionOffset = new Vector3(0.06, Math.Cos(angleR) * 0.04, Math.Sin(-angleR) * 0.04);\r\n\t\t\t\toffset.RotationOffset = new Angles(angle, 0, 0).ToQuaternion();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"; var handler = script.CreateComponent <Component_EventHandler>(); handler.Name = "Event Handler UpdateEvent"; handler.WhenEnable = Component_EventHandler.WhenEnableEnum.Editor | Component_EventHandler.WhenEnableEnum.Simulation | Component_EventHandler.WhenEnableEnum.Instance; handler.Event = ReferenceUtility.MakeReference("this:..\\..\\event:UpdateEvent"); handler.HandlerMethod = ReferenceUtility.MakeReference("this:..\\method:InteractiveObjectButton_UpdateEvent(NeoAxis.Component,System.Single)"); } } }