private bool getNeckLink() { DescID cid = new DescID(new DescLevel(SKELETT_HALSWIRBEL, C4dApi.DTYPE_LONG, 0)); BaseContainer bcHalsWirbel = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_LONG); bcHalsWirbel.SetString(C4dApi.DESC_NAME, "Halswirbel Knochen"); //Definiert den minimalen Wert bcHalsWirbel.SetInt64(C4dApi.DESC_MIN, 0); //Definiert den maximalen Wert bcHalsWirbel.SetInt64(C4dApi.DESC_MAX, 15); if (Schwanz == true) { bcHalsWirbel.SetBool(C4dApi.DESC_HIDE, false); //Schwanz = false; } else { bcHalsWirbel.SetBool(C4dApi.DESC_HIDE, true); } if (!descparams.Desc.SetParameter(cid, bcHalsWirbel, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } return(false); }
private bool getFingers(BaseContainer dataKoerper) { //Erstellt ein weiteres Feld für die Finger DescID cid = new DescID(new DescLevel(SKELETT_FINGER, C4dApi.DTYPE_LONG, 0)); BaseContainer bcFinger = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_LONG); bcFinger.SetString(C4dApi.DESC_NAME, "Finger"); //Definiert den minimalen Wert bcFinger.SetInt64(C4dApi.DESC_MIN, 0); //Definiert den maximalen Wert bcFinger.SetInt64(C4dApi.DESC_MAX, 5); if (Hand == true) { if (dataKoerper.GetInt64(SKELETT_HAND) > 0) { bcFinger.SetBool(C4dApi.DESC_HIDE, false); } else { bcFinger.SetBool(C4dApi.DESC_HIDE, true); } } else { bcFinger.SetBool(C4dApi.DESC_HIDE, true); } if (!descparams.Desc.SetParameter(cid, bcFinger, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } return(false); }
private bool getComboBoxCharakter() { DescID cid = new DescID(new DescLevel(SKELETT_TYPE, C4dApi.DTYPE_LONG, 0)); //Erstellt das Label vor die Combobox BaseContainer bcComboName = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_LONG); bcComboName.SetString(C4dApi.DESC_NAME, "Skelett wählen"); //Erstellen der ComboBox mit Werten BaseContainer bcComboValues = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_NONE); bcComboValues.SetString(0, "Skelett"); bcComboValues.SetString(1, "Männlich"); bcComboValues.SetString(2, "Weiblich"); bcComboValues.SetString(3, "4 Beiner"); //Führt beide Container zusammen bcComboName.SetContainer(C4dApi.DESC_CYCLE, bcComboValues); //Erstellt die Combobox in dem Reiter Object, wegen "ID_OBJECTPROPERTIES" if (!descparams.Desc.SetParameter(cid, bcComboName, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } return(false); }
public override bool GetDDescription(GeListNode node, DDescriptionParams descparams) { if (!descparams.Desc.LoadDescription("tbase")) { return(false); } VisitProps(delegate(int itemID, string itemName, PropertyInfo pi) { DescID cid = new DescID(new DescLevel(itemID, C4dApi.DTYPE_LONG, 0)); BaseContainer bc = null; if (pi.PropertyType == typeof(int)) { bc = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_LONG); } else if (pi.PropertyType == typeof(string)) { bc = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_STRING); } bc.SetString(C4dApi.DESC_NAME, itemName); descparams.Desc.SetParameter(cid, bc, new DescID(new DescLevel(C4dApi.ID_TAGPROPERTIES))); }); descparams.Flags |= DESCFLAGS_DESC.DESCFLAGS_DESC_LOADED; return(true); // base.GetDDescription(node, descparams); }
private bool getTail() { DescID cid = new DescID(new DescLevel(SKELETT_SCHWANZ, C4dApi.DTYPE_LONG, 0)); BaseContainer bcSchwanz = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_LONG); bcSchwanz.SetString(C4dApi.DESC_NAME, "Schwanz Knochen"); //Definiert den minimalen Wert bcSchwanz.SetInt64(C4dApi.DESC_MIN, 0); //Definiert den maximalen Wert bcSchwanz.SetInt64(C4dApi.DESC_MAX, 5); if (Schwanz == true) { bcSchwanz.SetBool(C4dApi.DESC_HIDE, false); Schwanz = false; } else { bcSchwanz.SetBool(C4dApi.DESC_HIDE, true); } if (!descparams.Desc.SetParameter(cid, bcSchwanz, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } return(false); }
private bool getLegs(BaseContainer dataKoerper) { DescID cid = new DescID(new DescLevel(SKELETT_UNTERKOERPER_BOX, C4dApi.DTYPE_BOOL, 0)); BaseContainer bcUnterKoerper = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_BOOL); bcUnterKoerper.SetString(C4dApi.DESC_NAME, "Beine Aktivieren"); bcUnterKoerper.SetBool(C4dApi.DESC_DEFAULT, true); // Create the boolean check box under the previously created sub group (CIRCLEOBJECT_SUBGROUP) if (!descparams.Desc.SetParameter(cid, bcUnterKoerper, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } BaseContainer dataUnterKoerper = GetDataInstance(node); //Erstellt ein weiteres Feld für die Beine cid = new DescID(new DescLevel(SKELETT_BEINE, C4dApi.DTYPE_LONG, 0)); BaseContainer bcBeine = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_LONG); bcBeine.SetString(C4dApi.DESC_NAME, "Beine"); //Definiert den minimalen Wert bcBeine.SetInt64(C4dApi.DESC_MIN, 0); //Definiert den maximalen Wert bool temp2 = dataKoerper.GetBool(SKELETT_UNTERKOERPER_BOX); if (temp2 == true && dataKoerper.GetInt64(SKELETT_TYPE) == 3)//Schaltung zwischen 4 Beiner und Menschen Ist der Type ein 4 Beiner so ist die Maximal zahl der Beine 4 { bcBeine.SetInt64(C4dApi.DESC_MAX, 4); bcBeine.SetBool(C4dApi.DESC_HIDE, false); Bein = true; Schwanz = true; } else if (temp2 == true && dataKoerper.GetInt64(SKELETT_TYPE) != 3)//Schaltung zwischen 4 Beiner und Menschen Ist der Type ein Mensch so ist die Maximal zahl der Beine 2 { bcBeine.SetInt64(C4dApi.DESC_MAX, 2); bcBeine.SetBool(C4dApi.DESC_HIDE, false); Bein = true; } else { bcBeine.SetBool(C4dApi.DESC_HIDE, true); Bein = false; } if (!descparams.Desc.SetParameter(cid, bcBeine, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } return(false); }
private bool getWeightBtn() { DescID cid = new DescID(new DescLevel(SKELETT_WICHTUNG_BTN, C4dApi.DTYPE_BUTTON, 0)); BaseContainer bcButton = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_BUTTON); //Erstellt einen GUI (Button) bcButton.SetInt64(C4dApi.DESC_CUSTOMGUI, C4dApi.DTYPE_BUTTON); //Erstellt das Label für den Button bcButton.SetString(C4dApi.DESC_NAME, "Wichtung setzen"); if (!descparams.Desc.SetParameter(cid, bcButton, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } return(false); }
private bool getFeets(BaseContainer dataKoerper) { //Erstellt ein weiteres Feld für die Füße DescID cid = new DescID(new DescLevel(SKELETT_FUESSE, C4dApi.DTYPE_LONG, 0)); BaseContainer bcFuesse = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_LONG); bcFuesse.SetString(C4dApi.DESC_NAME, "Füße"); //Definiert den minimalen Wert bcFuesse.SetInt64(C4dApi.DESC_MIN, 0); //Definiert den maximalen Wert bcFuesse.SetInt64(C4dApi.DESC_MAX, 2); if (Bein == true && Schwanz == false) { if (dataKoerper.GetInt64(SKELETT_BEINE) > 0) { bcFuesse.SetInt64(C4dApi.DESC_MAX, 2); bcFuesse.SetBool(C4dApi.DESC_HIDE, false); } else { bcFuesse.SetBool(C4dApi.DESC_HIDE, true); } } else if (Bein == true && Schwanz == true) { if (dataKoerper.GetInt64(SKELETT_BEINE) > 0) { bcFuesse.SetInt64(C4dApi.DESC_MAX, 4); bcFuesse.SetBool(C4dApi.DESC_HIDE, false); } else { bcFuesse.SetBool(C4dApi.DESC_HIDE, true); } } else { bcFuesse.SetBool(C4dApi.DESC_HIDE, true); } if (!descparams.Desc.SetParameter(cid, bcFuesse, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } return(false); }
private bool getTorso() { DescID cid = new DescID(new DescLevel(SKELETT_OBERKOERPER_BOX, C4dApi.DTYPE_BOOL, 0)); BaseContainer bcOberKoerper = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_BOOL); bcOberKoerper.SetString(C4dApi.DESC_NAME, "Arme Aktivieren"); bcOberKoerper.SetBool(C4dApi.DESC_DEFAULT, true); bcOberKoerper.SetBool(C4dApi.DESC_HIDE, false); // Create the boolean check box under the previously created sub group (CIRCLEOBJECT_SUBGROUP) if (!descparams.Desc.SetParameter(cid, bcOberKoerper, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } return(false); }
private bool getSeperatorTailSelector() { DescID cid = new DescID(new DescLevel(SKELETT_TRENNER_SCHWANZ_OBJAUSWAHL, C4dApi.DTYPE_SEPARATOR, 0)); BaseContainer bcTrennerSchwanzAuswahl = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_SEPARATOR); bcTrennerSchwanzAuswahl.SetInt64(C4dApi.DESC_CUSTOMGUI, C4dApi.DTYPE_SEPARATOR); bcTrennerSchwanzAuswahl.SetBool(C4dApi.DESC_SEPARATORLINE, true); bcTrennerSchwanzAuswahl.SetInt64(C4dApi.DESC_ANIMATE, C4dApi.DESC_ANIMATE_OFF); bcTrennerSchwanzAuswahl.SetBool(C4dApi.DESC_REMOVEABLE, false); bcTrennerSchwanzAuswahl.SetString(C4dApi.DESC_NAME, ""); bcTrennerSchwanzAuswahl.SetString(C4dApi.DESC_SHORT_NAME, ""); if (!descparams.Desc.SetParameter(cid, bcTrennerSchwanzAuswahl, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } return(false); }
private bool getSeperatorFeetSpine() { DescID cid = new DescID(new DescLevel(SKELETT_TRENNER_BEINE_WIRBEL, C4dApi.DTYPE_SEPARATOR, 0)); BaseContainer bcTrennerBeineWirbel = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_SEPARATOR); bcTrennerBeineWirbel.SetInt64(C4dApi.DESC_CUSTOMGUI, C4dApi.DTYPE_SEPARATOR); bcTrennerBeineWirbel.SetBool(C4dApi.DESC_SEPARATORLINE, true); bcTrennerBeineWirbel.SetInt64(C4dApi.DESC_ANIMATE, C4dApi.DESC_ANIMATE_OFF); bcTrennerBeineWirbel.SetBool(C4dApi.DESC_REMOVEABLE, false); bcTrennerBeineWirbel.SetString(C4dApi.DESC_NAME, ""); bcTrennerBeineWirbel.SetString(C4dApi.DESC_SHORT_NAME, ""); if (!descparams.Desc.SetParameter(cid, bcTrennerBeineWirbel, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } return(false); }
private bool getArms(BaseContainer dataKoerper) { //Erstellt ein weiteres Feld für die Arme DescID cid = new DescID(new DescLevel(SKELETT_ARME, C4dApi.DTYPE_LONG, 0)); BaseContainer bcArme = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_REAL); bcArme.SetString(C4dApi.DESC_NAME, "Arme"); //Definiert den minimalen Wert bcArme.SetInt64(C4dApi.DESC_MIN, 0); //Definiert den maximalen Wert bcArme.SetInt64(C4dApi.DESC_MAX, 2); bool temp = dataKoerper.GetBool(SKELETT_OBERKOERPER_BOX); if (dataKoerper.GetInt64(SKELETT_TYPE) == 3) { temp = false; bcArme.SetInt64(C4dApi.DESC_DEFAULT, 0); } if (temp == true) { bcArme.SetBool(C4dApi.DESC_HIDE, false); Hand = true; } else { bcArme.SetBool(C4dApi.DESC_HIDE, true); Hand = false; } //bcArme.SetBool(C4dApi.DESC_HIDE, true); if (!descparams.Desc.SetParameter(cid, bcArme, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } return(false); }
private bool getHands(BaseContainer dataKoerper) { //Erstellt ein weiteres Feld für die Hände DescID cid = new DescID(new DescLevel(SKELETT_HAND, C4dApi.DTYPE_LONG, 0)); BaseContainer bcHand = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_LONG); bcHand.SetString(C4dApi.DESC_NAME, "Hände"); //Definiert den minimalen Wert bcHand.SetInt64(C4dApi.DESC_MIN, 0); //Definiert den maximalen Wert if (Hand == true) { //C4dApi.GePrint("anzahl Arme = " + dataKoerper.GetInt64(SKELETT_ARME)); if (dataKoerper.GetInt64(SKELETT_ARME) > 0) { bcHand.SetInt64(C4dApi.DESC_MAX, dataKoerper.GetInt64(SKELETT_ARME)); bcHand.SetBool(C4dApi.DESC_HIDE, false); } else { bcHand.SetBool(C4dApi.DESC_HIDE, true); } } else { bcHand.SetBool(C4dApi.DESC_HIDE, true); } if (!descparams.Desc.SetParameter(cid, bcHand, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } return(false); }
private bool getToes(BaseContainer dataKoerper) { //Erstellt ein weiteres Feld für die Zehen DescID cid = new DescID(new DescLevel(SKELETT_ZEHEN, C4dApi.DTYPE_LONG, 0)); BaseContainer bcZehen = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_LONG); bcZehen.SetString(C4dApi.DESC_NAME, "Zehen"); //Definiert den minimalen Wert bcZehen.SetInt64(C4dApi.DESC_MIN, 0); //Definiert den maximalen Wert bcZehen.SetInt64(C4dApi.DESC_MAX, 5); BaseContainer dataUnterKoerper = GetDataInstance(node); if (Bein == true && dataUnterKoerper.GetInt64(SKELETT_TYPE) != 3)//Überprüfung auf 4 Beiner, ist es kein 4 Beiner so wird das Feld Zehen eingeblendet { if (dataKoerper.GetInt64(SKELETT_FUESSE) > 0) { bcZehen.SetBool(C4dApi.DESC_HIDE, false); } else { bcZehen.SetBool(C4dApi.DESC_HIDE, true); } } else { bcZehen.SetBool(C4dApi.DESC_HIDE, true); } if (!descparams.Desc.SetParameter(cid, bcZehen, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } return(false); }
/* * public override bool GetDEnabling(GeListNode node, DescID id, GeData t_data,DESCFLAGS_ENABLE flags, BaseContainer itemdesc) * { * int inter; * BaseContainer data = ((BaseObject)node).GetDataInstance(); * switch (id[0].id) * { * case SPLINEOBJECT_SUB: * inter=data.GetInt32(SPLINEOBJECT_INTERPOLATION); * return inter==SPLINEOBJECT_INTERPOLATION_NATURAL || inter==SPLINEOBJECT_INTERPOLATION_UNIFORM; * * case SPLINEOBJECT_ANGLE: * inter = data.GetInt32(SPLINEOBJECT_INTERPOLATION); * return inter==SPLINEOBJECT_INTERPOLATION_ADAPTIVE || inter==SPLINEOBJECT_INTERPOLATION_SUBDIV; * * case SPLINEOBJECT_MAXIMUMLENGTH: * return data.GetInt32(SPLINEOBJECT_INTERPOLATION)==SPLINEOBJECT_INTERPOLATION_SUBDIV; * } * return true; * } */ public override bool GetDDescription(GeListNode node, DDescriptionParams descparams) { // The main part of this code is taken from the "LookAtCamera.cpp" file from the original C4D API samples. // Be aware that the original LookAtCamera is not an object created from the Plugin menu but a // Tag type that can be added to existing objects from the "Objekte" context (right mouse button) menu under // the "Cinema4dsdk Tags" sub menu. // TODO: whatever this might be good for: if (!singleid || cid.IsPartOf(*singleid, NULL)) // important to check for speedup c4d! // { // This will load the main object attribute tabs ("Basis", "Koord", "Objekt") if (!descparams.Desc.LoadDescription("obase")) { return(false); } ////////////////////////////////////////////////////////////////////////////////////// // Create a double value named radius on the "Objekt" tab's main level DescID cid = new DescID(new DescLevel(CIRCLEOBJECT_RAD, C4dApi.DTYPE_LONG, 0)); // The ID of the radius value (CIRCLEOBJECT_RAD) BaseContainer bcRadius = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_REAL); // The type of the radius value (REAL) bcRadius.SetString(C4dApi.DESC_NAME, "Radius"); // The user interface name (Radius) bcRadius.SetInt32(C4dApi.DESC_DEFAULT, 44); // The default value (44, but overridden to 200 in the Init method) // Create the new radius value as a child of the "Objekt" Tab (ID_OBJECTPROPERTIES) if (!descparams.Desc.SetParameter(cid, bcRadius, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } ///////////////////////////////////////////////////////////////////////////////////// // Create an entirely new Tab (called "Ein schöner Tab") cid = new DescID(new DescLevel(CIRCLEOBJECT_NEWTAB, C4dApi.DTYPE_GROUP, 0)); BaseContainer bcMaingroup = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_GROUP); bcMaingroup.SetString(C4dApi.DESC_NAME, "Ein schöner Tab"); // Create the new Group on the top level (DecLevel(0)) if (!descparams.Desc.SetParameter(cid, bcMaingroup, new DescID(new DescLevel(0)))) { return(true); } ///////////////////////////////////////////////////////////////////////////////////// // Create an new sub group (called "Hübsches Grüppchen") cid = new DescID(new DescLevel(CIRCLEOBJECT_SUBGROUP, C4dApi.DTYPE_GROUP, 0)); BaseContainer bcSubgroup = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_GROUP); bcSubgroup.SetString(C4dApi.DESC_NAME, "Hübsches Grüppchen"); // Create the sub group on the "Ein schöner Tab" main tab (CIRCLEOBJECT_NEWTAB) if (!descparams.Desc.SetParameter(cid, bcSubgroup, new DescID(new DescLevel(CIRCLEOBJECT_NEWTAB)))) { return(true); } ///////////////////////////////////////////////////////////////////////////////////// // Create an new boolean value (as a checkbox) called "Check mich" cid = new DescID(new DescLevel(CIRCLEOBJECT_CHECKME, C4dApi.DTYPE_BOOL, 0)); BaseContainer bcCheckMich = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_BOOL); bcCheckMich.SetString(C4dApi.DESC_NAME, "Check mich"); bcCheckMich.SetBool(C4dApi.DESC_DEFAULT, true); // Create the boolean check box under the previously created sub group (CIRCLEOBJECT_SUBGROUP) if (!descparams.Desc.SetParameter(cid, bcCheckMich, new DescID(new DescLevel(CIRCLEOBJECT_SUBGROUP)))) { return(true); } descparams.Flags |= DESCFLAGS_DESC.DESCFLAGS_DESC_LOADED; return(true); // base.GetDDescription(node, descparams); }
// Different ways how data (The...) is obtained and written. // Example 1: An override gets the baseTag/BaseObject: // // Working example from DoubleCircle: // public override retval OverrideMethod(..., BaseTag tag, ...) // { // BaseContainer di = tag.GetDataInstance(); // Get the data instance from the object // int theIntContents = di.GetInt(GENERAL_TAG_THEINT); // Retrieve the data from the data instance // Question: Would it be sufficient to simply use this.GetDataInstance() public override bool GetDDescription(GeListNode node, DDescriptionParams descparams) { // The main part of this code is taken from the "LookAtCamera.cpp" file from the original C4D API samples. // TODO: whatever this might be good for: if (!singleid || cid.IsPartOf(*singleid, NULL)) // important to check for speedup c4d! // { if (!descparams.Desc.LoadDescription("tbase")) { return(false); } // According to https://developers.maxon.net/docs/Cinema4DCPPSDK/html/class_description.html and // with #define DESCID_ROOT DescID(DescLevel(1000491, 0, 0)) as set in lib_description.h // Set the tag's name to something meaningful (other than "Base Tag" or "Basis Tag" DescID nCid = new DescID(new DescLevel(1000491, 0, 0)); // The ID of the radius value (GENERAL_TAG_THEINT) BaseContainer nBc = descparams.Desc.GetParameterI(nCid, null); // The type of the radius value (LONG) string OldName = nBc.GetString(C4dApi.DESC_NAME); nBc.SetString(C4dApi.DESC_NAME, TagName); ////////////////////////////////////////////////////////////////////////////////////// // Create an int value named TheInt on the "Base" tab's main level DescID cid = new DescID(new DescLevel(GENERAL_TAG_THEINT, C4dApi.DTYPE_LONG, 0)); // The ID of the radius value (GENERAL_TAG_THEINT) BaseContainer bc = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_LONG); // The type of the radius value (LONG) bc.SetString(C4dApi.DESC_NAME, "TheInt"); // The user interface name (TheInt) bc.SetInt32(C4dApi.DESC_DEFAULT, 44); // The default value (44, but overridden to 42 in the Init method) if (!descparams.Desc.SetParameter(cid, bc, new DescID(new DescLevel(C4dApi.ID_TAGPROPERTIES)))) { return(true); } ////////////////////////////////////////////////////////////////////////////////////// // Create a string value named TheName on the "Base" tab's main level cid = new DescID(new DescLevel(GENERAL_TAG_THENAME, C4dApi.DTYPE_LONG, 0)); // The ID of the radius value (GENERAL_TAG_THENAME) bc = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_STRING); // The type of the radius value (STRING) bc.SetString(C4dApi.DESC_NAME, "TheString"); // The user interface name (TheName) bc.SetString(C4dApi.DESC_DEFAULT, "Worscht"); // The default value (Worscht, but overridden to Horst in the Init method) if (!descparams.Desc.SetParameter(cid, bc, new DescID(new DescLevel(C4dApi.ID_TAGPROPERTIES)))) { return(true); } /* * ///////////////////////////////////////////////////////////////////////////////////// * // Create an entirely new Tab (called "Ein schöner Tab") * DescID cid = new DescID(new DescLevel(CIRCLEOBJECT_NEWTAB, C4dApi.DTYPE_GROUP, 0)); * BaseContainer bcMaingroup = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_GROUP); * bcMaingroup.SetString(C4dApi.DESC_NAME, "Ein schöner Tab"); * // Create the new Group on the top level (DecLevel(0)) * if (!descparams.Desc.SetParameter(cid, bcMaingroup, new DescID(new DescLevel(0)))) * return true; * * ///////////////////////////////////////////////////////////////////////////////////// * // Create an new sub group (called "Hübsches Grüppchen") * cid = new DescID(new DescLevel(CIRCLEOBJECT_SUBGROUP, C4dApi.DTYPE_GROUP, 0)); * BaseContainer bcSubgroup = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_GROUP); * bcSubgroup.SetString(C4dApi.DESC_NAME, "Hübsches Grüppchen"); * // Create the sub group on the "Ein schöner Tab" main tab (CIRCLEOBJECT_NEWTAB) * if (!descparams.Desc.SetParameter(cid, bcSubgroup, new DescID(new DescLevel(CIRCLEOBJECT_NEWTAB)))) * return true; * * ///////////////////////////////////////////////////////////////////////////////////// * // Create an new boolean value (as a checkbox) called "Check mich" * cid = new DescID(new DescLevel(CIRCLEOBJECT_CHECKME, C4dApi.DTYPE_BOOL, 0)); * BaseContainer bcCheckMich = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_BOOL); * bcCheckMich.SetString(C4dApi.DESC_NAME, "Check mich"); * bcCheckMich.SetBool(C4dApi.DESC_DEFAULT, true); * // Create the boolean check box under the previously created sub group (CIRCLEOBJECT_SUBGROUP) * if (!descparams.Desc.SetParameter(cid, bcCheckMich, new DescID(new DescLevel(CIRCLEOBJECT_SUBGROUP)))) * return true; */ descparams.Flags |= DESCFLAGS_DESC.DESCFLAGS_DESC_LOADED; return(true); // base.GetDDescription(node, descparams); }
private bool generate() { // Diese Abfrage lädt die den Reiter Objekt if (!descparams.Desc.LoadDescription("obase")) { return(false); } //Erstellen der ComboBox zur auswahl des Skelettes if (this.getComboBoxCharakter() == true) { return(false); } //Erstellen der Trennlinie if (this.getSeperator() == true) { return(false); } BaseContainer dataKoerper = GetDataInstance(node); //Speichert alle elemente von der Liste in den Container if (dataKoerper.GetInt64(SKELETT_TYPE) != 3) //Ist die ID 3 so wurde ein 4 Beiner ausgewählt, da diese keine Arme haben wird der Komplette Block für die Arme im Intrface ausgeblendet { if (this.getTorso() == true) { return(false); } } //Abfragen ob ein Oberkörper erstellt werden soll //DescID singleid = descparams.Desc.GetSingleDescID(); //data = ((BaseList2D)node).GetDataInstance(); // Arme erstellen if (this.getArms(dataKoerper) == true) { return(false); } // Hände erstellen if (this.getHands(dataKoerper) == true) { return(false); } // Finger erstellen if (this.getFingers(dataKoerper) == true) { return(false); } if (this.getSeperatorTorso() == true) { return(false); } if (this.getLegs(dataKoerper) == true) { return(false); } if (this.getFeets(dataKoerper) == true) { return(false); } if (this.getToes(dataKoerper) == true) { return(false); } if (this.getSeperatorFeetSpine() == true) { return(false); } if (this.getSpineLink() == true) { return(false); } if (this.getNeckLink() == true) { return(false); } if (this.getSeperatorSpineTail() == true) { return(false); } if (this.getTail() == true) { return(false); } if (this.getSeperatorTailSelector() == true) { return(false); } //Objektauswahlfeld erstellen DescID cid = new DescID(new DescLevel(SKELETT_OBJ_AUSWAHL, C4dApi.DTYPE_BASELISTLINK, 0)); BaseDocument doc = C4dApi.GetActiveDocument(); // alle vorhandenen Objekte im Dokument in die Variable doc Speicerhn BaseContainer objSel = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_BASELISTLINK); // Basecontainer vom Typ BaseLink da wird Objekte verlinken , referenzieren objSel.SetLink(SKELETT_OBJ_AUSWAHL, doc); //SelectFeld erstellen in dem ein Objekct gebunden werden kann, ist nötig damit später knochen dem Modell zugewiesen werden können! objSel.SetString(C4dApi.DESC_NAME, "Polygonobjekt Wählen"); if (!descparams.Desc.SetParameter(cid, objSel, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(true); } //Erstellt eine Schaltfläsche cid = new DescID(new DescLevel(SKELETT_BTN_CREATE, C4dApi.DTYPE_BUTTON, 0)); BaseContainer bcButton = C4dApi.GetCustomDataTypeDefault(C4dApi.DTYPE_BUTTON); //Erstellt einen GUI (Button) bcButton.SetInt64(C4dApi.DESC_CUSTOMGUI, C4dApi.DTYPE_BUTTON); //Erstellt das Label für den Button bcButton.SetString(C4dApi.DESC_NAME, "Erstellen"); if (!descparams.Desc.SetParameter(cid, bcButton, new DescID(new DescLevel(C4dApi.ID_OBJECTPROPERTIES)))) { return(false); } if (this.getWeightBtn() == true) { return(false); } descparams.Flags |= DESCFLAGS_DESC.DESCFLAGS_DESC_LOADED; return(true); }