示例#1
0
void POVMS_Object::Merge(POVMS_Object& source)
{
	int err;

	err = POVMSObject_Merge(&source.data, &data);
	if(err != pov_base::kNoErr)
		throw POV_EXCEPTION_CODE(err);
}
示例#2
0
void POVMS_Object::SetType(POVMSType key, POVMSType value)
{
    int err;

    err = POVMSUtil_SetType(&data, key, value);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);
}
示例#3
0
void POVMS_Object::Remove(POVMSType key)
{
	int err;

	err = POVMSObject_Remove(&data, key);
	if(err != pov_base::kNoErr)
		throw POV_EXCEPTION_CODE(err);
}
示例#4
0
POVMS_Object::~POVMS_Object()
{
	int err;

	err = POVMSObject_Delete(&data);
	if(err != pov_base::kNoErr)
		throw POV_EXCEPTION_CODE(err);
}
示例#5
0
POVMS_Object::POVMS_Object(POVMSType objclass)
{
	int err;

	err = POVMSObject_New(&data, objclass);
	if(err != pov_base::kNoErr)
		throw POV_EXCEPTION_CODE(err);
}
示例#6
0
POVMS_Message::POVMS_Message(POVMS_Object& convert, POVMSType msgclass, POVMSType msgid) : POVMS_Object(convert)
{
    int err;

    err = POVMSMsg_SetupMessage(&data, msgclass, msgid);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);
}
示例#7
0
void POVMS_Message::SetDestinationAddress(POVMSAddress addr)
{
    int err;

    err = POVMSMsg_SetDestinationAddress(&data, addr);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);
}
示例#8
0
void POVMS_List::Clear()
{
    int err;

    err = POVMSAttrList_Clear(&data);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);
}
示例#9
0
void POVMS_Object::SetUCS2String(POVMSType key, const POVMSUCS2 *str)
{
	int err;

	err = POVMSUtil_SetUCS2String(&data, key, str);
	if(err != pov_base::kNoErr)
		throw POV_EXCEPTION_CODE(err);
}
示例#10
0
void POVMS_List::RemoveNth(int index)
{
    int err;

    err = POVMSAttrList_RemoveNth(&data, index);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);
}
示例#11
0
POVMS_List::POVMS_List(const POVMS_List& source)
{
    int err;

    err = POVMSAttrList_Copy(&source.data, &data);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);
}
示例#12
0
POVMS_List::~POVMS_List()
{
    int err;

    err = POVMSAttrList_Delete(&data);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);
}
示例#13
0
void POVMS_Attribute::Set(POVMSType type, const void *data, int datasize)
{
    int err;

    err = POVMSAttr_Set(&this->data, type, data, datasize);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);
}
示例#14
0
POVMS_Attribute::~POVMS_Attribute()
{
    int err;

    err = POVMSAttr_Delete(&data);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);
}
示例#15
0
POVMS_Attribute::POVMS_Attribute(const POVMS_Attribute& source)
{
    int err;

    err = POVMSAttr_Copy(&source.data, &data);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);
}
示例#16
0
POVMS_Attribute::POVMS_Attribute(const POVMSUCS2 *str)
{
    int len;
    int err;

    for(len = 0; str[len] != 0; len++) { }

    err = POVMSAttr_New(&data);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);
    err = POVMSAttr_Set(&data, kPOVMSType_UCS2String, reinterpret_cast<const void *>(str), (len + 1) * 2);
    if(err != pov_base::kNoErr)
    {
        (void)POVMSAttr_Delete(&data);
        throw POV_EXCEPTION_CODE(err);
    }
}
示例#17
0
文件: moov.cpp 项目: SteveShaw/povray
void PreWriteFrame(OStream *, const Animation::WriteOptions&, vector<string>&, void *state)
{
    PrivateData *pd = reinterpret_cast<PrivateData *>(state);

    if(pd == NULL)
        throw POV_EXCEPTION_CODE(kNullPointerErr);

    // there really is nothing to do here [trf]
}
示例#18
0
void POVMS_Object::Set(POVMSType key, POVMS_Object& attr)
{
    int err;

    err = POVMSObject_Set(&data, &attr.data, key);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);

    attr.DetachData();
}
示例#19
0
void POVMS_List::SetNth(int index, POVMS_Object& item)
{
    int err;

    err = POVMSAttrList_SetNth(&data, index, &item.data);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);

    item.DetachData();
}
示例#20
0
int POVMS_Object::GetUCS2String(POVMSType key, POVMSUCS2 *str, int maxlen)
{
    int err;

    err = POVMSUtil_GetUCS2String(&data, key, str, &maxlen);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);

    return maxlen;
}
示例#21
0
void POVMS_List::Append(POVMS_Object& item)
{
    int err;

    err = POVMSAttrList_Append(&data, &item.data);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);

    item.DetachData();
}
示例#22
0
OTextStream::OTextStream(const UCS2 *sname, unsigned int stype, bool append)
{
	if(sname == NULL)
		throw POV_EXCEPTION_CODE(kParamErr);

	stream = NewOStream(sname, stype, append);
	if(stream == NULL)
		throw POV_EXCEPTION(kCannotOpenFileErr, string("Cannot open file '") + UCS2toASCIIString(sname) + "' for output.");

	filename = UCS2String(sname);
}
示例#23
0
POVMS_Object::POVMS_Object(const POVMS_Object& source)
{
    if(source.IsNull() == false)
    {
        int err;

        err = POVMSObject_Copy(&source.data, &data);
        if(err != pov_base::kNoErr)
            throw POV_EXCEPTION_CODE(err);
    }
}
示例#24
0
int POVMS_List::GetListSize()
{
    int len = 0;
    int err;

    err = POVMSAttrList_Count(&data, &len);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);

    return len;
}
示例#25
0
void POVMS_SendMessage(POVMS_Message& msg)
{
    int err;

    err = POVMS_Send(nullptr, &msg.data, nullptr, kPOVMSSendMode_NoReply);

    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);

    msg.DetachData();
}
示例#26
0
POVMSAddress POVMS_Message::GetDestinationAddress()
{
    POVMSAddress addr;
    int err;

    err = POVMSMsg_GetDestinationAddress(&data, &addr);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);

    return addr;
}
示例#27
0
POVMSType POVMS_Message::GetIdentifier()
{
    POVMSType type;
    int err;

    err = POVMSMsg_GetMessageIdentifier(&data, &type);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);

    return type;
}
示例#28
0
POVMSType POVMS_Object::GetType(POVMSType key)
{
    POVMSType value;
    int err;

    err = POVMSUtil_GetType(&data, key, &value);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);

    return value;
}
示例#29
0
int POVMS_Object::GetUCS2StringLength(POVMSType key)
{
    int len = 0;
    int err;

    err = POVMSUtil_GetUCS2StringLength(&data, key, &len);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);

    return len;
}
示例#30
0
POVMS_Object& POVMS_Object::operator=(const POVMS_Object& source)
{
    int err;

    err = POVMSObject_Delete(&data);
    if((err == pov_base::kNoErr) && (IsNull() == false))
        err = POVMSObject_Copy(&source.data, &data);
    if(err != pov_base::kNoErr)
        throw POV_EXCEPTION_CODE(err);

    return *this;
}