Esempio n. 1
0
 def CreateLineset(self):
     lineSet = trinity.EveCurveLineSet()
     lineSet.scaling = (1.0, 1.0, 1.0)
     tex2D1 = trinity.TriTextureParameter()
     tex2D1.name = 'TexMap'
     tex2D1.resourcePath = 'res:/dx9/texture/UI/lineSolid.dds'
     lineSet.lineEffect.resources.append(tex2D1)
     return lineSet
Esempio n. 2
0
 def ConstructLineSet(self):
     self.lineSet = trinity.EveCurveLineSet()
     self.lineSet.additive = True
     tex2D = trinity.TriTextureParameter()
     tex2D.name = 'TexMap'
     tex2D.resourcePath = 'res:/dx9/texture/UI/lineSolid.dds'
     self.lineSet.lineEffect.resources.append(tex2D)
     sm.GetService('sceneManager').GetActiveScene().objects.append(
         self.lineSet)
Esempio n. 3
0
 def CreateCurvedLineSet(self, effectPath=None):
     lineSet = trinity.EveCurveLineSet()
     if effectPath is not None:
         lineSet.lineEffect.effectFilePath = effectPath
     texMap = trinity.TriTextureParameter()
     texMap.name = 'TexMap'
     texMap.resourcePath = 'res:/dx9/texture/UI/lineSolid.dds'
     lineSet.lineEffect.resources.append(texMap)
     overlayTexMap = trinity.TriTextureParameter()
     overlayTexMap.name = 'OverlayTexMap'
     overlayTexMap.resourcePath = 'res:/dx9/texture/UI/lineOverlay5.dds'
     lineSet.lineEffect.resources.append(overlayTexMap)
     return lineSet
Esempio n. 4
0
def CreatePlanarLineSet(pickEnabled = False, texturePath = None):
    lineSet = trinity.EveCurveLineSet()
    lineSet.lineEffect = trinity.Tr2Effect()
    lineSet.lineEffect.effectFilePath = 'res:/Graphics/Effect/Managed/Space/SpecialFX/Lines/Lines3DPlanar.fx'
    tex2D = trinity.TriTextureParameter()
    tex2D.name = 'TexMap'
    tex2D.resourcePath = texturePath or 'res:/dx9/texture/ui/linePlanarBase.dds'
    lineSet.lineEffect.resources.append(tex2D)
    if pickEnabled:
        lineSet.pickEffect.effectFilePath = 'res:/Graphics/Effect/Managed/Space/SpecialFX/Lines/Lines3DPlanarPicking.fx'
    else:
        lineSet.pickEffect = None
    return lineSet
Esempio n. 5
0
def CreateLineSet(pickEnabled = False, texturePath = None):
    lineSet = trinity.EveCurveLineSet()
    tex2D = trinity.TriTextureParameter()
    tex2D.name = 'TexMap'
    tex2D.resourcePath = texturePath or 'res:/UI/Texture/classes/MapView/lineSegment.dds'
    lineSet.lineEffect.resources.append(tex2D)
    overlayTex2D = trinity.TriTextureParameter()
    overlayTex2D.name = 'OverlayTexMap'
    overlayTex2D.resourcePath = 'res:/UI/Texture/classes/MapView/lineSegmentConstellation.dds'
    lineSet.lineEffect.resources.append(overlayTex2D)
    if not pickEnabled:
        lineSet.pickEffect = None
    return lineSet
Esempio n. 6
0
 def ConstructDebugLineset(self):
     if hasattr(self, 'debugLineSet'):
         scene = sm.GetService('sceneManager').GetActiveScene()
         if self.debugLineSet in scene.objects:
             return
     self.debugLineSet = trinity.EveCurveLineSet()
     self.debugLineSet.scaling = (1.0, 1.0, 1.0)
     tex2D1 = trinity.TriTextureParameter()
     tex2D1.name = 'TexMap'
     tex2D1.resourcePath = 'res:/texture/global/lineSolid.dds'
     self.debugLineSet.lineEffect.resources.append(tex2D1)
     tex2D2 = trinity.TriTextureParameter()
     tex2D2.name = 'OverlayTexMap'
     tex2D2.resourcePath = 'res:/UI/Texture/Planet/link.dds'
     self.debugLineSet.lineEffect.resources.append(tex2D2)
     scene = sm.GetService('sceneManager').GetActiveScene()
     scene.objects.append(self.debugLineSet)
     return self.debugLineSet
Esempio n. 7
0
 def CreateLineSet(self,
                   lsName,
                   transform,
                   animationTexture=None,
                   scale=1.0):
     ls = trinity.EveCurveLineSet()
     ls.scaling = (scale, scale, scale)
     tex2D_1 = trinity.TriTextureParameter()
     tex2D_1.name = 'TexMap'
     tex2D_1.resourcePath = 'res:/texture/global/lineSolid.dds'
     ls.lineEffect.resources.append(tex2D_1)
     if animationTexture:
         tex2D_2 = trinity.TriTextureParameter()
         tex2D_2.name = 'OverlayTexMap'
         tex2D_2.resourcePath = animationTexture
         ls.lineEffect.resources.append(tex2D_2)
     self.lineSets[lsName] = ls
     transform.children.append(ls)
     self.transformsByLineSets[ls] = transform
     return ls
    def CreateOrbits(self, child_parent, objectTransforms):
        lineSet = trinity.EveCurveLineSet()
        lineSet.name = 'OrbitLines'
        lineSet.depthOffset = 10000000.0
        self.systemMapTransform.children.append(lineSet)
        tex2D = trinity.TriTexture2DParameter()
        tex2D.name = 'TexMap'
        tex2D.resourcePath = 'res:/UI/Texture/classes/MapView/lineSegment.dds'
        lineSet.lineEffect.resources.append(tex2D)
        overlayTex2D = trinity.TriTexture2DParameter()
        overlayTex2D.name = 'OverlayTexMap'
        overlayTex2D.resourcePath = 'res:/UI/Texture/classes/MapView/lineSegment.dds'
        lineSet.lineEffect.resources.append(overlayTex2D)
        for childID, parentID in child_parent:
            if childID in objectTransforms and parentID in objectTransforms:
                self.CreateOrbitCircle(objectTransforms[childID],
                                       objectTransforms[parentID], lineSet)

        if lineSet:
            lineSet.SubmitChanges()
Esempio n. 9
0
    def LoadOrbitalObjects(self, scene):
        orbitalObjects = sm.GetService('planetInfo').GetOrbitalsForPlanet(
            self.planetID, const.groupPlanetaryCustomsOffices)
        park = sm.GetService('michelle').GetBallpark()
        addedObjects = []
        for orbitalObjectID in orbitalObjects:
            invItem = park.GetInvItem(orbitalObjectID)
            fileName = None
            if evetypes.GetGraphicID(invItem.typeID) is not None:
                if type(evetypes.GetGraphicID(invItem.typeID)) != type(0):
                    raise RuntimeError('NeedGraphicIDNotMoniker',
                                       invItem.itemID)
                if inventorycommon.typeHelpers.GetGraphic(invItem.typeID):
                    fileName = inventorycommon.typeHelpers.GetGraphicFile(
                        invItem.typeID)
                    if not (fileName.lower().endswith('.red')
                            or fileName.lower().endswith('.blue')):
                        filenameAndTurretType = fileName.split(' ')
                        fileName = filenameAndTurretType[0]
            if fileName is None:
                self.LogError(
                    'Error: Object type %s has invalid graphicFile, using graphicID: %s'
                    % (invItem.typeID, evetypes.GetGraphicID(invItem.typeID)))
                continue
            tryFileName = fileName.replace(':/Model', ':/dx9/Model').replace(
                '.blue', '.red')
            tryFileName = tryFileName.replace('.red', '_UI.red')
            model = None
            if tryFileName is not None:
                try:
                    model = blue.resMan.LoadObject(tryFileName)
                except:
                    model = None

                if model is None:
                    self.LogError('Was looking for:', tryFileName,
                                  'but it does not exist!')
            if model is None:
                try:
                    model = blue.resMan.LoadObject(fileName)
                except:
                    model = None

            if not model:
                log.LogError(
                    'Could not load model for orbital object. FileName:',
                    fileName, ' id:', invItem.itemID, ' typeID:',
                    getattr(invItem, 'typeID', '?unknown?'))
                if invItem is not None and hasattr(invItem, 'typeID'):
                    log.LogError('Type is:', evetypes.GetName(invItem.typeID))
                continue
            model.name = '%s' % invItem.itemID
            model.display = 0
            model.scaling = (0.002, 0.002, 0.002)
            addedObjects.append(model)
            orbitRoot = trinity.EveTransform()
            orbitRoot.children.append(model)
            inclinationRoot = trinity.EveTransform()
            inclinationRoot.children.append(orbitRoot)
            orbitalInclination = orbitalObjectID / math.pi % (
                math.pi / 4.0) - math.pi / 8.0
            if orbitalInclination <= 0.0:
                orbitalInclination -= math.pi / 8.0
            else:
                orbitalInclination += math.pi / 8.0
            inclinationRoot.rotation = geo2.QuaternionRotationSetYawPitchRoll(
                0.0, orbitalInclination, 0.0)
            rotationCurveSet = trinity.TriCurveSet()
            rotationCurveSet.playOnLoad = False
            rotationCurveSet.Stop()
            rotationCurveSet.scaledTime = 0.0
            rotationCurveSet.scale = 0.25
            orbitRoot.curveSets.append(rotationCurveSet)
            ypr = trinity.TriYPRSequencer()
            ypr.YawCurve = trinity.TriScalarCurve()
            ypr.YawCurve.extrapolation = trinity.TRIEXT_CYCLE
            ypr.YawCurve.AddKey(0.0, 0.0, 0.0, 0.0, trinity.TRIINT_LINEAR)
            ypr.YawCurve.AddKey(200.0, 360.0, 0.0, 0.0, trinity.TRIINT_LINEAR)
            ypr.YawCurve.Sort()
            rotationCurveSet.curves.append(ypr)
            binding = trinity.TriValueBinding()
            binding.sourceObject = ypr
            binding.sourceAttribute = 'value'
            binding.destinationObject = orbitRoot
            binding.destinationAttribute = 'rotation'
            rotationCurveSet.bindings.append(binding)
            rotationCurveSet.Play()
            model.translation = (0.0, 0.0, 1500.0)
            model.rotation = geo2.QuaternionRotationSetYawPitchRoll(
                math.pi, 0.0, 0.0)
            scene.objects.append(inclinationRoot)
            ls = trinity.EveCurveLineSet()
            ls.scaling = (1.0, 1.0, 1.0)
            tex2D1 = trinity.TriTextureParameter()
            tex2D1.name = 'TexMap'
            tex2D1.resourcePath = 'res:/UI/Texture/Planet/link.dds'
            ls.lineEffect.resources.append(tex2D1)
            tex2D2 = trinity.TriTextureParameter()
            tex2D2.name = 'OverlayTexMap'
            tex2D2.resourcePath = 'res:/UI/Texture/Planet/link.dds'
            ls.lineEffect.resources.append(tex2D2)
            lineColor = (1.0, 1.0, 1.0, 0.05)
            p1 = SurfacePoint(0.0, 0.0, -1500.0, 1000.0)
            p2 = SurfacePoint(5.0, 0.0, 1498.0, 1000.0)
            l1 = ls.AddSpheredLineCrt(p1.GetAsXYZTuple(), lineColor,
                                      p2.GetAsXYZTuple(), lineColor,
                                      (0.0, 0.0, 0.0), 3.0)
            p1 = SurfacePoint(0.0, 0.0, -1500.0, 1000.0)
            p2 = SurfacePoint(-5.0, 0.0, 1498.0, 1000.0)
            l2 = ls.AddSpheredLineCrt(p1.GetAsXYZTuple(), lineColor,
                                      p2.GetAsXYZTuple(), lineColor,
                                      (0.0, 0.0, 0.0), 3.0)
            animationColor = (0.3, 0.3, 0.3, 0.5)
            ls.ChangeLineAnimation(l1, animationColor, 0.25, 1.0)
            ls.ChangeLineAnimation(l2, animationColor, -0.25, 1.0)
            ls.ChangeLineSegmentation(l1, 100)
            ls.ChangeLineSegmentation(l2, 100)
            ls.SubmitChanges()
            orbitRoot.children.append(ls)

        trinity.WaitForResourceLoads()
        for model in addedObjects:
            model.display = 1
Esempio n. 10
0
    def CreateLineSet(self):
        scene = self.GetScene()
        if not hasattr(scene, 'backgroundObjects'):
            return
        if not scene:
            log.LogWarn('RouteVisualizer - No scene')
            return
        waypoints = sm.GetService('starmap').GetDestinationPath()
        if None in waypoints:
            return
        lineSet = trinity.EveCurveLineSet()
        lineSet.scaling = (1.0, 1.0, 1.0)
        tex2D1 = trinity.TriTexture2DParameter()
        tex2D1.name = 'TexMap'
        tex2D1.resourcePath = 'res:/texture/global/lineSolid.dds'
        lineSet.lineEffect.resources.append(tex2D1)
        tex2D2 = trinity.TriTexture2DParameter()
        tex2D2.name = 'OverlayTexMap'
        tex2D2.resourcePath = 'res:/UI/Texture/Planet/link.dds'
        lineSet.lineEffect.resources.append(tex2D2)
        topTransform = trinity.EveTransform()
        topTransform.name = 'Route'
        topTransform.modifier = 2
        transform = trinity.EveTransform()
        topTransform.children.append(transform)
        transform.name = 'AutoPilotRoute'
        transform.children.append(lineSet)
        scene.backgroundObjects.append(topTransform)
        waypointDisplayCount = 15
        here = sm.StartService('map').GetItem(session.solarsystemid)
        if not here:
            log.LogWarn('RouteVisualizer - No _here_')
            return
        itemInfo = []
        for sid in waypoints:
            if not util.IsSolarSystem(sid):
                continue
            item = sm.StartService('map').GetItem(sid)
            position = (-item.x + here.x, -item.y + here.y, item.z - here.z)
            position = geo2.Vec3Normalize(position)
            position = geo2.Vec3Scale(position, 1000)
            security = item.security
            itemInfo.append((position, security))

        waypointDisplayCount = 15
        itemInfo = itemInfo[0:min(waypointDisplayCount, len(itemInfo))]
        securityColors = sm.GetService('map').GetSecColorList()
        baseAlpha = 0.25
        for i, each in enumerate(itemInfo):
            length = len(itemInfo)
            if i < length - 1:
                colorIndex1 = int(round(max(itemInfo[i][1], 0), 1) * 10)
                color1 = securityColors[colorIndex1]
                alpha1 = 1 - float(i) / len(itemInfo)
                alpha1 *= baseAlpha
                lineColor1 = (color1.r, color1.g, color1.b, alpha1)
                colorIndex2 = int(round(max(itemInfo[i + 1][1], 0), 1) * 10)
                color2 = securityColors[colorIndex2]
                alpha2 = 1 - float(i + 1) / len(itemInfo)
                alpha2 *= baseAlpha
                lineColor2 = (color2.r, color2.g, color2.b, alpha2)
                lineWidth = 3
                l1 = lineSet.AddStraightLine(itemInfo[i][0], lineColor1,
                                             itemInfo[i + 1][0], lineColor2,
                                             lineWidth)
                animationColor = (0.12, 0.12, 0.12, 0.6)
                lineSet.ChangeLineAnimation(l1, animationColor, -0.35, 1)

        lineSet.SubmitChanges()
        self.route = topTransform