Final trueSpace7.61 Beta 8 Std Unofficial Update

User avatar
trueBlue
Captain
Posts: 5208
Joined: 06 Jul 2009, 22:50
Type the number ten into the box: 10

Re: Final trueSpace7.61 Beta 8 Std Unofficial Update

Post by trueBlue »

Update 105 for trueSpace7.61 Beta 8 Standalone Unofficial Update Version 8
Final Update

Clintons3D Package VERSION=v.1638431

Rs Main Libraries/Components - Compositing
Add
Scene Color Picker

December 12, 2021

https://united3dartists.com/forum/viewt ... =55&t=3731

Instructions:

Recommend that you completely Uninstall and Install trueSpace7.61 Standalone to a clean directory

1.) Run the tS7.61B8Std.8.exe
2.) Browse [...] to where you installed C:\trueSpace761Std, select its folder and then the Extract button
3.) Select the Yes to All button
4.) Open trueSpace and select the Reset to Default Context icon
5.) In Workspace select the Default layout tab

The included Plugins.xml file has the Clintons3dPlugin, Clintons3dPluginExt and Clintons3dRsView, Installed and Loaded to the default path: C:\trueSpace761Std
WARNING: These 3 plugins are required to be Installed and Loaded when using trueSpace!
User avatar
trueBlue
Captain
Posts: 5208
Joined: 06 Jul 2009, 22:50
Type the number ten into the box: 10

Re: Final trueSpace7.61 Beta 8 Std Unofficial Update

Post by trueBlue »

@ Clinton
I think I have an improved UnGlue script
This is my first attempt at using: util.SetNodeValueMatrix
From what I can tell this works and narrows it down to One Undo
Can you try this out?

Code: Select all

// 3D Unencapsulate
// Author - Clinton Reese 4/1/2021
// Update 12/15/2021
function Execute(params)
{
	var sel = Node.Selection(); //list of selected nodes

	if(!IsValidSelection(sel)) return;

	var numSelected = Node.SelectionLength(sel); // number of selected nodes

	if(numSelected < 1) return;

	for (var i = 0; i < numSelected; i++)
	{
		var currentEncapsed = Node.SelectionGetAt(sel, i);
		if(Node.IsCamera(currentEncapsed)) continue;
		if(Node.IsLight(currentEncapsed)) continue;
		if(Node.SubObjectCount(currentEncapsed) == 0) continue;
		if(Node.IsRenderable(currentEncapsed)) continue;
		if(isaNURBS(currentEncapsed)) continue;

		CleanRenderAttr(currentEncapsed)
		UnEncaps(currentEncapsed);
	}

	var scene = Space.CurrentScene();
	var numTopLevel = Node.SubObjectCount(scene);
		for(var i=0; i< numTopLevel; i++) {
		var item = scene + "/" + Node.SubObject(scene, i);
		AddOwnerName(item)
	}




}

function IsValidSelection(selection)
{
	if(!selection) return false;

	var reWhiteSpace = /^\s/; // whitespace in first character position for cleaning selection text

	var selectionArray = selection.split(";");

	for(var i = 0; i < selectionArray.length; i++) {
		var selClean = selectionArray[i].replace(reWhiteSpace, "");

		if(!Node.Exists(selClean)) {
			return false;
		}
	}

	return true;
}


function CleanRenderAttr(currentEncapsed)
{
	var numberChildren = Node.SubObjectCount(currentEncapsed);
util = System.CreateDO("Clintons3D Package/Utility functions");

	//populate deletion list from unencapsed nodes
	var deleteMeList = [];
	var firstORA = true;

	for(var i = numberChildren - 1 ;i >= 0; i--) {
		var newNode = currentEncapsed + "/" + Node.SubObject(currentEncapsed, i);
		if(Node.IsCamera(newNode)) continue;
		if(Node.IsLight(newNode)) continue;

		if(Node.ConExists(newNode, "Input Attributes")) {
			var oraOriginal = Node.LinkedInputNode(newNode, "Input Attributes", 0);//hope that's right
			util.Delete(newNode + "/Object Render Attributes");
			util.Delete(newNode + "/RenderAttributes");
			util.ConRemove(newNode, "Input Attributes");
			util.ConRemove(newNode, "RenderAttributes");
			var ora = util.Copy(oraOriginal, newNode);
			Node.ExportConnector(ora, "RenderAttributes", "", 1, 1);
			if(firstORA) {
				deleteMeList.push(oraOriginal);
				firstORA = false;
			}
		}
	}

	//delete nodes
	for(var i = 0; i < deleteMeList.length; i++) {
		util.Delete(deleteMeList[i]);
	}

}

function UnEncaps(currentEncapsed)
{
	var parent = Node.Owner(currentEncapsed);

	var originalNumberChildren = Node.SubObjectCount(parent);

util = System.CreateDO("Clintons3D Package/Utility functions");

	LE.Unencapsulate(currentEncapsed);

	var newNumberChildren = Node.SubObjectCount(parent);

	//populate deletion list from unencapsed nodes
	var deleteMeList = [];
	var firstORA = true;

	for(var i = newNumberChildren - 1 ;i >= originalNumberChildren - 1; i--) {
		var newNode = parent + "/" + Node.SubObject(parent, i);

		//arrange in LE
		util.ConRemove(newNode, "LE2Data");

		if(Node.IsCamera(newNode)) continue;
		if(Node.IsLight(newNode)) continue;
		if(Node.IsRenderable(newNode)) continue;

		//if transform node and is parent
		if(Node.ConExists(newNode, "WldMatrix") && Node.LinkedOutputNodeCount(newNode, "WldMatrix") > 0) {
			deleteMeList.push(newNode);
			continue;
		}

		if(Node.ConExists(newNode, "AnimData")) {
			deleteMeList.push(newNode);
		}

		if(Node.ConExists(newNode, "Pivot") && Node.SubObjectCount(newNode) < 1) {
			deleteMeList.push(newNode);
		}

		if(Node.ConExists(newNode, "Input Attributes")) {
			var oraOriginal = Node.LinkedInputNode(newNode, "Input Attributes", 1);//hope that's right
			util.Delete(newNode + "/Object Render Attributes");
			util.Delete(newNode + "/RenderAttributes");
			util.ConRemove(newNode, "Input Attributes");
			util.ConRemove(newNode, "RenderAttributes");
			var ora = util.Copy(oraOriginal, newNode);
			Node.ExportConnector(ora, "RenderAttributes", "", 1, 1);
			if(firstORA) {
				deleteMeList.push(oraOriginal);
				firstORA = false;
			}
		}
	}

	//process unencapsed nodes
	for(var i = newNumberChildren - 1 ;i >= originalNumberChildren - 1; i--) {
		var newNode = parent + "/" + Node.SubObject(parent, i);
		if(Node.IsCamera(newNode)) continue;
		if(Node.IsLight(newNode)) continue;
		if(Node.IsRenderable(newNode)) continue;
		if(isaNURBS(newNode)) continue;

		//if transform node and is parent
		if(Node.ConExists(newNode, "WldMatrix") && Node.LinkedOutputNodeCount(newNode, "WldMatrix") > 0) {
			DisownChildren(newNode);
		}
	}

	//delete nodes
	for(var i = 0; i < deleteMeList.length; i++) {
		util.Delete(deleteMeList[i]);
	}
util.SetStatusMessage("3D Unencapsulate complete", 4000);
}

function DisownChildren(theTransform)
{
	var transformMatrix = System.CreateDO("Math Package/Matrix Float Data");
	var worldMat = System.CreateDO("Math Package/Matrix Float Data");
	var childMatrix = System.CreateDO("Math Package/Matrix Float Data");
	var identityMatrix = System.CreateDO("Math Package/Matrix Float Data");

	var numLinkedChildren = Node.LinkedOutputNodeCount(theTransform, "WldMatrix");

util = System.CreateDO("Clintons3D Package/Utility functions");

	//-> Gather list of child nodes, nodes connected to the transform WldMatrix connector
	var children = [];
	for(var i = 0; i < numLinkedChildren; i++) {
		var child = Node.LinkedOutputNode(theTransform, "WldMatrix", i)
		children.push(child);
	}

	transformMatrix = Node.Value(theTransform, "Matrix");

	var numMatrixParents = Node.LinkedInputNodeCount(theTransform, "OwnerMatrix");

	identityMatrix.LoadIdentity();

	//<-
	for(var i = 0; i < children.length; i++) {

		var currentChild = children[i];

		//disconnect the parent from the child
//		Node.DisconnectAllInputs(currentChild, "OwnerMatrix");
util.DisconnectAll(currentChild + "/OwnerMatrix");

		//merge OwnerMatrix into the Matrix value by
		//multiply child matrix by the parent matrix and clear the OwnerMatrix value

		if(isaNURBS(currentChild)) {
			childMatrix = Node.Value(currentChild + "/controlPointMesh", "Matrix");
		} else {
			childMatrix = Node.Value(currentChild, "Matrix");
		}

		childMatrix.Mult(transformMatrix);

		if(isaNURBS(currentChild)) {
//			Node.Value(currentChild + "/controlPointMesh", "Matrix") = childMatrix;

util.SetNodeValueMatrix(currentChild + "/controlPointMesh", "Matrix",	childMatrix.GetAt(0,0), childMatrix.GetAt(1,0), childMatrix.GetAt(2,0), childMatrix.GetAt(3,0), childMatrix.GetAt(0,1), childMatrix.GetAt(1,1), childMatrix.GetAt(2,1), childMatrix.GetAt(3,1), childMatrix.GetAt(0,2), childMatrix.GetAt(1,2), childMatrix.GetAt(2,2), childMatrix.GetAt(3,2),childMatrix.GetAt(0,3), childMatrix.GetAt(1,3), childMatrix.GetAt(2,3), childMatrix.GetAt(3,3))


		} else {
//			Node.Value(currentChild, "Matrix") = childMatrix;

util.SetNodeValueMatrix(currentChild, "Matrix",	childMatrix.GetAt(0,0), childMatrix.GetAt(1,0), childMatrix.GetAt(2,0), childMatrix.GetAt(3,0), childMatrix.GetAt(0,1), childMatrix.GetAt(1,1), childMatrix.GetAt(2,1), childMatrix.GetAt(3,1), childMatrix.GetAt(0,2), childMatrix.GetAt(1,2), childMatrix.GetAt(2,2), childMatrix.GetAt(3,2),childMatrix.GetAt(0,3), childMatrix.GetAt(1,3), childMatrix.GetAt(2,3), childMatrix.GetAt(3,3))

		}

//		Node.Value(currentChild, "OwnerMatrix") = identityMatrix;

util.SetNodeValueMatrix(currentChild, "OwnerMatrix",	identityMatrix.GetAt(0,0), identityMatrix.GetAt(1,0), identityMatrix.GetAt(2,0), identityMatrix.GetAt(3,0), identityMatrix.GetAt(0,1), identityMatrix.GetAt(1,1), identityMatrix.GetAt(2,1), identityMatrix.GetAt(3,1), identityMatrix.GetAt(0,2), identityMatrix.GetAt(1,2), identityMatrix.GetAt(2,2), identityMatrix.GetAt(3,2),identityMatrix.GetAt(0,3), identityMatrix.GetAt(1,3), identityMatrix.GetAt(2,3), identityMatrix.GetAt(3,3))


		//if still inside a group, connect to transform node
		if(numMatrixParents > 0) {
			var newParentTransform = Node.LinkedInputNode(theTransform, "OwnerMatrix", 0);
			if(Node.ConExists(newParentTransform, "WldMatrix")) {
				//Node.ConnectTo(children[i], "OwnerMatrix", newParentTransform, "WldMatrix");
				util.ConnectTo(newParentTransform, "WldMatrix", currentChild, "OwnerMatrix");
			}
		}
	}
}		

function isaNURBS(currentNode)
{
	var nodeOwner = Node.Owner(currentNode);

	//child of nurbs selected
	if(Node.ConExists(nodeOwner, "isaCurve")) return true;
	if(Node.Exists(nodeOwner + "/CP to patch CP")) return true;

	//nurbs direct selected
	if(Node.ConExists(currentNode, "isaCurve")) return true;
	if(Node.Exists(currentNode + "/CP to patch CP")) return true;

	return false;
}

function AddOwnerName(curNode)
{
	var util = System.CreateDO("Clintons3D Package/Utility functions");
		if(Node.Exists(curNode + "/Object Render Attributes") && Node.ConExists(curNode + "/Object Render Attributes", "Object_Name")) {
		var str = Node.ShortName(curNode)
		util.SetNodeValueString(curNode + "/Object Render Attributes", "Object_Name", str)
		return;
	}
			if(Node.IsRenderable(curNode) || Node.IsCamera(curNode) || Node.IsLight(curNode)) return;
			var numChildren = Node.SubObjectCount(curNode);
				for(var i=0; i< numChildren ; i++) {
				var child = curNode+ "/" + Node.SubObject(curNode, i);
				AddOwnerName(child);
	}
}

User avatar
clintonman
Captain
Posts: 5422
Joined: 21 May 2009, 21:08
Type the number ten into the box: 0
Location: California
Contact:

Re: Final trueSpace7.61 Beta 8 Std Unofficial Update

Post by clintonman »

Seems to work. I recommend the following changes

move the SetNodeValueMatrix into a function so there is less typing and code
change format of that command so it's not so wide
define util only once at the start without var so it's available everywhere

recommended changes below

Code: Select all

// 3D Unencapsulate
// Author - Clinton Reese 4/1/2021
// Update 12/15/2021
function Execute(params)
{
	util = System.CreateDO("Clintons3D Package/Utility functions");

	var sel = Node.Selection(); //list of selected nodes

	if(!IsValidSelection(sel)) return;

	var numSelected = Node.SelectionLength(sel); // number of selected nodes

	if(numSelected < 1) return;

	for (var i = 0; i < numSelected; i++)
	{
		var currentEncapsed = Node.SelectionGetAt(sel, i);
		if(Node.IsCamera(currentEncapsed)) continue;
		if(Node.IsLight(currentEncapsed)) continue;
		if(Node.SubObjectCount(currentEncapsed) == 0) continue;
		if(Node.IsRenderable(currentEncapsed)) continue;
		if(isaNURBS(currentEncapsed)) continue;

		CleanRenderAttr(currentEncapsed)
		UnEncaps(currentEncapsed);
	}

	var scene = Space.CurrentScene();
	var numTopLevel = Node.SubObjectCount(scene);
		for(var i=0; i< numTopLevel; i++) {
		var item = scene + "/" + Node.SubObject(scene, i);
		AddOwnerName(item)
	}




}

function IsValidSelection(selection)
{
	if(!selection) return false;

	var reWhiteSpace = /^\s/; // whitespace in first character position for cleaning selection text

	var selectionArray = selection.split(";");

	for(var i = 0; i < selectionArray.length; i++) {
		var selClean = selectionArray[i].replace(reWhiteSpace, "");

		if(!Node.Exists(selClean)) {
			return false;
		}
	}

	return true;
}


function CleanRenderAttr(currentEncapsed)
{
	var numberChildren = Node.SubObjectCount(currentEncapsed);
//util = System.CreateDO("Clintons3D Package/Utility functions");

	//populate deletion list from unencapsed nodes
	var deleteMeList = [];
	var firstORA = true;

	for(var i = numberChildren - 1 ;i >= 0; i--) {
		var newNode = currentEncapsed + "/" + Node.SubObject(currentEncapsed, i);
		if(Node.IsCamera(newNode)) continue;
		if(Node.IsLight(newNode)) continue;

		if(Node.ConExists(newNode, "Input Attributes")) {
			var oraOriginal = Node.LinkedInputNode(newNode, "Input Attributes", 0);//hope that's right
			util.Delete(newNode + "/Object Render Attributes");
			util.Delete(newNode + "/RenderAttributes");
			util.ConRemove(newNode, "Input Attributes");
			util.ConRemove(newNode, "RenderAttributes");
			var ora = util.Copy(oraOriginal, newNode);
			Node.ExportConnector(ora, "RenderAttributes", "", 1, 1);
			if(firstORA) {
				deleteMeList.push(oraOriginal);
				firstORA = false;
			}
		}
	}

	//delete nodes
	for(var i = 0; i < deleteMeList.length; i++) {
		util.Delete(deleteMeList[i]);
	}

}

function UnEncaps(currentEncapsed)
{
	var parent = Node.Owner(currentEncapsed);

	var originalNumberChildren = Node.SubObjectCount(parent);

//util = System.CreateDO("Clintons3D Package/Utility functions");

	LE.Unencapsulate(currentEncapsed);

	var newNumberChildren = Node.SubObjectCount(parent);

	//populate deletion list from unencapsed nodes
	var deleteMeList = [];
	var firstORA = true;

	for(var i = newNumberChildren - 1 ;i >= originalNumberChildren - 1; i--) {
		var newNode = parent + "/" + Node.SubObject(parent, i);

		//arrange in LE
		util.ConRemove(newNode, "LE2Data");

		if(Node.IsCamera(newNode)) continue;
		if(Node.IsLight(newNode)) continue;
		if(Node.IsRenderable(newNode)) continue;

		//if transform node and is parent
		if(Node.ConExists(newNode, "WldMatrix") && Node.LinkedOutputNodeCount(newNode, "WldMatrix") > 0) {
			deleteMeList.push(newNode);
			continue;
		}

		if(Node.ConExists(newNode, "AnimData")) {
			deleteMeList.push(newNode);
		}

		if(Node.ConExists(newNode, "Pivot") && Node.SubObjectCount(newNode) < 1) {
			deleteMeList.push(newNode);
		}

		if(Node.ConExists(newNode, "Input Attributes")) {
			var oraOriginal = Node.LinkedInputNode(newNode, "Input Attributes", 1);//hope that's right
			util.Delete(newNode + "/Object Render Attributes");
			util.Delete(newNode + "/RenderAttributes");
			util.ConRemove(newNode, "Input Attributes");
			util.ConRemove(newNode, "RenderAttributes");
			var ora = util.Copy(oraOriginal, newNode);
			Node.ExportConnector(ora, "RenderAttributes", "", 1, 1);
			if(firstORA) {
				deleteMeList.push(oraOriginal);
				firstORA = false;
			}
		}
	}

	//process unencapsed nodes
	for(var i = newNumberChildren - 1 ;i >= originalNumberChildren - 1; i--) {
		var newNode = parent + "/" + Node.SubObject(parent, i);
		if(Node.IsCamera(newNode)) continue;
		if(Node.IsLight(newNode)) continue;
		if(Node.IsRenderable(newNode)) continue;
		if(isaNURBS(newNode)) continue;

		//if transform node and is parent
		if(Node.ConExists(newNode, "WldMatrix") && Node.LinkedOutputNodeCount(newNode, "WldMatrix") > 0) {
			DisownChildren(newNode);
		}
	}

	//delete nodes
	for(var i = 0; i < deleteMeList.length; i++) {
		util.Delete(deleteMeList[i]);
	}
util.SetStatusMessage("3D Unencapsulate complete", 4000);
}

function DisownChildren(theTransform)
{
	var transformMatrix = System.CreateDO("Math Package/Matrix Float Data");
	var worldMat = System.CreateDO("Math Package/Matrix Float Data");
	var childMatrix = System.CreateDO("Math Package/Matrix Float Data");
	var identityMatrix = System.CreateDO("Math Package/Matrix Float Data");

	var numLinkedChildren = Node.LinkedOutputNodeCount(theTransform, "WldMatrix");

//util = System.CreateDO("Clintons3D Package/Utility functions");

	//-> Gather list of child nodes, nodes connected to the transform WldMatrix connector
	var children = [];
	for(var i = 0; i < numLinkedChildren; i++) {
		var child = Node.LinkedOutputNode(theTransform, "WldMatrix", i)
		children.push(child);
	}

	transformMatrix = Node.Value(theTransform, "Matrix");

	var numMatrixParents = Node.LinkedInputNodeCount(theTransform, "OwnerMatrix");

	identityMatrix.LoadIdentity();

	//<-
	for(var i = 0; i < children.length; i++) {

		var currentChild = children[i];

		//disconnect the parent from the child
//		Node.DisconnectAllInputs(currentChild, "OwnerMatrix");
util.DisconnectAll(currentChild + "/OwnerMatrix");

		//merge OwnerMatrix into the Matrix value by
		//multiply child matrix by the parent matrix and clear the OwnerMatrix value

		if(isaNURBS(currentChild)) {
			childMatrix = Node.Value(currentChild + "/controlPointMesh", "Matrix");
		} else {
			childMatrix = Node.Value(currentChild, "Matrix");
		}

		childMatrix.Mult(transformMatrix);

		if(isaNURBS(currentChild)) {
//			Node.Value(currentChild + "/controlPointMesh", "Matrix") = childMatrix;

//util.SetNodeValueMatrix(currentChild + "/controlPointMesh", "Matrix",	childMatrix.GetAt(0,0), childMatrix.GetAt(1,0), childMatrix.GetAt(2,0), childMatrix.GetAt(3,0), childMatrix.GetAt(0,1), childMatrix.GetAt(1,1), childMatrix.GetAt(2,1), childMatrix.GetAt(3,1), childMatrix.GetAt(0,2), childMatrix.GetAt(1,2), childMatrix.GetAt(2,2), childMatrix.GetAt(3,2),childMatrix.GetAt(0,3), childMatrix.GetAt(1,3), childMatrix.GetAt(2,3), childMatrix.GetAt(3,3))
SetNodeMatrix(currentChild + "/controlPointMesh", "Matrix",	childMatrix);

		} else {
//			Node.Value(currentChild, "Matrix") = childMatrix;

//util.SetNodeValueMatrix(currentChild, "Matrix",	childMatrix.GetAt(0,0), childMatrix.GetAt(1,0), childMatrix.GetAt(2,0), childMatrix.GetAt(3,0), childMatrix.GetAt(0,1), childMatrix.GetAt(1,1), childMatrix.GetAt(2,1), childMatrix.GetAt(3,1), childMatrix.GetAt(0,2), childMatrix.GetAt(1,2), childMatrix.GetAt(2,2), childMatrix.GetAt(3,2),childMatrix.GetAt(0,3), childMatrix.GetAt(1,3), childMatrix.GetAt(2,3), childMatrix.GetAt(3,3))
SetNodeMatrix(currentChild, "Matrix",	childMatrix);
		}

//		Node.Value(currentChild, "OwnerMatrix") = identityMatrix;

//util.SetNodeValueMatrix(currentChild, "OwnerMatrix",	identityMatrix.GetAt(0,0), identityMatrix.GetAt(1,0), identityMatrix.GetAt(2,0), identityMatrix.GetAt(3,0), identityMatrix.GetAt(0,1), identityMatrix.GetAt(1,1), identityMatrix.GetAt(2,1), identityMatrix.GetAt(3,1), identityMatrix.GetAt(0,2), identityMatrix.GetAt(1,2), identityMatrix.GetAt(2,2), identityMatrix.GetAt(3,2),identityMatrix.GetAt(0,3), identityMatrix.GetAt(1,3), identityMatrix.GetAt(2,3), identityMatrix.GetAt(3,3))
SetNodeMatrix(currentChild, "OwnerMatrix",	identityMatrix);


		//if still inside a group, connect to transform node
		if(numMatrixParents > 0) {
			var newParentTransform = Node.LinkedInputNode(theTransform, "OwnerMatrix", 0);
			if(Node.ConExists(newParentTransform, "WldMatrix")) {
				//Node.ConnectTo(children[i], "OwnerMatrix", newParentTransform, "WldMatrix");
				util.ConnectTo(newParentTransform, "WldMatrix", currentChild, "OwnerMatrix");
			}
		}
	}
}		

function isaNURBS(currentNode)
{
	var nodeOwner = Node.Owner(currentNode);

	//child of nurbs selected
	if(Node.ConExists(nodeOwner, "isaCurve")) return true;
	if(Node.Exists(nodeOwner + "/CP to patch CP")) return true;

	//nurbs direct selected
	if(Node.ConExists(currentNode, "isaCurve")) return true;
	if(Node.Exists(currentNode + "/CP to patch CP")) return true;

	return false;
}

function AddOwnerName(curNode)
{
	//var util = System.CreateDO("Clintons3D Package/Utility functions");
		if(Node.Exists(curNode + "/Object Render Attributes") && Node.ConExists(curNode + "/Object Render Attributes", "Object_Name")) {
		var str = Node.ShortName(curNode)
		util.SetNodeValueString(curNode + "/Object Render Attributes", "Object_Name", str)
		return;
	}
			if(Node.IsRenderable(curNode) || Node.IsCamera(curNode) || Node.IsLight(curNode)) return;
			var numChildren = Node.SubObjectCount(curNode);
				for(var i=0; i< numChildren ; i++) {
				var child = curNode+ "/" + Node.SubObject(curNode, i);
				AddOwnerName(child);
	}
}

function SetNodeMatrix(node, conn, matrix)
{
	util.SetNodeValueMatrix(node, conn,	matrix.GetAt(0,0), matrix.GetAt(1,0), matrix.GetAt(2,0), matrix.GetAt(3,0), 
																		matrix.GetAt(0,1), matrix.GetAt(1,1), matrix.GetAt(2,1), matrix.GetAt(3,1), 
																		matrix.GetAt(0,2), matrix.GetAt(1,2), matrix.GetAt(2,2), matrix.GetAt(3,2),
																		matrix.GetAt(0,3), matrix.GetAt(1,3), matrix.GetAt(2,3), matrix.GetAt(3,3));

}
Clinton Reese

http://clintons3d.com
User avatar
trueBlue
Captain
Posts: 5208
Joined: 06 Jul 2009, 22:50
Type the number ten into the box: 10

Re: Final trueSpace7.61 Beta 8 Std Unofficial Update

Post by trueBlue »

Update 106 for trueSpace7.61 Beta 8 Standalone Unofficial Update Version 8
Final Update

NURBSScripts Update: Author - Clinton Reese December 14, 2021
freezeNURBS - Add: RsApp.ClearHistory()

Unglue.xml - Add Utility Function commands
Cut.xml - Add Utility Function command
Show Object Attribs.xml - Fix for NURBS Group

View Widget Transparency
Encircle 'Green' i + Move cursor opens the View Widget Help and View Widget Transparency panel
Before
Before.png
Before.png (11.53 KiB) Viewed 1949 times
After
After.png
After.png (11.11 KiB) Viewed 1949 times
.
December 16, 2021

https://united3dartists.com/forum/viewt ... =55&t=3731

Instructions:

Recommend that you completely Uninstall and Install trueSpace7.61 Standalone to a clean directory

1.) Run the tS7.61B8Std.8.exe
2.) Browse [...] to where you installed C:\trueSpace761Std, select its folder and then the Extract button
3.) Select the Yes to All button
4.) Open trueSpace and select the Reset to Default Context icon
5.) In Workspace select the Default layout tab

The included Plugins.xml file has the Clintons3dPlugin, Clintons3dPluginExt and Clintons3dRsView, Installed and Loaded to the default path: C:\trueSpace761Std
WARNING: These 3 plugins are required to be Installed and Loaded when using trueSpace!
User avatar
trueBlue
Captain
Posts: 5208
Joined: 06 Jul 2009, 22:50
Type the number ten into the box: 10

Re: Final trueSpace7.61 Beta 8 Std Unofficial Update

Post by trueBlue »

Update 108 for trueSpace7.61 Beta 8 Standalone Unofficial Update Version 8
Final Update

Removed - D3D Render
Bake Keyframes - Add Shrink Play Range button script
Animation Preferences/Shrink Play Range button script

December 23, 2021

https://united3dartists.com/forum/viewt ... =55&t=3731

Instructions:

Recommend that you completely Uninstall and Install trueSpace7.61 Standalone to a clean directory

1.) Run the tS7.61B8Std.8.exe
2.) Browse [...] to where you installed C:\trueSpace761Std, select its folder and then the Extract button
3.) Select the Yes to All button
4.) Open trueSpace and select the Reset to Default Context icon
5.) In Workspace select the Default layout tab

The included Plugins.xml file has the Clintons3dPlugin, Clintons3dPluginExt and Clintons3dRsView, Installed and Loaded to the default path: C:\trueSpace761Std
WARNING: These 3 plugins are required to be Installed and Loaded when using trueSpace!
User avatar
trueBlue
Captain
Posts: 5208
Joined: 06 Jul 2009, 22:50
Type the number ten into the box: 10

Re: Final trueSpace7.61 Beta 8 Std Unofficial Update

Post by trueBlue »

Update 109 for trueSpace7.61 Beta 8 Standalone Unofficial Update Version 8
Final Update

Bake Keyframes - Fixed typo in the Help panel

December 25, 2021

https://united3dartists.com/forum/viewt ... =55&t=3731

Instructions:

Recommend that you completely Uninstall and Install trueSpace7.61 Standalone to a clean directory

1.) Run the tS7.61B8Std.8.exe
2.) Browse [...] to where you installed C:\trueSpace761Std, select its folder and then the Extract button
3.) Select the Yes to All button
4.) Open trueSpace and select the Reset to Default Context icon
5.) In Workspace select the Default layout tab

The included Plugins.xml file has the Clintons3dPlugin, Clintons3dPluginExt and Clintons3dRsView, Installed and Loaded to the default path: C:\trueSpace761Std
WARNING: These 3 plugins are required to be Installed and Loaded when using trueSpace!
User avatar
trueBlue
Captain
Posts: 5208
Joined: 06 Jul 2009, 22:50
Type the number ten into the box: 10

Re: Final trueSpace7.61 Beta 8 Std Unofficial Update

Post by trueBlue »

Update 110 for trueSpace7.61 Beta 8 Standalone Unofficial Update Version 8
Final Update

Animation Preferences
Add - Play - Plays the Play Range
Add - Stop - Stops and sets the time to the Start of the Play Range

Bake Keyframes
Add checks for the selected object

January 16, 2022

https://united3dartists.com/forum/viewt ... =55&t=3731

Instructions:

Recommend that you completely Uninstall and Install trueSpace7.61 Standalone to a clean directory

1.) Run the tS7.61B8Std.8.exe
2.) Browse [...] to where you installed C:\trueSpace761Std, select its folder and then the Extract button
3.) Select the Yes to All button
4.) Open trueSpace and select the Reset to Default Context icon
5.) In Workspace select the Default layout tab

The included Plugins.xml file has the Clintons3dPlugin, Clintons3dPluginExt and Clintons3dRsView, Installed and Loaded to the default path: C:\trueSpace761Std
WARNING: These 3 plugins are required to be Installed and Loaded when using trueSpace!
User avatar
trueBlue
Captain
Posts: 5208
Joined: 06 Jul 2009, 22:50
Type the number ten into the box: 10

Re: Final trueSpace7.61 Beta 8 Std Unofficial Update

Post by trueBlue »

Update 111 for trueSpace7.61 Beta 8 Standalone Unofficial Update Version 8
Final Update

Widgets
Point Edit widget
Object Navigation widget
Add
XYZ Locks to Scale and Rotate
Alt + LMB On|Off

View widget
Rotate X 'Blue'
Add
Ctrl + LMB - Open Select Cycle
Rotate YZ 'Red'
Ctrl + LMB - Open Animation toolbar

Cube View widget
Changed Active Highlight color from Yellow to White on all meshes
Applied a darker color for Left, Back and Bottom
Add Right click gesture command RsTool.Arrow() where no Right click gesture existed 'Stops Point Edit mode when an object is selected'

Toolbars
Camera toolbar
Add
Cycle Camera Views
Cam Toolbar.png
Cam Toolbar.png (14.52 KiB) Viewed 1620 times
CustomAnimToolbar
KI toolbar.png
KI toolbar.png (7.55 KiB) Viewed 1620 times
CustomCommands
Update
Keyframe Interpolation Author - Clinton Reese 2/9/2022
Clintons3dPlugin.rsx v.1638433
KI panel.png
Select
Add
Cycle aspect
Select Cycle panel.png
Select Cycle panel.png (5.15 KiB) Viewed 1620 times
Commands
Add
CycleCameras.xml Author - Clinton Reese

Animation scripts library
Random Color
Random Number
Random Integer
Counter
Active
Vibrator

My Anim Clips library
100 Vibrations.RsClip

Status Message
Update Author - Clinton Reese

Shortcuts
Anim View
Add
Ctrl + U = Clear Selection

February 10, 2022

https://united3dartists.com/forum/viewt ... =55&t=3731

Instructions:

Recommend that you completely Uninstall and Install trueSpace7.61 Standalone to a clean directory

1.) Run the tS7.61B8Std.8.exe
2.) Browse [...] to where you installed C:\trueSpace761Std, select its folder and then the Extract button
3.) Select the Yes to All button
4.) Open trueSpace and select the Reset to Default Context icon
5.) In Workspace select the Default layout tab

The included Plugins.xml file has the Clintons3dPlugin, Clintons3dPluginExt and Clintons3dRsView, Installed and Loaded to the default path: C:\trueSpace761Std
WARNING: These 3 plugins are required to be Installed and Loaded when using trueSpace!
User avatar
trueBlue
Captain
Posts: 5208
Joined: 06 Jul 2009, 22:50
Type the number ten into the box: 10

Re: Final trueSpace7.61 Beta 8 Std Unofficial Update

Post by trueBlue »

Update 112 for trueSpace7.61 Beta 8 Standalone Unofficial Update Version 8
Final Update

Toolbars
AnimationBar/Flat
CustomAnimToolbar
Update LMB & RMB commands use:
util.SetNodeValueString

CustomCommands
Keyframe Interpolation Author - Clinton Reese 2/9/2022
Update
recordKey & modifyKeys scripts use:
util.SetNodeValueInt

Switch aspect buttons
RMB = Open - Interpolation Toolbar
Add
if(!Node.Exist... Open toolbar

February 11, 2022

https://united3dartists.com/forum/viewt ... =55&t=3731

Instructions:

Recommend that you completely Uninstall and Install trueSpace7.61 Standalone to a clean directory

1.) Run the tS7.61B8Std.8.exe
2.) Browse [...] to where you installed C:\trueSpace761Std, select its folder and then the Extract button
3.) Select the Yes to All button
4.) Open trueSpace and select the Reset to Default Context icon
5.) In Workspace select the Default layout tab

The included Plugins.xml file has the Clintons3dPlugin, Clintons3dPluginExt and Clintons3dRsView, Installed and Loaded to the default path: C:\trueSpace761Std
WARNING: These 3 plugins are required to be Installed and Loaded when using trueSpace!
User avatar
trueBlue
Captain
Posts: 5208
Joined: 06 Jul 2009, 22:50
Type the number ten into the box: 10

Re: Final trueSpace7.61 Beta 8 Std Unofficial Update

Post by trueBlue »

Update 113 for trueSpace7.61 Beta 8 Standalone Unofficial Update Version 8
Final Update

Widgets/Object Rotate
Ctrl + LB - Rotate selected object +45 degrees
Alt + LB - Rotate selected object -45 degrees
Fixed error with Mutiple selected objects
Use First selected only
Edit
Removed support for Cameras, Spot, & Projector lights

February 13, 2022

https://united3dartists.com/forum/viewt ... =55&t=3731

Instructions:

Recommend that you completely Uninstall and Install trueSpace7.61 Standalone to a clean directory

1.) Run the tS7.61B8Std.8.exe
2.) Browse [...] to where you installed C:\trueSpace761Std, select its folder and then the Extract button
3.) Select the Yes to All button
4.) Open trueSpace and select the Reset to Default Context icon
5.) In Workspace select the Default layout tab

The included Plugins.xml file has the Clintons3dPlugin, Clintons3dPluginExt and Clintons3dRsView, Installed and Loaded to the default path: C:\trueSpace761Std
WARNING: These 3 plugins are required to be Installed and Loaded when using trueSpace!
Post Reply