<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 instanceCurrent = -1;
var instanceVersion = -1;
var startObjectIndex = -1;
/*
------------------------------------------------------------ */
/* 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;
startObjectIndex = player.Do('Object
GetCurrent');
DefaultView_init();
} 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() + "Stage_SourceLightV04EX_OP.kmo'");
if (instanceCurrent !=
'-1') {
searchLightSource();
}
} else if
(opened) {
// If the model has already been opened do
a normal refresh.
if (player.Do("Instance
GetCurrent") != 'null') {
var version;
var current;
current = player.Do("Instance GetCurrent");
version = player.Do("Instance GetVersion");
if ((version != instanceVersion) || (current != instanceCurrent)) {
//search if the right object has a
LightSource
instanceCurrent = current;
instanceVersion = version;
searchLightSource();
}
}
}
}
}
/*
------------------------------------------------------------ */
// Set default
function DefaultView_init() {
var player = document.getElementById("KribiPlayer");
// Set the camera to its initial position.
player.Do("Camera Position -1474.74,-2651.62,2470.09");
player.Do("Camera Orientation
-479.566,26.6425,0");
player.Do("Camera FieldOfView 71.00");
// Enable realistic rendering.
player.Do("Renderer Shading Realistic");
//starting reflector
if (player.Do("Instance
GetCurrent") == 'null') {
instanceCurrent = player.Do("Instance
SetCurrent 'reflector'");
} else {
instanceCurrent = player.Do("Instance
GetCurrent");
}
// Set tool
InstanceHorizontalPlaneMove();
}
/*
----------------------------------------------------------- */
function Default_init() {
var player = document.getElementById("KribiPlayer");
player.Do("Model OpenAsync '" +
FullModelsPath() + "Stage_SourceLightV04EX_OP.kmo'");
DefaultView_init();
}
/*
------------------------------------------------------------ */
function searchLightSource() {
var player = document.getElementById("KribiPlayer");
var indexObj = player.Do("Instance[" + instanceCurrent +
"] Object");
if (indexObj !=
"") {
//verify that the object is one of the
projectors
var nameObject = player.Do("Object[" + indexObj +
"] Name");
if ((nameObject ==
'HeaD') || (nameObject ==
'HeaD1')) {
//save IstanceCurrent
var iCurr = player.Do('Instance GetCurrent ');
//disable player's refresh
player.Do("Player RefreshDisplay 0");
//SetCurrent projector object
player.Do("Object SetCurrent " +
indexObj);
//cycle all instance inside the object to
search LightSource
var count = player.Do("Instance GetCount");
for (var
i = 0; i < count; i++) {
var index_o = player.Do("Instance[" +
i + "] Object");
var index_light = player.Do("Object["
+ index_o + "] Light");
if (index_light != 'null') {
loadLightSourceParameter(index_light);
}
}
//SetCurrent start object
player.Do("Object SetCurrent " +
startObjectIndex);
//reselect instance of the projectors
player.Do("Instance SetCurrent " +
iCurr);
//enable player's refresh
player.Do("Player RefreshDisplay 1");
}
}
}
/*
------------------------------------------------------------ */
function
loadLightSourceParameter(index_light) {
var player = document.getElementById("KribiPlayer");
player.Do("LightSource SetCurrent " +
index_light);
//LightSource: set Enabled
if (player.Do("LightSource
Enabled") == 1) {
document.getElementById("cb_ls_enabled").checked
= true
} else {
document.getElementById("cb_ls_enabled").checked
= false
}
//LightSource: set Aperture
$find("<%=
slider_ls_aperture.ClientID
%>").set_value(parseInt(player.Do("LightSource Aperture")));
document.getElementById("txt_ls_aperture").value
= player.Do("LightSource Aperture");
//LightSource: set Cast shadow
if (player.Do("LightSource CastShadows") == 1) {
document.getElementById("cb_ls_Castshadows").checked
= true
} else {
document.getElementById("cb_ls_Castshadows").checked
= false
}
//LightSource: set Softening
$find("<%=
slider_ls_Softening.ClientID
%>").set_value(parseInt(player.Do("LightSource Softening") * 100));
document.getElementById("txt_ls_Softening").value
= player.Do("LightSource Softening") * 100;
//LightSource: set Intensity
$find("<%=
slider_ls_intensity.ClientID
%>").set_value(parseInt(player.Do("LightSource Intensity") * 10));
document.getElementById("txt_ls_intensity").value
= player.Do("LightSource Intensity") * 10;
}
/*
------------------------------------------------------------ */
// 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++;
}
/*
------------------------------------------------------------ */
/* Change the LightSource Enabled */
function
HandleValueChange_Enabled(sender, arg) {
var player = document.getElementById("KribiPlayer");
if (document.getElementById("cb_ls_enabled").checked) {
player.Do("LightSource Enabled 1");
} else {
player.Do("LightSource Enabled 0");
}
}
/*
------------------------------------------------------------ */
/* Change the LightSource Aperture */
function
HandleValueChange_Aperture(sender, arg) {
var player = document.getElementById("KribiPlayer");
player.Do("LightSource Aperture " +
sender.get_value());
document.getElementById("txt_ls_aperture").value
= sender.get_value();
}
/*
------------------------------------------------------------ */
/* Change the LightSource Cast Shadow */
function
HandleValueChange_CastShadows(sender, arg) {
var player = document.getElementById("KribiPlayer");
if (document.getElementById("cb_ls_Castshadows").checked) {
player.Do("LightSource CastShadows 1");
} else {
player.Do("LightSource CastShadows 0");
}
}
/*
------------------------------------------------------------ */
/* Change the LightSource Softening */
function
HandleValueChange_Softening(sender, arg) {
var player = document.getElementById("KribiPlayer");
player.Do("LightSource Softening " +
(sender.get_value() / 100));
document.getElementById("txt_ls_Softening").value
= sender.get_value();
}
/*
------------------------------------------------------------ */
/* Change the LightSource Intensity */
function
HandleValueChange_Intensity(sender, arg) {
var player = document.getElementById("KribiPlayer");
player.Do("LightSource Intensity " +
sender.get_value() / 10);
document.getElementById("txt_ls_intensity").value
= sender.get_value();
}
/*
------------------------------------------------------------ */
/* Change the LightSource Color */
function SetLightSourceColor(var_color) {
var player = document.getElementById("KribiPlayer");
var indexLightSource = player.Do("LightSource GetCurrent ");
if (indexLightSource !=
'null') {
player.Do("LightSource Color '" +
var_color + "'");
} else {
alert("No LightSource selected!");
}
}
/*
------------------------------------------------------------ */
// Tools
function CameraOrbit() {
// Make the camera orbit around the scene
center.
var player = document.getElementById("KribiPlayer");
player.Do("Tool SetCurrent 'CameraOrbit'");
player.Do("ToolsPreferences OrbitMode
ObjectCenter");
}
/*
------------------------------------------------------------ */
function InstanceHorizontalPlaneMove() {
// Set Tool InstanceHorizontalPlaneMove
var player = document.getElementById("KribiPlayer");
player.Do("Tool SetCurrent
'InstanceHorizontalPlaneMove'");
player.Do("View SelectionStyle None");
}
/*
------------------------------------------------------------ */
function InstanceVerticalRotate() {
// Set Tool InstanceVerticalRotate
var player = document.getElementById("KribiPlayer");
player.Do("Tool SetCurrent
'InstanceVerticalRotate'");
player.Do("View SelectionStyle None");
}
/*
------------------------------------------------------------ */
// Render
function render_Wireframe() {
// Renderer Shading Wireframe
var player = document.getElementById("KribiPlayer");
player.Do("Renderer Shading Wireframe");
}
/*
------------------------------------------------------------ */
function render_Flat() {
// Renderer Shading Flat
var player = document.getElementById("KribiPlayer");
player.Do("Renderer Shading Flat");
}
/*
------------------------------------------------------------ */
function render_Textured() {
// Renderer Shading Textured
var player = document.getElementById("KribiPlayer");
player.Do("Renderer Shading Textured");
}
/*
------------------------------------------------------------ */
function render_Realistic() {
// Renderer Shading Realistic
var player = document.getElementById("KribiPlayer");
player.Do("Renderer Shading Realistic");
}
/*
------------------------------------------------------------ */
// Roll over
/*
------------------------------------------------------------ */
// Roll over images
function MouseInImages(id, image) {
var hidden_id =
'HI_' + id;
if
(window.document.getElementById(hidden_id).value == 0) {
window.document.images.namedItem(id).src = image;
}
}
/*
------------------------------------------------------------ */
//Roll out images
function MouseOutImages(id, image) {
var hidden_id =
'HI_' + id;
if
(window.document.getElementById(hidden_id).value == 0) {
window.document.images.namedItem(id).src = image;
}
}
/*
------------------------------------------------------------ */
// rendering - active Image
function changeImagesCube(id, images) {
var hidden_id =
'HI_' + id;
//set that image was been clicked
window.document.getElementById(hidden_id).value = 1;
window.document.images.namedItem(id).src = images;
for (i = 1; i < 5; i++) {
var cycle_id =
'Cube_img' + i;
if (cycle_id != id) {
var hidden_id_cycle =
'HI_' + cycle_id;
switch (cycle_id) {
case 'Cube_img1':
window.document.images.namedItem(cycle_id).src =
'/Products/Kribi 3D
Player/FeaturesLab/page_example/images/ShadingMode_Wireframe.png';
window.document.getElementById(hidden_id_cycle).value = 0;
break;
case 'Cube_img2':
window.document.images.namedItem(cycle_id).src =
'/Products/Kribi 3D
Player/FeaturesLab/page_example/images/ShadingMode_Flat.png';
window.document.getElementById(hidden_id_cycle).value = 0;
break;
case 'Cube_img3':
window.document.images.namedItem(cycle_id).src =
'/Products/Kribi 3D
Player/FeaturesLab/page_example/images/ShadingMode_Textured.png';
window.document.getElementById(hidden_id_cycle).value = 0;
break;
case 'Cube_img4':
window.document.images.namedItem(cycle_id).src =
'/Products/Kribi 3D
Player/FeaturesLab/page_example/images/ShadingMode_Realistic.png';
window.document.getElementById(hidden_id_cycle).value = 0;
break;
}
}
}
}
/*
------------------------------------------------------------ */
// camera - active image
function changeImagesCamera(id, image) {
var hidden_id =
'HI_' + id;
//set that image was been clicked
window.document.getElementById(hidden_id).value = 1;
window.document.images.namedItem(id).src = image;
for (i = 1; i < 4; i++) {
var cycle_id =
'Camera_img' + i;
if (cycle_id != id) {
var hidden_id_cycle =
'HI_' + cycle_id;
switch (cycle_id) {
case 'Camera_img1':
window.document.images.namedItem(cycle_id).src =
'/Products/Kribi 3D
Player/FeaturesLab/page_example/images/Camera_CameraOrbit.png';
window.document.getElementById(hidden_id_cycle).value = 0;
break;
case 'Camera_img2':
window.document.images.namedItem(cycle_id).src =
'/Products/Kribi 3D
Player/FeaturesLab/page_example/images/Instance_MoveHorizontalPlane.png';
window.document.getElementById(hidden_id_cycle).value = 0;
break;
case 'Camera_img3':
window.document.images.namedItem(cycle_id).src =
'/Products/Kribi 3D
Player/FeaturesLab/page_example/images/Instance_RotateUD.png';
window.document.getElementById(hidden_id_cycle).value = 0;
break;
}
}
}
}
</script>