private void SetMaterial(float r, float g, float b, UWB_Primitive p)
 {
     p.Material.Ambient  = Vector4.Zero;
     p.Material.Diffuse  = Vector4.Zero;
     p.Material.Specular = Vector4.Zero;
     p.Material.Emissive = new Vector4(r, g, b, 1.0f);
 }
 private void SetMaterial(float r, float g, float b, UWB_Primitive p)
 {
     p.Material.Ambient = Vector4.Zero;
     p.Material.Diffuse = Vector4.Zero;
     p.Material.Specular = Vector4.Zero;
     p.Material.Emissive = new Vector4(r, g, b, 1.0f);
 }
示例#3
0
        private void Init()
        {
            mVelocity     = new Vector3(0, 0, 0);
            mPrimitive    = null;
            mPivotVisible = false;

            mXFormInfo  = new UWB_XFormInfo();
            mChildNodes = new UWB_Array <UWB_SceneNode>();
        }
示例#4
0
        public override void Update(float elapsedSeconds)
        {
            int count = mList.count();

            for (int i = 0; i < count; i++)
            {
                UWB_Primitive primitive = mList.getItem(i);
                if (primitive != null)
                {
                    primitive.Update(elapsedSeconds);
                }
            }
        }
示例#5
0
        protected override void DrawPrimitive(eLevelofDetail lod, UWB_DrawHelper drawHelper)
        {
            int count = mList.count();

            for (int i = 0; i < count; i++)
            {
                UWB_Primitive primitive = mList.getItem(i);
                if (primitive != null)
                {
                    primitive.Draw(lod, drawHelper);
                }
            }
        }
        public virtual void collisionResponse(UWB_Primitive other, Vector3 otherLocation)
        {
            Vector3 direction = getLocation() - otherLocation;
            if (direction == Vector3.Zero)
            {
                setVelocity(Vector3.Zero);
                return;
            }

            direction.Normalize();

            float mySpeed = getVelocity().Length();

            setVelocity(mySpeed * direction);
        }
示例#7
0
        public virtual void collisionResponse(UWB_Primitive other, Vector3 otherLocation)
        {
            Vector3 direction = getLocation() - otherLocation;

            if (direction == Vector3.Zero)
            {
                setVelocity(Vector3.Zero);
                return;
            }

            direction.Normalize();

            float mySpeed = getVelocity().Length();

            setVelocity(mySpeed * direction);
        }
示例#8
0
        public void drawChildBoundingVolumes(eLevelofDetail lod, UWB_DrawHelper drawHelper, Color color)
        {
            if (drawHelper == null)
            {
                return;
            }

            int count = this.count();

            for (int i = 0; i < count; i++)
            {
                UWB_Primitive primitive = mList.getItem(i);
                if (primitive != null)
                {
                    primitive.drawBoundingVolume(lod, drawHelper, color);
                }
            }
        }
示例#9
0
        public override UWB_BoundingVolume getBoundingVolume(eLevelofDetail lod)
        {
            int count = mList.count();

            if (count == 0)
            {
                return(null);
            }
            mBounds.makeInvalid();

            // NOTE: This is pretty inefficient. We could speed this up by maintaining
            // some sort of "changed" flag and only updating the bounds when this flag changes
            for (int i = 0; i < count; i++)
            {
                UWB_Primitive child = mList.getItem(i);
                mBounds.add(child.getBoundingVolume(lod));
            }

            return(mBounds);
        }
示例#10
0
 public void setPrimitive(UWB_Primitive primitive)
 {
     mPrimitive = primitive;
 }
示例#11
0
 public void append(UWB_Primitive primitive)
 {
     mList.append(primitive);
 }
 private void SetMeshMaterial(UWB_Primitive prim, RayTracer_552.RTMaterial mat)
 {
     prim.EnableLighting(true);
     prim.setShadeMode(eShadeMode.smGouraud);
     prim.Material.Emissive = new Vector4(Vector3.Zero, 1f);
     prim.Material.Ambient = new Vector4(mat.GetAmbientColor, 1f);
     prim.Material.Diffuse = new Vector4(mat.GetDiffuseColor, 1f);
     prim.Material.Specular = new Vector4(mat.GetSpecularColor, 1f);
     prim.Material.Power = mat.GetN;
 }
 private UWB_SceneNode CreateNode(Vector3 at, float sx, float sy, float sz, UWB_Primitive prim)
 {
     UWB_SceneNode pNode = new UWB_SceneNode();
     pNode.setPrimitive(prim);
     UWB_XFormInfo xf = pNode.getXFormInfo();
     xf.SetTranslation(at);
     xf.SetScale(new Vector3(sx, sy, sz));
     pNode.setXFormInfo(xf);
     m_SceneDatabase.insertChildNode(pNode);
     return pNode;
 }
        private void Init()
        {
            mVelocity = new Vector3(0, 0, 0);
            mPrimitive = null;
            mPivotVisible = false;

            mXFormInfo = new UWB_XFormInfo();
            mChildNodes = new UWB_Array<UWB_SceneNode>();
        }
 public void setPrimitive(UWB_Primitive primitive)
 {
     mPrimitive = primitive;
 }
 public void append(UWB_Primitive primitive)
 {
     mList.append(primitive);
 }