Beispiel #1
0
        private void FillFromPreset(RayProperties source)
        {
            if (!IsValue(fieldRayDimensionsX.text))
            {
                preset.properties.ray.dimensions.x = source.dimensions.x;
            }
            if (!IsValue(fieldRayDimensionsY.text))
            {
                preset.properties.ray.dimensions.y = source.dimensions.y;
            }
            if (!IsValue(fieldRayOffsetX.text))
            {
                preset.properties.ray.offset.x = source.offset.x;
            }
            if (!IsValue(fieldRayOffsetY.text))
            {
                preset.properties.ray.offset.y = source.offset.y;
            }
            if (!Enum.IsDefined(typeof(RayProperties.Profile), preset.properties.ray.profile))
            {
                preset.properties.ray.profile = source.profile;
            }

            preset.properties.ray.intensity = source.intensity; // TODO: add input field "ray intensity".

            RefreshRayPropertiesUI();
        }
Beispiel #2
0
 public Properties()
 {
     absorption = AbsorptionProperties.Initialize();
     sample     = SampleProperties.Initialize();
     ray        = RayProperties.Initialize();
     detector   = DetectorProperties.Initialize();
     angle      = AngleProperties.Initialize();
 }
Beispiel #3
0
 public Properties(AbsorptionProperties absorptionProperties, AngleProperties angleProperties,
                   DetectorProperties detectorProperties, RayProperties rayProperties, SampleProperties sampleProperties)
 {
     absorption = absorptionProperties;
     sample     = sampleProperties;
     ray        = rayProperties;
     detector   = detectorProperties;
     angle      = angleProperties;
 }
Beispiel #4
0
        /// <summary>
        /// Creating a Ray with given Properties.
        /// </summary>
        /// <param name="transform">For position and Direction</param>
        /// <param name="rayProps">Ray Properties</param>
        /// <param name="hitInfo">RaycastHit</param>
        /// <param name="layerMask">Layer</param>
        /// <returns>True if it something.</returns>
        public static bool Raycast(Transform transform, RayProperties rayProps, out RaycastHit hitInfo,
                                   LayerMask layerMask)
        {
            var rot    = Quaternion.Euler(0, 0, rayProps.Angle) * rayProps.GetDirection(transform);
            var origin = transform.position + transform.up * rayProps.Offset.y + transform.right * rayProps.Offset.x;
            var ray    = new Ray(origin, rayProps.GetDirection(transform) + rot);

            if (rayProps.ShowDebugLine)
            {
                Debug.DrawRay(ray.origin, ray.direction * rayProps.Length, Color.red);
            }

            return(Physics.Raycast(ray, out hitInfo, rayProps.Length, layerMask));
        }