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
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)
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
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
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
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
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()
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
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