SetOrigin() public method

public SetOrigin ( Axiom.Math.Vector3 newOrigin ) : void
newOrigin Axiom.Math.Vector3
return void
Beispiel #1
0
        public void UpdateZones(PCZone defaultZone, ulong frameCount)
        {
            //update the zones this light affects
            PCZone homeZone;

            this.affectedZonesList.Clear();
            this.affectsVisibleZone = false;
            var sn = (PCZSceneNode)(ParentSceneNode);

            if (null != sn)
            {
                // start with the zone the light is in
                homeZone = sn.HomeZone;
                if (null != homeZone)
                {
                    this.affectedZonesList.Add(homeZone);
                    if (homeZone.LastVisibleFrame == frameCount)
                    {
                        this.affectsVisibleZone = true;
                    }
                }
                else
                {
                    // error - scene node has no homezone!
                    // just say it affects the default zone and leave it at that.
                    this.affectedZonesList.Add(defaultZone);
                    if (defaultZone.LastVisibleFrame == frameCount)
                    {
                        this.affectsVisibleZone = true;
                    }
                    return;
                }
            }
            else
            {
                // ERROR! not connected to a scene node,
                // just say it affects the default zone and leave it at that.
                this.affectedZonesList.Add(defaultZone);
                if (defaultZone.LastVisibleFrame == frameCount)
                {
                    this.affectsVisibleZone = true;
                }
                return;
            }

            // now check visibility of each portal in the home zone.  If visible to
            // the light then add the target zone of the portal to the list of
            // affected zones and recurse into the target zone
            var     portalFrustum = new PCZFrustum();
            Vector3 v             = GetDerivedPosition();

            portalFrustum.SetOrigin(v);
            homeZone.CheckLightAgainstPortals(this, frameCount, portalFrustum, null);
        }
Beispiel #2
0
		public void UpdateZones( PCZone defaultZone, ulong frameCount )
		{
			//update the zones this light affects
			PCZone homeZone;
			this.affectedZonesList.Clear();
			this.affectsVisibleZone = false;
			var sn = (PCZSceneNode)( ParentSceneNode );
			if ( null != sn )
			{
				// start with the zone the light is in
				homeZone = sn.HomeZone;
				if ( null != homeZone )
				{
					this.affectedZonesList.Add( homeZone );
					if ( homeZone.LastVisibleFrame == frameCount )
					{
						this.affectsVisibleZone = true;
					}
				}
				else
				{
					// error - scene node has no homezone!
					// just say it affects the default zone and leave it at that.
					this.affectedZonesList.Add( defaultZone );
					if ( defaultZone.LastVisibleFrame == frameCount )
					{
						this.affectsVisibleZone = true;
					}
					return;
				}
			}
			else
			{
				// ERROR! not connected to a scene node,
				// just say it affects the default zone and leave it at that.
				this.affectedZonesList.Add( defaultZone );
				if ( defaultZone.LastVisibleFrame == frameCount )
				{
					this.affectsVisibleZone = true;
				}
				return;
			}

			// now check visibility of each portal in the home zone.  If visible to
			// the light then add the target zone of the portal to the list of
			// affected zones and recurse into the target zone
			var portalFrustum = new PCZFrustum();
			Vector3 v = GetDerivedPosition();
			portalFrustum.SetOrigin( v );
			homeZone.CheckLightAgainstPortals( this, frameCount, portalFrustum, null );
		}