Пример #1
0
        // Generation Methods
        private RigidNode_Base CreateNodeWithChild()
        {
            RotationalJoint_Base joint = new RotationalJoint_Base();

            joint.axis      = new BXDVector3(2, 2, 2);
            joint.basePoint = new BXDVector3(3, 131, 3);

            JointDriver driver = new JointDriver(JointDriverType.MOTOR);

            driver.SetPort(414);
            driver.isCan = true;

            WheelDriverMeta wheelDriverMeta = new WheelDriverMeta();

            wheelDriverMeta.radius = 9.4F;
            wheelDriverMeta.center = new BXDVector3(1, 1, 1);

            driver.AddInfo(wheelDriverMeta);


            joint.cDriver = driver;



            Guid           childID   = new Guid();
            RigidNode_Base baseNode  = new RigidNode_Base(id);
            RigidNode_Base childNode = new RigidNode_Base(childID);

            baseNode.AddChild(joint, childNode);
            return(baseNode);
        }
Пример #2
0
    public static RigidNode_Base ReadSkeleton(string path)
    {
        string         jsonData = File.ReadAllText(path);
        RigidNode_Base root     = null;

        JsonConverter[] converters = { new JointConverter(), new DriverMetaConverter() };
        JsonSkeleton    skeleton   = JsonConvert.DeserializeObject <JsonSkeleton>(jsonData, new JsonSerializerSettings()
        {
            Converters = converters
        });
        List <JsonSkeletonNode> nodes = skeleton.Nodes;

        if (nodes.Count < 1)
        {
            Console.Error.WriteLine("0 Nodes Loaded! Failed import");

            return(null);
        }

        foreach (JsonSkeletonNode node in nodes)
        {
            RigidNode_Base newNode = RigidNode_Base.NODE_FACTORY(new Guid(node.GUID));
            newNode.ModelFileName = node.ModelFileName;
            newNode.ModelFullID   = node.ModelID;


            if (node.ParentID == "-1")
            {
                root = newNode;
                root.driveTrainType = skeleton.DriveTrainType;
            }
            else
            {
                root.AddChild(node.joint, newNode);
            }
        }



        return(root);
    }