ΠΡΠΈΠΌΠΈΡΠΈΠ²Ρ Π² 3DCoat - ΡΡΠΎ ΡΠΈΠ³ΡΡΡ Π² 3D, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ° ΠΆΠ΅ ΡΠ΅ΡΡΠ΅ΡΡΠ½ΠΊΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΠΎΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΡΡΠ΅ΡΡ ΠΈΠ»ΠΈ ΠΊΡΠ±Π°. ΠΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ "ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌΠΈ", ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΡ Π² 3DCoat - Π»Π΅Π³ΠΊΠΎ!
ΠΠ°ΡΠ½ΡΠΌ ΡΠΎ ΡΡΠ΅ΡΡ.
Π‘ΠΊΠΎΠΏΠΈΡΡΠΉ ΡΡΠΎΡ ΡΠΊΡΠΈΠΏΡ ΡΠ΅Π±Π΅ Π½Π° ΠΊΠΎΠΌΠΏ ΠΈ Π·Π°ΠΏΡΡΡΠΈ ΠΈΠ· ΠΌΠ΅Π½Ρ 3DCoat: "Π‘ΠΊΡΠΈΠΏΡΡ / ΠΠ°ΠΏΡΡΡΠΈΡΡ ΡΠΊΡΠΈΠΏΡ". ΠΡΠ»ΠΈ Π½Π΅ Π·Π½Π°Π΅ΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΊΡΠΈΠΏΡΡ, Π·Π°Π³Π»ΡΠ½ΠΈ ΡΡΠ΄Π°.
void main() {
// ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠ΅Π½Ρ
SculptRoom room;
// ΠΎΡΠΈΡΠ°Π΅ΠΌ ΡΠΊΡΠ»ΡΠΏΡ-ΠΊΠΎΠΌΠ½Π°ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ Π΅Ρ Π² ΡΡΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ
room.clear().toSurface();
// ΡΡΡΠΎΠΈΠΌ ΡΡΠ΅ΡΡ
Builder builder;
Mesh mesh = builder.sphere()
.radius( 70 )
// Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠΊΠΈ, 0 < d <= 1.0
.details( 0.1 )
.build();
// Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΠ΅ΡΡ Π½Π° ΡΡΠ΅Π½Ρ
room += mesh;
}
Π Π°Π·Π±Π΅ΡΡΠΌ ΡΡΠΎΡ ΠΊΠΎΠ΄.
SculptRoom room;
ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΈΠ· Π½Π°ΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° ΠΊ ΡΠΊΡΠ»ΡΠΏΡ-ΠΊΠΎΠΌΠ½Π°ΡΠ΅. ΠΠ°Π»ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ `room` Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅Π½Ρ.
Builder builder;
C ΠΏΠΎΠΌΠΎΡΡΡ `builder` Π±ΡΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΠΌ ΡΠ°Π·Π½ΡΠ΅ ΠΌΠ΅ΡΠΈ.
Mesh mesh = builder.sphere()
ΠΠΎΠ²ΠΎΡΠΈΠΌ ΡΠΊΡΠΈΠΏΡΡ-ΡΡΡΠΎΠΈΡΠ΅Π»Ρ, ΡΡΠΎ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ΅ΡΡ...
.radius( 70 )
Ρ ΡΠ°Π΄ΠΈΡΡΠΎΠΌ Π² 70 ΠΏΠΊΡ...
.details( 0.1 )
ΠΈ ΠΌΠ°Π»ΠΎΠΉ ΠΏΠ»ΠΎΡΠ½ΠΎΡΡΡΡ ΡΠ΅ΡΠΊΠΈ.
.build();
ΠΠ°ΡΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ 3DCoat ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΡΠ΅ΡΡ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ.
ΠΠΎΠΏΡΡΡΠΈΠΌΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠ°ΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠΉ Π½Π°ΠΌΠΈ ΡΡΡΠΎΠΊΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ
();
()
ΠΏΠΈΡΠ΅ΠΌ Π±Π΅Π· Π»ΠΈΠ΄ΠΈΡΡΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΈ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ .build()
.ΠΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΏΠΎΡΡΡΠΎΡΡ ΡΡΠ΅ΡΡ ΡΠ°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° build()
.
ΠΠΎΡΡΡΠΎΠΈΠΌ ΠΊΡΠ±.
void main() {
// ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠ΅Π½Ρ
SculptRoom room;
room.clear().toSurface();
// ΡΡΡΠΎΠΈΠΌ ΠΊΡΠ±ΠΎΠΈΠ΄
Builder builder;
Mesh mesh = builder.cuboid()
.side( Vec3( 100, 80, 60 ) )
// Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠΊΠΈ, 0 < d <= 1.0
.details( 0.1 )
.build();
// ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌ ΠΊΡΠ±ΠΎΠΈΠ΄ Π½Π° ΡΡΠ΅Π½Π΅
room += mesh;
}
ΠΠ΄Π΅ΡΡ ΠΈ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ: Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ Π΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠ΅ΡΡ.
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΊΡΠ±Π°, ΠΌΠΎΠΆΠ΅ΡΡ Π³Π»ΡΠ½ΡΡΡ Π·Π΄Π΅ΡΡ.
void main() {
// ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠ΅Π½Ρ
SculptRoom room;
room.clear().toSurface();
// ΡΡΡΠΎΠΈΠΌ ΡΠΈΠ»ΠΈΠ½Π΄Ρ
Builder builder;
Mesh mesh = builder.cylinder()
.positionTop( Vec3( 80, 0, 0 ) )
.positionBottom( Vec3( 0, 0, 0 ) )
.radiusTop( 40 )
.radiusBottom( 50 )
// Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠΊΠΈ, 0 < d <= 1.0
.details( 0.1 )
.build();
// ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΠΈΠ»ΠΈΠ½Π΄Ρ Π½Π° ΡΡΠ΅Π½Π΅
room += mesh;
}
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠΈΠ»ΠΈΠ½Π΄ΡΠ°, ΠΌΠΎΠΆΠ΅ΡΡ Π³Π»ΡΠ½ΡΡΡ Π·Π΄Π΅ΡΡ.
void main() {
// ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠ΅Π½Ρ
SculptRoom room;
room.clear().toSurface();
// ΡΡΡΠΎΠΈΠΌ ΡΠ»Π»ΠΈΠΏΡΠΎΠΈΠ΄
Builder builder;
Mesh mesh = builder.ellipsoid()
.radius( Vec3( 80, 60, 40 ) )
// Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠΊΠΈ, 0 < d <= 1.0
.details( 0.1 )
.build();
// ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΠ»Π»ΠΈΠΏΡΠΎΠΈΠ΄ Π½Π° ΡΡΠ΅Π½Π΅
room += mesh;
}
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠ»Π»ΠΈΠΏΡΠΎΠΈΠ΄Π°, ΠΌΠΎΠΆΠ΅ΡΡ Π³Π»ΡΠ½ΡΡΡ Π·Π΄Π΅ΡΡ.
void main() {
// ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠ΅Π½Ρ
SculptRoom room;
room.clear().toSurface();
// ΡΡΡΠΎΠΈΠΌ ΠΊΠΎΠ½ΡΡ
Builder builder;
Mesh mesh = builder.cone()
.radius( 50 )
.height( 120 )
// Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠΊΠΈ, 0 < d <= 1.0
.details( 0.1 )
.build();
// ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌ ΠΊΠΎΠ½ΡΡ Π½Π° ΡΡΠ΅Π½Π΅
room += mesh;
}
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠ°, ΠΌΠΎΠΆΠ΅ΡΡ Π³Π»ΡΠ½ΡΡΡ Π·Π΄Π΅ΡΡ.
void main() {
// ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠ΅Π½Ρ
SculptRoom room;
room.clear().toSurface();
// ΡΡΡΠΎΠΈΠΌ ΡΡΡΠ±Ρ
Builder builder;
Mesh mesh = builder.tube()
.startPoint( Vec3( 0, 0, 0 ) )
.endPoint( Vec3( 30, 50, 70 ) )
// Π²Π½Π΅ΡΠ½ΠΈΠΉ ΡΠ°Π΄ΠΈΡΡ Π²Π΅ΡΡ
Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΡΠ±Ρ
.topRadius( 30 )
// Π²Π½Π΅ΡΠ½ΠΈΠΉ ΡΠ°Π΄ΠΈΡΡ Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΡΠ±Ρ
// Π΄Π°, ΡΡΡΠ±Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ½ΡΡΠ°
.bottomRadius( 40 )
// ΠΏΡΡΡΠΎΡΠ° Π²Π½ΡΡΡΠΈ ΡΡΡΠ±Ρ,
// Π·Π΄Π΅ΡΡ - 80% ΠΎΡ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠ°Π΄ΠΈΡΡΠ° ΡΡΡΠ±Ρ
// ΡΠΎΠ»ΡΠΈΠ½Π° ΡΡΡΠ±Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ:
// ΡΡΠ΅Π΄Π½ΠΈΠΉ ΡΠ°Π΄ΠΈΡΡ = (Π²Π΅ΡΡ
Π½ΠΈΠΉ ΡΠ°Π΄ΠΈΡΡ + Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ°Π΄ΠΈΡΡ) / 2
.relativeHoleRadius( 0.8 )
// Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠΊΠΈ, 0 < d <= 1.0
.details( 0.1 )
.build();
// ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΡΡΠ±Ρ Π½Π° ΡΡΠ΅Π½Π΅
room += mesh;
}
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΡΡΠ±Ρ, ΠΌΠΎΠΆΠ΅ΡΡ Π³Π»ΡΠ½ΡΡΡ Π·Π΄Π΅ΡΡ.
void main() {
// ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠ΅Π½Ρ
SculptRoom room;
room.clear().toSurface();
// ΡΡΡΠΎΠΈΠΌ ΠΊΠ°ΠΏΡΡΠ»Ρ
Builder builder;
Mesh mesh = builder.capsule()
.startPosition( Vec3( 0 ) )
.endPosition( Vec3( 40, 50, 60 ) )
.startRadius( 30 )
.endRadius( 50 )
// Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠΊΠΈ, 0 < d <= 1.0
.details( 0.1 )
.build();
// ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌ ΠΊΠ°ΠΏΡΡΠ»Ρ Π½Π° ΡΡΠ΅Π½Π΅
room += mesh;
}
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΏΡΡΠ»Ρ, ΠΌΠΎΠΆΠ΅ΡΡ Π³Π»ΡΠ½ΡΡΡ Π·Π΄Π΅ΡΡ.
void main() {
// ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠ΅Π½Ρ
SculptRoom room;
room.clear().toSurface();
// ΡΡΡΠΎΠΈΠΌ ΡΠ½Π³ΠΎΠ½
Builder builder;
Mesh mesh = builder.ngon()
.startPoint( Vec3( 0, 0, 0 ) )
.endPoint( Vec3( 90, 90, 90 ) )
.topRadius( 30 )
.bottomRadius( 40 )
.relativeHoleRadius( 0.3 )
// ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΡΠΎΠ½ ΡΠ½Π³ΠΎΠ½Π°
.teeth( 3 )
// Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠΊΠΈ, 0 < d <= 1.0
.details( 0.1 )
.build();
// ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΠ½Π³ΠΎΠ½ Π½Π° ΡΡΠ΅Π½Π΅
room += mesh;
}
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠ½Π³ΠΎΠ½Π°, ΠΌΠΎΠΆΠ΅ΡΡ Π³Π»ΡΠ½ΡΡΡ Π·Π΄Π΅ΡΡ.
void main() {
// ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠ΅Π½Ρ
SculptRoom room;
room.clear().toSurface();
// ΡΡΡΠΎΠΈΠΌ ΡΠ΅ΡΡΠ΅ΡΡΠ½ΠΊΡ
Builder builder;
Mesh mesh = builder.gear()
.startPoint( Vec3( 0, 0, 0 ) )
.endPoint( Vec3( 90, 90, 90 ) )
.topRadius( 30 )
.bottomRadius( 50 )
.relativeHoleRadius( 0.3 )
// Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π³Π»ΡΠ±ΠΎΠΊΠΎ Π·ΡΠ±ΡΡ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ°ΡΡΡΡ ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌΡ ΡΠ°Π΄ΠΈΡΡΡ
.depth( 0.5 )
// ΠΎΡΡΡΠΎΡΠ° Π·ΡΠ±ΡΠ΅Π², 0 - ΡΠ°ΠΌΡΠ΅ ΠΊΠΎΠ»ΡΡΠΈΠ΅
.sharpness( 0.2 )
// ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·ΡΠ±ΡΠ΅Π²
.teeth( 3 )
// Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠΊΠΈ, 0 < d <= 1.0
.details( 0.1 )
.build();
// ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΠ΅ΡΡΠ΅ΡΡΠ½ΠΊΡ Π½Π° ΡΡΠ΅Π½Π΅
room += mesh;
}
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠ΅ΡΡΠ΅ΡΡΠ½ΠΊΠΈ, ΠΌΠΎΠΆΠ΅ΡΡ Π³Π»ΡΠ½ΡΡΡ Π·Π΄Π΅ΡΡ.
ΠΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌ Π½ΠΈΠΆΠ΅ - Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²:
ΠΠΎΠΆΠ΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ²:
// Reset additional transformation for low-level primitives.
DEPRECATED void ResetPrimTransform();
// Translate all further low-level primitives.
DEPRECATED void PrimTranslate(float dx,float dy,float dz);
// Scale all further low-level primitives using pivot point x,y,z.
DEPRECATED void PrimScaleAt(float x,float y,float z,float scalex,float scaley,float scalez);
// Rotate further primitives at xyz point around X-axis.
DEPRECATED void PrimRotateX(float x,float y,float z,float Angle);
// Rotate further primitives at xyz point around Y-axis.
DEPRECATED void PrimRotateY(float x,float y,float z,float Angle);
// Rotate further primitives at xyz point around Z-axis.
DEPRECATED void PrimRotateZ(float x,float y,float z,float Angle);
// Rotate further primitives around rode (x,y,z)->(xend,yend,zend)
// on given Angle.
DEPRECATED void PrimRotateAroundRode(float x,float y,float z,float xend,float yend,float zend,float Angle);
// Set special transform for further primitives.
// If you will apply primitive that is placed between points
// (0,-1,0) and (0,1,0) it will be actually applied as primitive
// stretched between points (x,y,z) and (xend,yend,zend).
DEPRECATED void PrimStretchBetweenPoints(float x,float y,float z,float xend,float yend,float zend);
// Example:
void main(){
ResetPrimTransform();
// stretch between (10,20,30) and (40,50,60)
PrimStretchBetweenPoints(10,20,30,40,50,60);
// starts from point (0,-1,0), radius=10, height=2
cylinder(0,-1,0,10,10,2,0);
}
// This code will create cylinder of radius 10 between
// points (10,20,30) and (40,50,60).
// Set additional density factor for low-level primitives.
// 1 means default density.
DEPRECATED void PrimDensity(float density);
// Store current transform for primitives as string to be kept
// for future usage.
DEPRECATED string GetPrimTransform();
// Restore current primitives transform from string that was
// previously kept using `GetPrimTransform()`.
DEPRECATED void SetPrimTransform(string& in M);
// Example:
SetPrimTransform(
"1.0 2.0 3.0 1.0\n"
"4.0 5.0 6.0 1.0\n"
"7.0 8.0 9.0 1.0\n"
"1.1 2.2 3.3 1.0" );
// Create sphere with radius `r`.
// `x`, `y`, `z` means a center of figure.
// \param mode 0 - add, 1 - subtract, 2 - intersect with scene.
DEPRECATED void sphere(float x,float y,float z,float r,int mode);
// Create ellipse.
// `x`, `y`, `z` means a center of figure.
// \param mode 0 - add, 1 - subtract, 2 - intersect with scene.
DEPRECATED void ellipse(float x,float y,float z,float rx,float ry,float rz,int mode);
// Create parallelepiped.
// `x`, `y`, `z` means a center of figure.
// \param mode 0 - add, 1 - subtract, 2 - intersect with scene.
DEPRECATED void cube(float x,float y,float z,float sizex,float sizey,float sizez,int mode);
// Create cylinder.
// `x`, `y`, `z` means a center of figure.
// \param mode 0 - add, 1 - subtract, 2 - intersect with scene.
DEPRECATED void cylinder(float x,float y,float z,float topradius,float bottomradius,float height,int mode);
// Create cone.
// `x`, `y`, `z` means a center of figure.
// \param mode 0 - add, 1 - subtract, 2 - intersect with scene.
DEPRECATED void cone(float x,float y,float z,float radius,float height,int mode);
// Create N-gon.
// `x`, `y`, `z` means a center of figure.
// \param mode 0 - add, 1 - subtract, 2 - intersect with scene.
DEPRECATED void ngon(float x,float y,float z,int sides,float topradius,float bottomradius,float height,int mode);
// Create tube.
// `x`, `y`, `z` means a center of figure.
// \param mode 0 - add, 1 - subtract, 2 - intersect with scene.
DEPRECATED void tube(float x,float y,float z,float topradius,float bottomradius,float height,float wallthickness,int mode);
// Create n-gonal tube.
// `x`, `y`, `z` means a center of figure.
// \param mode 0 - add, 1 - subtract, 2 - intersect with scene.
DEPRECATED void ngontube(float x,float y,float z,int sides,float topradius,float bottomradius,float height,float wallthickness,int mode);
// Creates capsule between points.
// Where `xstart`, `ystart`, `zstart` means coords of first half-sphere;
// `xend`, `yend`, `zend` means coords of second half-sphere.
// \param mode 0 - add, 1 - subtract, 2 - intersect with scene.
DEPRECATED void capsule(float xstart,float ystart,float zstart,float xend,float yend,float zend,float startradius,float endradius,int mode);
ΠΠΎΡΠΌΠΎΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎΡ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ 3DCoat:
// Returns whole command line.
string getCommandLine();
// Stores some string as global value that may be read later in
// the session. The value will be stored in 3B file and you will
// be able to read in further work with this scene.
DEPRECATED void SetGlobalVar(string& Name,string& Value)
// Returns value previously stored using SetGlobalVar.
DEPRECATED string GetGlobalVar (string& Name)
// Returns scene filename (last saved or opened as 3B file).
DEPRECATED string GetSceneFileName()
// Sets scene filename for further saving.
DEPRECATED void SetSceneFileName(string& Name)
// Highlight element with red rectangle.
// Pass the `time` in seconds.
void HighlightUIElement(string &ID, float time);
// Goes to one of previous dialogs in call stack.
DEPRECATED void back(int steps=1);
// Opens window described by xml-file pointed by Path.
// If Path contains .3b file will be opened as 3B file.
DEPRECATED void open(string &Path);
// Opens model for PPP, if path is empty, shows open dialog.
DEPRECATED void ppp(string &path);
// Opens model for MV painting, if path is empty, shows open dialog.
DEPRECATED void mv(string &path);
// Opens model for Ptex, if path is empty, shows open dialog.
DEPRECATED void ptex(string &path);
// Import image as mesh, dialog will be shown.
DEPRECATED void imagemesh();
// Import mesh as reference, if path is empty dialog will be shown.
DEPRECATED void refmesh(string &path);
// Import mesh for vertex painting, if path is empty dialog will be shown.
DEPRECATED void vertexpaint(string &path);
// Perform autopo over the mesh chosen in dialog.
DEPRECATED void autopo(string &path);
// Opens mesh for repairing. If id contains "vox" then model will be
// voxelized, if there is substring "shell" then mesh will be imported
// as thin shell. Mesh Opening dialog will be shown.
DEPRECATED void repair(string &id);
// Activate bas-relief tool.
DEPRECATED void bass();
// Activale remove undercuts mode.
DEPRECATED void undercut();
// Activate special voxel tool. id may be found in English.xml between
// ... if you will find name of tool between
// ... tags.
DEPRECATED void activate(string &id);
// Activate retopo tool.
DEPRECATED void retopo();
// Open mesh using dialog and merge as retopo mesh.
DEPRECATED void retopopen();
// Activate any room - name is one of "Paint", "Tweak", "UV",
// "Voxels", "Retopo", "Render".
DEPRECATED void ToRoom(string &name);
// Check if you are in specified room - name is one of "Paint",
// "Tweak", "UV", "Voxels", "Retopo", "Render".
DEPRECATED bool IsInRoom(string &name);
// Add new volume in voxel room. If name is empty name will be
// assigned automatically.
DEPRECATED void AddNewVolume(string &name);
// Activate UV room.
DEPRECATED void uv();
// Activate voxel room and add new volume.
DEPRECATED void vox();
// Create sphere of radius R in voxel room in current object.
// \param mode 0 - add, 1 - subtract, 2 - intersect with scene.
DEPRECATED void sphere(float x,float y,float z,float r,int mode);
// Create cube in voxel room in current object.
// \param mode 0 - add, 1 - subtract, 2 - intersect with scene.
// \param sizex Size by X-axis.
// \param sizey Size by Y-axis.
// \param sizez Size by Z-axis.
DEPRECATED void cube(float x,float y,float z,float sizex,float sizey,float sizez,int mode);
// Turn all volumes to surface mode.
DEPRECATED void surf();
// Turn current volume to the surface mode.
DEPRECATED void cursurf();
// Turn current volume to voxel mode, voxelize if need.
DEPRECATED void voxelize();
// Sets merging options in voxel room. opt is just set of substrings
// with different options. Possible values are:
// [voxelize=true]
// [voxelize=false]
// [separate=true]
// [separate=false]
// [respectneg=true]
// [respectneg=false]
// [as_skin=true]
// [as_skin=false]
// [skin=....] - to set skin thickness.
DEPRECATED void mergeopt(string &opt);
// Example:
mergeopt( "[voxelize=true][as_skin=true][skin=4.5]" );
// Merge model in voxel room. Empty string means that dialog will be shown.
DEPRECATED void merge(string &model);
// Activate voxel primitives tool. Possible primitives:
// cube, cylinder, sphere, tube, cone, ellipse, n-gon, gear.
DEPRECATED void prim(string &id);
// Apply in current tool (same as press enter).
DEPRECATED void apply();
// Apply in Merge tool without asking "Keep scale?".
// Scale will not be kept and scene scale will not be changed.
DEPRECATED void ApplyAndKeepScale();
// Apply in current tool (same as press enter) wint one difference -
// in Merge tool scale of merged object sill be automatically kept and
// scene scale changed if this merge is first.
DEPRECATED void mapply();
// Open recent 3B-file.
DEPRECATED void recent3b();
// Print text to MyDocuments/3D-CoatV4/log.txt.
DEPRECATED void Log(string &line);
// Generate integer random number min..max.
int rand(int min,int max);
// Generate floating random number min..max.
float randF(float min,float max);
// Set random generator seed.
void seed(int val);
// Show progress bar pos = 0..100.
DEPRECATED void ProgressBar(const string& message,int pos);
// Set orthogonal (true) or perspective (false) view mode.
DEPRECATED void SetOrthoMode(bool value);