<script
language="JavaScript"
src="/js/Kribi3DPlayer.js"
type="text/javascript"></script>
<script
language="JavaScript"
src="/js/gFunct.js"
type="text/javascript"></script>
<script
language="JavaScript"
type="text/javascript">
var controlCount = 3;
var loadedControls = 0;
var opening =
false;
var opened =
false;
var materialCurrent = -1;
var materialVersion = -1;
var arrMaterial_TextureScaleX;
var arrMaterial_TextureScaleY;
/*
------------------------------------------------------------ */
/* This function is invoked every time the
player sends a message to the
* browser, we use it to intercept the Ready event which is sent when
* the player is ready to accept commands and the ModelOpened event which
is
* sent when the model has been loaded. */
function KribiPlayer_Tell(msg) {
var player = document.getElementById("KribiPlayer");
if (msg ==
"Ready") {
// The player is ready to accept commands.
} else if
(msg == "ModelOpened") {
// The model has been opened, initialize the
camera and the page controls.
opened = true;
DefaultView_init();
// Save the initial parameters of every
instance.
// 1. fill array
var count = player.Do("Material
GetCount");
arrMaterial_TextureScaleX = new
Array(count);
arrMaterial_TextureScaleY = new
Array(count);
for (i = 0; i < count; i++) {
var materialTextureScales = player.Do("Material["
+ i + "] TextureScales ");
var arr_materialTextureScales =
materialTextureScales.split(",");
arrMaterial_TextureScaleX[i] = arr_materialTextureScales[0] * 1000;
arrMaterial_TextureScaleY[i] = arr_materialTextureScales[1] * 1000;
}
} else if
(msg == "Refresh") {
if ((loadedControls == controlCount) &&
!opening) {
// Wait for all the controls to be opened, make
sure that this will run only once.
opening = true;
player.Do("Model OpenAsync '" +
FullModelsPath() + "Toys_MatTextureV01_OP.kmo'");
} else if
(opened) {
// If the model has already been opened do a
normal refresh.
var version = player.Do("Material
GetVersion");
var current = player.Do("Material
GetCurrent");
if ((current != materialCurrent) ||
(version != materialVersion)) {
materialCurrent = current;
materialVersion
= version;
set_Parameter();
}
}
}
}
/*
------------------------------------------------------------ */
// Set default
function DefaultView_init() {
var player = document.getElementById("KribiPlayer");
// Set the camera to its initial position.
player.Do("Camera Position
-1910.91,-5051.08,3266.14");
player.Do("Camera Orientation
-110.438,13.3213,0");
player.Do("Camera FieldOfView 71.00");
// Enable realistic rendering.
player.Do("Renderer Shading Realistic");
// Set tool
InstanceHorizontalPlaneMove();
//Set the default material
player.Do("Material SetCurrent 'Texture1'");
}
/*
------------------------------------------------------------ */
// Tools
function InstanceHorizontalPlaneMove() {
// Set Tool InstanceHorizontalPlaneMove
var player = document.getElementById("KribiPlayer");
player.Do("Tool SetCurrent
'InstanceHorizontalPlaneMove'");
player.Do("View SelectionStyle None");
}
/*
------------------------------------------------------------ */
// Function
function ConvertPercentage(myValue) {
var convert_value = myValue / 100.0;
return convert_value.toString();
}
/*
------------------------------------------------------------ */
function SetBitmap(var_pic) {
var player = document.getElementById("KribiPlayer");
player.Do("Material Texture '" +
var_pic + "'");
}
/*
------------------------------------------------------------ */
function setSlider(slider,
original_value, value) {
var max = parseInt(original_value) *2;
var min = parseInt(original_value) *0.5;
slider.set_maximumValue(max);
slider.set_minimumValue(min);
slider.set_value(parseInt(value));
}
/*
------------------------------------------------------------ */
function set_Parameter() {
var player = document.getElementById("KribiPlayer");
var materialSelected = player.Do("Material
GetCurrent");
if (materialSelected !=
"") {
player.Do("Material SetCurrent " +
materialSelected + " ");
var materialTextureAmount = player.Do("Material
TextureAmount ");
var materialTextureScales =
player.Do("Material TextureScales ");
var arr_materialTextureScales =
materialTextureScales.split(",");
// set value of textbox and slider
window.document.getElementById("txt_TextureAmount").value
= materialTextureAmount * 100;
var js_slider_TextureAmount = $find("<%=
slider_TextureAmount.ClientID %>");
js_slider_TextureAmount.set_value(parseInt(materialTextureAmount * 100));
window.document.getElementById("txt_Xscale").value
= arr_materialTextureScales[0] ;
window.document.getElementById("txt_Yscale").value
= arr_materialTextureScales[1] ;
var js_slider_Xscale = $find("<%=
slider_Xscale.ClientID %>");
setSlider(js_slider_Xscale,arrMaterial_TextureScaleX[materialSelected],
arr_materialTextureScales[0] * 1000);
var js_slider_Yscale = $find("<%=
slider_Yscale.ClientID %>");
setSlider(js_slider_Yscale, arrMaterial_TextureScaleY[materialSelected],
arr_materialTextureScales[1] * 1000);
}
}
/*
------------------------------------------------------------ */
// Event handlers.
/* Increase the count of the 'loaded' global
variable, this is used to
* check when all the Telerik controls have been loaded before sending
* commands to the player. */
function HandleClientLoad() {
loadedControls++;
}
/*
------------------------------------------------------------ */
function HandleValueChange_TextureAmount(sender,
eventArgs) {
$get("txt_TextureAmount").value =
sender.get_value();
var player = document.getElementById("KribiPlayer");
player.Do("Material TextureAmount " +
ConvertPercentage(sender.get_value()) + " ");
}
/*
------------------------------------------------------------ */
function HandleValueChange_Xscale(sender,
eventArgs) {
if (document.getElementById("txt_Yscale").value
!= undefined) {
var player = document.getElementById("KribiPlayer");
var
js_txt_Yscale = document.getElementById("txt_Yscale");
player.Do("Material TextureScales
" + sender.get_value() / 1000 + "," +
js_txt_Yscale.value + " ");
}
}
/*
------------------------------------------------------------ */
function HandleValueChange_Yscale(sender,
eventArgs) {
if (document.getElementById("txt_Xscale").value
!= undefined) {
var player = document.getElementById("KribiPlayer");
var
js_txt_Xscale = document.getElementById("txt_Xscale");
player.Do("Material TextureScales
" + js_txt_Xscale.value + ","
+ sender.get_value() / 1000 + " ");
}
}
|