summaryrefslogtreecommitdiff
path: root/indra/newview/llviewervisualparam.cpp
blob: 8c28d58f40ec88eec81e46792cc12514500a6cf9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/** 
 * @file llviewervisualparam.cpp
 * @brief Implementation of LLViewerVisualParam class
 *
 * Copyright (c) 2001-$CurrentYear$, Linden Research, Inc.
 * $License$
 */

//-----------------------------------------------------------------------------
// Header Files
//-----------------------------------------------------------------------------
#include "llviewerprecompiledheaders.h"

#include "llviewervisualparam.h"
#include "llxmltree.h"
#include "llui.h"
#include "llwearable.h"

//-----------------------------------------------------------------------------
// LLViewerVisualParamInfo()
//-----------------------------------------------------------------------------
LLViewerVisualParamInfo::LLViewerVisualParamInfo()
	:
	mWearableType( WT_INVALID ),
	mCamDist( 0.5f ),
	mCamAngle( 0.f ),
	mCamElevation( 0.f ),
	mEditGroupDisplayOrder( 0 ),
	mShowSimple(FALSE),
	mSimpleMin(0.f),
	mSimpleMax(100.f)
{
}

LLViewerVisualParamInfo::~LLViewerVisualParamInfo()
{
}

//-----------------------------------------------------------------------------
// parseXml()
//-----------------------------------------------------------------------------
BOOL LLViewerVisualParamInfo::parseXml(LLXmlTreeNode *node)
{
	llassert( node->hasName( "param" ) );

	if (!LLVisualParamInfo::parseXml(node))
		return FALSE;
	
	// VIEWER SPECIFIC PARAMS
	
	LLString wearable;
	static LLStdStringHandle wearable_string = LLXmlTree::addAttributeString("wearable");
	if( node->getFastAttributeString( wearable_string, wearable) )
	{
		mWearableType = LLWearable::typeNameToType( wearable );
	}

	static LLStdStringHandle edit_group_string = LLXmlTree::addAttributeString("edit_group");
	if (!node->getFastAttributeString( edit_group_string, mEditGroup))
	{
		mEditGroup = "";
	}

	// Optional camera offsets from the current joint center.  Used for generating "hints" (thumbnails).
	static LLStdStringHandle camera_distance_string = LLXmlTree::addAttributeString("camera_distance");
	node->getFastAttributeF32( camera_distance_string, mCamDist );
	static LLStdStringHandle camera_angle_string = LLXmlTree::addAttributeString("camera_angle");
	node->getFastAttributeF32( camera_angle_string, mCamAngle );	// in degrees
	static LLStdStringHandle camera_elevation_string = LLXmlTree::addAttributeString("camera_elevation");
	node->getFastAttributeF32( camera_elevation_string, mCamElevation );
	static LLStdStringHandle camera_target_string = LLXmlTree::addAttributeString("camera_target");
	node->getFastAttributeString( camera_target_string, mCamTargetName );

	mCamAngle += 180;

	static S32 params_loaded = 0;

	// By default, parameters are displayed in the order in which they appear in the xml file.
	// "edit_group_order" overriddes.
	static LLStdStringHandle edit_group_order_string = LLXmlTree::addAttributeString("edit_group_order");
	if( !node->getFastAttributeF32( edit_group_order_string, mEditGroupDisplayOrder ) )
	{
		mEditGroupDisplayOrder = (F32)params_loaded;
	}

	params_loaded++;
	
	return TRUE;
}

//-----------------------------------------------------------------------------
// LLViewerVisualParam()
//-----------------------------------------------------------------------------
LLViewerVisualParam::LLViewerVisualParam()
{
}

/*
//=============================================================================
// These virtual functions should always be overridden,
// but are included here for use as templates
//=============================================================================

//-----------------------------------------------------------------------------
// setInfo()
//-----------------------------------------------------------------------------

BOOL LLViewerVisualParam::setInfo(LLViewerVisualParamInfo *info)
{
	llassert(mInfo == NULL);
	if (info->mID < 0)
		return FALSE;
	mInfo = info;
	mID = info->mID;
	setWeight(getDefaultWeight(), FALSE );
	return TRUE;
}

//-----------------------------------------------------------------------------
// parseData()
//-----------------------------------------------------------------------------
BOOL LLViewerVisualParam::parseData(LLXmlTreeNode *node)
{
	LLViewerVisualParamInfo* info = new LLViewerVisualParamInfo;

	info->parseXml(node);
	if (!setInfo(info))
		return FALSE;
	
	return TRUE;
}
*/