__author__ = 'CAM'

from enum import Enum

from win32com.client import CDispatch

from IFikomObject import IFikomObject

from IGosterimNoktasi3d import IGosterimNoktasi3d


class ResimFormati(Enum):
    CGM = 0
    EMF = 1
    TIFF = 2
    TIFFGriTon = 3
    BMP = 4
    JPEG = 5


class IKamera(IFikomObject):
    def __init__(self, obj:CDispatch, sahip:IFikomObject=None):
        super(IKamera, self).__init__(obj, sahip)
        self.sahip = sahip
        self.tipi = "IKamera"

        # --->Sabit Degiskenler

    @property
    def ismi(self) -> str:
        return self.catNesne.Name

    @ismi.setter
    def ismi(self, value:str):
        self.catNesne.Name = value

    @property
    def gosterimNoktasi3d(self) -> IGosterimNoktasi3d:
        return IGosterimNoktasi3d(self.catNesne.ViewPoint3d,self.sahip.sahip.pencere.gosterimler.item(0))

    @gosterimNoktasi3d.setter
    def gosterimNoktasi3d(self, value):
        self.catNesne.ViewPoint3d = value

    def goster(self):
        Viewer = self.sahip.sahip.pencere.gosterimler.item(0)
        Viewer.gosterimNoktasi3d = self.gosterimNoktasi3d
        Viewer.guncelle()

    def resimDosyaya(self, Dosya=None, Format:ResimFormati=ResimFormati.JPEG, ArkaPlan=[1, 1, 1],
                     Agac=False):
        DosyaIsmi = Dosya

        Viewer = self.sahip.sahip.pencere.gosterimler.item(0)
        self.goster()
        return Viewer.resimDosyaya(DosyaIsmi, Format.value, ArkaPlan, Agac)

    def __str__(self):
        return repr(self.ismi)