﻿[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class QCARConfig {
  [System.Xml.Serialization.XmlAttribute("noNamespaceSchemaLocation", Namespace = System.Xml.Schema.XmlSchema.InstanceNamespace)]
  public string attr = "qcar_config.xsd";
  
  private QCARConfigTracking trackingField;
  
  private QCARConfigAssembly assemblyField;
  
  public QCARConfigTracking Tracking {
    get {
      return this.trackingField;
    }
    set {
      this.trackingField = value;
    }
  }
  
  public QCARConfigAssembly Assembly {
    get {
      return this.assemblyField;
    }
    set {
      this.assemblyField = value;
    }
  }
}

[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public class QCARConfigTracking {
  
  private QCARConfigTrackingModelTarget modelTargetField;
  
  public QCARConfigTrackingModelTarget ModelTarget {
    get {
      return this.modelTargetField;
    }
    set {
      this.modelTargetField = value;
    }
  }

    private QCARConfigTrackingCylinderTarget cylinderTargetField;
    
    private QCARConfigTrackingImageTarget[] imageTargetField;
    
    private QCARConfigTrackingMultiTarget multiTargetField;
    
    /// <remarks/>
    public QCARConfigTrackingCylinderTarget CylinderTarget {
        get {
            return this.cylinderTargetField;
        }
        set {
            this.cylinderTargetField = value;
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("ImageTarget")]
    public QCARConfigTrackingImageTarget[] ImageTarget {
        get {
            return this.imageTargetField;
        }
        set {
            this.imageTargetField = value;
        }
    }
    
    /// <remarks/>
    public QCARConfigTrackingMultiTarget MultiTarget {
        get {
            return this.multiTargetField;
        }
        set {
            this.multiTargetField = value;
        }
    }
}

[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public class QCARConfigTrackingModelTarget {
  
  private string nameField;
  
  [System.Xml.Serialization.XmlAttributeAttribute()]
  public string name {
    get {
      return this.nameField;
    }
    set {
      this.nameField = value;
    }
  }
}

[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public class QCARConfigAssembly {
  
  private QCARConfigAssemblyPart partField;
  
  private QCARConfigAssemblyEntryPoint entryPointField;
  
  private string nameField;
  
  public QCARConfigAssemblyPart Part {
    get {
      return this.partField;
    }
    set {
      this.partField = value;
    }
  }
  
  public QCARConfigAssemblyEntryPoint EntryPoint {
    get {
      return this.entryPointField;
    }
    set {
      this.entryPointField = value;
    }
  }
  
  [System.Xml.Serialization.XmlAttributeAttribute()]
  public string name {
    get {
      return this.nameField;
    }
    set {
      this.nameField = value;
    }
  }
}

[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public class QCARConfigAssemblyPart {
  
  private string nameField;
  
  private string translationField;
  
  private string rotationField;
  
  [System.Xml.Serialization.XmlAttributeAttribute()]
  public string name {
    get {
      return this.nameField;
    }
    set {
      this.nameField = value;
    }
  }
  
  [System.Xml.Serialization.XmlAttributeAttribute()]
  public string translation {
    get {
      return this.translationField;
    }
    set {
      this.translationField = value;
    }
  }
  
  [System.Xml.Serialization.XmlAttributeAttribute()]
  public string rotation {
    get {
      return this.rotationField;
    }
    set {
      this.rotationField = value;
    }
  }
}

[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public class QCARConfigAssemblyEntryPoint {
  
  private string nameField;
  
  private string translationField;
  
  private string rotationField;
  
  [System.Xml.Serialization.XmlAttributeAttribute()]
  public string name {
    get {
      return this.nameField;
    }
    set {
      this.nameField = value;
    }
  }
  
  [System.Xml.Serialization.XmlAttributeAttribute()]
  public string translation {
    get {
      return this.translationField;
    }
    set {
      this.translationField = value;
    }
  }
  
  [System.Xml.Serialization.XmlAttributeAttribute()]
  public string rotation {
    get {
      return this.rotationField;
    }
    set {
      this.rotationField = value;
    }
  }
}

[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public class QCARConfigTrackingCylinderTarget {
    
    private string nameField;
    
    private double sideLengthField;
    
    private bool sideLengthFieldSpecified;
    
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string name {
        get {
            return this.nameField;
        }
        set {
            this.nameField = value;
        }
    }
    
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public double sideLength {
        get {
            return this.sideLengthField;
        }
        set {
            this.sideLengthField = value;
        }
    }
    
    [System.Xml.Serialization.XmlIgnoreAttribute()]
    public bool sideLengthSpecified {
        get {
            return this.sideLengthFieldSpecified;
        }
        set {
            this.sideLengthFieldSpecified = value;
        }
    }
}

[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public class QCARConfigTrackingImageTarget {
    
    private string nameField;
    
    private string sizeField;
    
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string name {
        get {
            return this.nameField;
        }
        set {
            this.nameField = value;
        }
    }
    
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string size {
        get {
            return this.sizeField;
        }
        set {
            this.sizeField = value;
        }
    }
}

[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public class QCARConfigTrackingMultiTarget {
    
    private QCARConfigTrackingMultiTargetPart[] partField;
    
    private string nameField;
    
    [System.Xml.Serialization.XmlElementAttribute("Part")]
    public QCARConfigTrackingMultiTargetPart[] Part {
        get {
            return this.partField;
        }
        set {
            this.partField = value;
        }
    }
    
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string name {
        get {
            return this.nameField;
        }
        set {
            this.nameField = value;
        }
    }
}

[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public class QCARConfigTrackingMultiTargetPart {
    
    private string nameField;
    
    private string translationField;
    
    private string rotationField;
    
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string name {
        get {
            return this.nameField;
        }
        set {
            this.nameField = value;
        }
    }
    
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string translation {
        get {
            return this.translationField;
        }
        set {
            this.translationField = value;
        }
    }
    
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string rotation {
        get {
            return this.rotationField;
        }
        set {
            this.rotationField = value;
        }
    }
}