コード例 #1
0
 public void InitModel(ref ComponentModelStatic modelComp)
 {
     if (modelComp.ModelReferenceType == ModelReferenceType.TEMPLATE)
     {
         CreateModelFromTemplate(ref modelComp);
     }
 }
コード例 #2
0
        private void CreateModels()
        {
            var v00 = new Vector3(0, 8, 0);
            var v01 = new Vector3(5f, 5f, 5f);
            var v02 = new Vector2(0.0f, 0.0f);
            var v03 = new Vector2(1.0f, 1.0f);
            var v21 = Color4.White;

            Random r = new Random();


            _staticModelComps[0] = new ComponentModelStatic(ModelProperties.VERTICES_NORMALS_COLORS_ELEMENTS, ModelReferenceType.DISCRETE, "TestCube",
                                                            ConstructionFlags.VECTOR3_OFFSET | ConstructionFlags.COLOR4_COLOR | ConstructionFlags.VECTOR3_SCALE,
                                                            new Vector3(0, 0.5f, 0), new Vector3(5f, 5f, 5f), v21);

            Texture t      = TextureManager.GetInstance().GetTexture("wood");
            float   width  = t.Width;
            float   height = t.Height;

            var v10 = new Vector3(0);
            var v14 = new Vector3(1 / 20f * t.AspectRatio, 0f, 1 / 20f);
            var v11 = new Vector3(100f, 0f, 100f);
            var v12 = t.SubTextureLocations[0].UVOffset;
            var v13 = t.SubTextureLocations[0].UVScale;

            _staticModelComps[1] = new ComponentModelStatic(ModelProperties.VERTICES_UVS_ELEMENTS, ModelReferenceType.TEMPLATE, ModelTemplates.TemplatePlaneXZ,
                                                            ConstructionFlags.VECTOR3_OFFSET | ConstructionFlags.FLOAT_ROTATION_Y | ConstructionFlags.VECTOR3_SCALE |
                                                            ConstructionFlags.VECTOR3_DIMENSIONS |
                                                            ConstructionFlags.VECTOR2_UV_OFFSET | ConstructionFlags.VECTOR2_UV_SCALE,
                                                            v10, 3.1415927f / 2f, v14, v11, v12, v13);
        }
コード例 #3
0
        private void CreateModelFromTemplate(ref ComponentModelStatic modelComp)
        {
            Model model = GetModelFromTemplate(ref modelComp);

            string name = GetValidNameForModel(Model.GetTemplateName(modelComp.TemplateID));

            modelComp.ModelID = name;
            if (model != null)
            {
                _modelLibrary.Add(name, model);
            }
        }
コード例 #4
0
        public Model GetModel(ref ComponentModelStatic modelComp)
        {
            if (modelComp.ModelReferenceType == ModelReferenceType.TEMPLATE)
            {
                if (!ModelExists(modelComp.ModelID))
                {
                    CreateModelFromTemplate(ref modelComp);
                }
            }

            return(GetModel(modelComp.ModelID));
        }
コード例 #5
0
        private Model GetModelFromTemplate(ref ComponentModelStatic modelComp)
        {
            switch (modelComp.TemplateID)
            {
            case (ModelTemplates.TemplatePlaneXZ):
                return(Model.CreateTemplatePlaneXZ(ref modelComp));

            case (ModelTemplates.TemplatePlaneXY):
                return(Model.CreateTemplatePlaneXY(ref modelComp));

            case (ModelTemplates.TemplatePlaneYZ):
                return(Model.CreateTemplatePlaneYZ(ref modelComp));
            }

            return(null);
        }