public AtomSpriteBufferCreator()
 {
     availableFields = new DataFields[] { new DataFields(VertexFormats.Position, "POSITION"),
                                          new DataFields(VertexFormats.PointSize, "POINTSIZE"),
                                          new DataFields(VertexFormats.Diffuse, "DIFFUSE"),
                                        };
 }
        public BondLinesBufferCreator()
	    {
            availableFields = new DataFields[] { new DataFields(VertexFormats.Position, "POSITION"),
                                                 //new DataFields(VertexFormats.Texture1, "TEXTURE0"),
                                                 new DataFields(VertexFormats.Normal, "NORMAL"),
                                                 new DataFields(VertexFormats.Diffuse, "DIFFUSE"),
                                               };
	    }
Exemplo n.º 3
0
//        public override bool DesiredGeomDataFields(out DataFields[] fields, bool exclusive)
//        {
//            fields = new DataFields[] { new DataFields(VertexFormats.Position, "POSITION"),
//                                        new DataFields(VertexFormats.PointSize, "SIZEFLOAT"),
//                                        new DataFields(VertexFormats.Diffuse, "DIFFUSE") };
//            return true;
//        }

        public override bool DesiredFrameData(out DataFields[] fields)
        {
            fields = new DataFields[] { new DataFields(VertexFormats.Transformed, "POSITION"),
                                        new DataFields(VertexFormats.Texture1, "TCURR"),
                                        new DataFields(VertexFormats.Texture2, "TBACK"),
                                        new DataFields(VertexFormats.PointSize, "FSIZE"),
                                        new DataFields(VertexFormats.Texture3, "VCOLOR") };
            return(true);
        }
        /// <summary>
        /// Initializes a new instance of the BondLinesBufferCreator class.
        /// </summary>
        public BondThickLinesBufferCreator(int numSides)
        {
            this.numSides = numSides;

            availableFields = new DataFields[] { new DataFields(VertexFormats.Position, "POSITION"),
                                                 //new DataFields(VertexFormats.Texture1, "TEXTURE0"),
                                                 new DataFields(VertexFormats.Normal, "NORMAL"),
                                                 new DataFields(VertexFormats.Diffuse, "DIFFUSE"),
                                               };
        }
        public AtomSphereBufferCreator(float scale, int detail1, int detail2)
        {
            availableFields = new DataFields[] { new DataFields(VertexFormats.Position, "POSITION"),
                                                 new DataFields(VertexFormats.Normal, "NORMAL"),
                                                 new DataFields(VertexFormats.Diffuse, "DIFFUSE"),
                                                 new DataFields(VertexFormats.Texture1, "TEXTURE0")
                                               };

            this._Scaling = scale;
            this.sphereDetail1 = detail1;
            this.sphereDetail2 = detail2;
        }
Exemplo n.º 6
0
//        public override bool DesiredGeomDataFields(out DataFields[] fields, bool exclusive)
//        {
//            fields = new DataFields[] { new DataFields(VertexFormats.Position, "POSITION"),
//                                        new DataFields(VertexFormats.PointSize, "SIZEFLOAT"),
//                                        new DataFields(VertexFormats.Diffuse, "DIFFUSE") };
//            return true;
//        }

        public override bool DesiredFrameData(out DataFields[] fields)
        {
            fields = new DataFields[] { new DataFields(VertexFormats.Transformed, "POSITION"),
                                        new DataFields(VertexFormats.Texture1, "TCURR"),
                                        new DataFields(VertexFormats.Texture2, "TBACK"),
                                        new DataFields(VertexFormats.PointSize, "FSIZE"),
                                        new DataFields(VertexFormats.Texture3, "VCOLOR") };
            return true;
        }
Exemplo n.º 7
0
 public virtual bool DesiredFrameData(out DataFields[] fields) { fields = null; return false; }
 public AtomBlobBufferCreator()
 {
     availableFields = new DataFields[] { new DataFields(VertexFormats.Position, "POSITION"),
                                          new DataFields(VertexFormats.PointSize, "SIZEFLOAT"),
                                          new DataFields(VertexFormats.Normal, "DIFFUSE") };
 }
 public override void SetupForCreation(int[] reqFields)
 {
     if (reqFields == null)
     {
         fields = availableFields;
     }
     else
     {
         fields = new DataFields[reqFields.Length];
         for (int i = 0; i < reqFields.Length; i++)
         {
             fields[i] = availableFields[reqFields[i]];
         }
     }
 }
Exemplo n.º 10
0
        public void UpdateBonds(CompleteOutputDescription latestCoDesc, IBond[] bonds)
        {
            if (scheme.HandlesBonds)
            {
                scheme.SetOutputDescription(coDesc);

                DataFields[][] allStreams = new DataFields[1][];
                IGeometryCreator[] schStreams = scheme.GetBondStreams();
                GeomDataBufferStream[] geomStream = new GeomDataBufferStream[schStreams.Length];
                
                for (int i = 0; i < geomStream.Length; i++)
                {
                    allStreams[0] = schStreams[i].Fields;
                    GeomDataTransformer.CreateBufferStream(allStreams, out geomStream[i]);
                }
                // fill buffer stream
                scheme.SetBondData(bonds, geomStream);
            }
        }
Exemplo n.º 11
0
        public void UpdateAtoms(CompleteOutputDescription coDesc, IAtom[] atoms)
        {
            if (scheme.HandlesAtoms)
            {
                scheme.SetOutputDescription(coDesc);

                // pass throught scheme & effects
                IGeometryCreator[] schStreams = scheme.GetAtomStreams();
                DataFields[][] allStreams = new DataFields[1][];

                GeomDataBufferStream[] geomStream = new GeomDataBufferStream[schStreams.Length];
                for (int i = 0; i < geomStream.Length; i++)
                {
                    allStreams[0] = schStreams[i].Fields;
                    GeomDataTransformer.CreateBufferStream(allStreams, out geomStream[i]);
                }
                // fill buffer stream
                scheme.SetAtomData(atoms, geomStream);
            }
        }
Exemplo n.º 12
0
        public void OnNewDataSource(IAtom[] atoms, IBond[] bonds, Vector3 origin, Bounds3D bounds)
        {
            sceneGraph = new OcTree<ChemEntity>((int)bounds.radius * 2, -bounds.min);
            /*screenEntities.Add(new BondAngle(device, atoms[0], atoms[1], atoms[2]));
            screenEntities[0].Init(device);

            postSceneWorldEntities.Add(new BoundingBoxEntity(new BoundingBox(bounds.min, bounds.max), false, Color.LightGray.ToArgb()));
            postSceneWorldEntities[0].Init(device);
            postSceneWorldEntities.Add(new SphereAxis3D());
            postSceneWorldEntities[1].Init(device);*/
            
            sceneGraphEntities = sceneGraph.SceneItems;

            // create molecule entities
            foreach (IAtom atom in atoms)
            {
                AtomEntity aentity = AtomEntity.BuildEntity(atom);
                sceneGraph.Insert(aentity);
                /*ScreenLabelVSpaceEntity entity = new ScreenLabelVSpaceEntity(atom.ID + ":" + aentity.UId.ToString(), (Vector3)aentity.Position3D);
                entity.Init(device);
                screenEntities.Add(entity);*/
                /*AtomSymbolEntity entity = new AtomSymbolEntity(aentity);
                entity.Init(device);
                postSceneViewEntities.Add(entity);*/
            }
            
            //foreach (IBond bond in bonds)
            //{
                //sceneGraph.Insert(new BondE);
            //}

            scheme.SetOutputDescription(coDesc);
            scheme.SetupScene(origin, bounds.radius);

            // pass throught scheme & effects
            IGeometryCreator[] schStreams = scheme.GetAtomStreams();
            DataFields[] efxFields = null;
            //effect.DesiredData(out efxFields, false);

            DataFields[][] allStreams = new DataFields[1 + (efxFields != null ? 1 : 0 )][];
            //if (efxFields != null)
            //    allStreams[1] = efxFields;
            if (scheme.HandlesAtoms && atoms != null)
            {
                GeomDataBufferStream[] geomStream = new GeomDataBufferStream[schStreams.Length];
                for (int i = 0; i < geomStream.Length; i++)
                {
                    allStreams[0] = schStreams[i].Fields;
                    GeomDataTransformer.CreateBufferStream(allStreams, out geomStream[i]);
                }
                // fill buffer stream
                scheme.SetAtomData(atoms, geomStream);
            }

            schStreams = scheme.GetBondStreams();
            if (scheme.HandlesBonds && bonds != null)
            {
                GeomDataBufferStream[] geomStream = new GeomDataBufferStream[schStreams.Length];
                for (int i = 0; i < geomStream.Length; i++)
                {
                    allStreams[0] = schStreams[i].Fields;
                    GeomDataTransformer.CreateBufferStream(allStreams, out geomStream[i]);
                }
                // fill buffer stream
                scheme.SetBondData(bonds, geomStream);
            }
        }