示例#1
0
    def fromJson(self, trackJson):
        if trackJson:
            self.trackId = trackJson.get('id', self.trackId)
            self.trackType = trackJson.get('type', self.trackType)
            sectorsJson = trackJson.get('sec', None)
            del self.sectors[:]

            if self.trackType == TRACK_TYPE_CIRCUIT:
                self.startLine.fromJson(trackJson.get('sf', None))
                sectorCount = CONFIG_SECTOR_COUNT_CIRCUIT
            else:
                self.startLine.fromJson(trackJson.get('st', self.startLine))
                self.finishLine.fromJson(trackJson.get('fin', self.finishLine))
                sectorCount = CONFIG_SECTOR_COUNT_STAGE

            returnedSectorCount = len(sectorsJson)
            if sectorsJson:
                for i in range(sectorCount):
                    sector = GeoPoint()
                    if i < returnedSectorCount:
                        sectorJson = sectorsJson[i]
                        sector.fromJson(sectorJson)
                    self.sectors.append(sector)
            self.sectorCount = sectorCount
            self.stale = False
 def fromJson(self, trackJson):
     if trackJson:
         self.trackId = trackJson.get('id', self.trackId)
         self.trackType = trackJson.get('type', self.trackType)
         sectorsJson = trackJson.get('sec', None)
         del self.sectors[:]
         
         if self.trackType == TRACK_TYPE_CIRCUIT:
             self.startLine.fromJson(trackJson.get('sf', None))
             sectorCount = CONFIG_SECTOR_COUNT_CIRCUIT
         else:
             self.startLine.fromJson(trackJson.get('st', self.startLine))
             self.finishLine.fromJson(trackJson.get('fin', self.finishLine))
             sectorCount = CONFIG_SECTOR_COUNT_STAGE
 
         returnedSectorCount = len(sectorsJson)
         if sectorsJson:
             for i in range(sectorCount):
                 sector = GeoPoint()
                 if i < returnedSectorCount:
                     sectorJson = sectorsJson[i]
                     sector.fromJson(sectorJson)
                 self.sectors.append(sector)
         self.sectorCount = sectorCount
         self.stale = False
示例#3
0
class Track(object):
    def __init__(self, **kwargs):
        self.stale = False
        self.trackId = None
        self.trackType = TRACK_TYPE_CIRCUIT
        self.sectorCount = CONFIG_SECTOR_COUNT
        self.startLine = GeoPoint()
        self.finishLine = GeoPoint()
        self.sectors = []

    def fromJson(self, trackJson):
        if trackJson:
            self.trackId = trackJson.get('id', self.trackId)
            self.trackType = trackJson.get('type', self.trackType)
            sectorsJson = trackJson.get('sec', None)
            del self.sectors[:]

            if self.trackType == TRACK_TYPE_CIRCUIT:
                self.startLine.fromJson(trackJson.get('sf', None))
                sectorCount = CONFIG_SECTOR_COUNT_CIRCUIT
            else:
                self.startLine.fromJson(trackJson.get('st', self.startLine))
                self.finishLine.fromJson(trackJson.get('fin', self.finishLine))
                sectorCount = CONFIG_SECTOR_COUNT_STAGE

            returnedSectorCount = len(sectorsJson)
            if sectorsJson:
                for i in range(sectorCount):
                    sector = GeoPoint()
                    if i < returnedSectorCount:
                        sectorJson = sectorsJson[i]
                        sector.fromJson(sectorJson)
                    self.sectors.append(sector)
            self.sectorCount = sectorCount
            self.stale = False

    @classmethod
    def fromTrackMap(cls, trackMap):
        t = Track()
        t.trackId = trackMap.short_id
        t.trackType = TRACK_TYPE_STAGE if trackMap.finish_point else TRACK_TYPE_CIRCUIT
        t.startLine = copy(trackMap.start_finish_point)
        t.finishLine = copy(trackMap.finish_point)

        maxSectorCount = CONFIG_SECTOR_COUNT_CIRCUIT if t.trackType == TRACK_TYPE_CIRCUIT else CONFIG_SECTOR_COUNT_STAGE
        sectorCount = 0
        for point in trackMap.sector_points:
            sectorCount += 1
            if sectorCount > maxSectorCount: break
            t.sectors.append(copy(point))
        return t

    def toJson(self):
        sectors = []
        for sector in self.sectors:
            sectors.append(sector.toJson())
        trackJson = {}
        trackJson['id'] = self.trackId
        trackJson['type'] = self.trackType
        trackJson['sec'] = sectors

        if self.trackType == TRACK_TYPE_STAGE:
            trackJson['st'] = self.startLine.toJson()
            trackJson['fin'] = self.finishLine.toJson()
        else:
            trackJson['sf'] = self.startLine.toJson()
        return trackJson
class Track(object):
    def __init__(self, **kwargs):
        self.stale = False
        self.trackId = None
        self.trackType = TRACK_TYPE_CIRCUIT
        self.sectorCount = CONFIG_SECTOR_COUNT
        self.startLine = GeoPoint()
        self.finishLine = GeoPoint()
        self.sectors = []
    
    def fromJson(self, trackJson):
        if trackJson:
            self.trackId = trackJson.get('id', self.trackId)
            self.trackType = trackJson.get('type', self.trackType)
            sectorsJson = trackJson.get('sec', None)
            del self.sectors[:]
            
            if self.trackType == TRACK_TYPE_CIRCUIT:
                self.startLine.fromJson(trackJson.get('sf', None))
                sectorCount = CONFIG_SECTOR_COUNT_CIRCUIT
            else:
                self.startLine.fromJson(trackJson.get('st', self.startLine))
                self.finishLine.fromJson(trackJson.get('fin', self.finishLine))
                sectorCount = CONFIG_SECTOR_COUNT_STAGE
    
            returnedSectorCount = len(sectorsJson)
            if sectorsJson:
                for i in range(sectorCount):
                    sector = GeoPoint()
                    if i < returnedSectorCount:
                        sectorJson = sectorsJson[i]
                        sector.fromJson(sectorJson)
                    self.sectors.append(sector)
            self.sectorCount = sectorCount
            self.stale = False
        
    @classmethod
    def fromTrackMap(cls, trackMap):
        t = Track()
        t.trackId = trackMap.short_id
        t.trackType = TRACK_TYPE_STAGE if trackMap.finish_point else TRACK_TYPE_CIRCUIT
        t.startLine = copy(trackMap.start_finish_point)
        t.finishLine = copy(trackMap.finish_point)

        maxSectorCount = CONFIG_SECTOR_COUNT_CIRCUIT if t.trackType == TRACK_TYPE_CIRCUIT else CONFIG_SECTOR_COUNT_STAGE
        sectorCount = 0
        for point in trackMap.sector_points:
            sectorCount += 1
            if sectorCount > maxSectorCount: break
            t.sectors.append(copy(point))
        return t
        
    def toJson(self):
        sectors = []
        for sector in self.sectors:
            sectors.append(sector.toJson())
        trackJson = {}
        trackJson['id'] = self.trackId
        trackJson['type'] = self.trackType
        trackJson['sec']  = sectors
        
        if self.trackType == TRACK_TYPE_STAGE:
            trackJson['st'] = self.startLine.toJson()
            trackJson['fin'] = self.finishLine.toJson()
        else:
            trackJson['sf'] = self.startLine.toJson()
        return trackJson